Skip to main content

Ohjelmistokehitys

Go Search
ITpro.fi
Asiantuntijaryhmät
IT-Wikistö
Keskustelut
Materiaalit
Jäsenyys
Jäsenyhteisöt
Hakusivu
ITpro ry
TechNet 110 videotallenteet
  

 Ryhmän

  Kuvaus
  Keskustelut
  IT-Wikit
  Dokumentit
  Linkit
  Jäsenet
  Kuvat
ITpro.fi > Asiantuntijaryhmät > Ohjelmistokehitys

 Ohjelmistokehityksen asiantuntijaryhmä


Ryhmän vetäjänä toimii
Jani Järvinen, MVP - Visual C#
ASP.NET MVC 2:sta ulos RC2

ASP.NET MVC:n tulevasta kakkosversiosta on eilen tullut ulos Release Candidate 2 -versio (RC 2). Uusia ominaisuuksia ovat mm. parempi tietojen validiointi, HtmlHelper-olion vahva tyypitystuki sekä jQuery 1.4.1 –tuki vakiona.

RC2:n voi ladata Downloads-sivustolta, ja tarkempi postaus ominaisuuksista löytyy täältä.

IronJS: JavaScriptin .NET-pohjainen toteutus

Jo pidemmän aikaa Ruby- ja Python-ohjelmointikielistä on ollut saatavilla .NET-pohjaiset Iron-toteutukset IronRuby ja IronPython. Nyt joukkoon on liittynyt länsinaapuristamme liikkelle lähtenyt IronJS, jonka tarkoitus on siis toteuttaa JavaScript-moottori .NET:n päälle.

Projekti on avoimen lähdekoodin projekti Ms-PL -lisenssillä, ja löytyy GitHubista. Suorituskyvyn kannalta tulokset voi arvata, eli .NET-toteutus on selvästi perinteisiä tulkattavia versioita vauhdikkaampi. Nyt ollaan menossa alpha-tasoisessa koodissa, joten valmiiseen toteutukseen on tosin vielä matkaa.

Jos projekti kiinnostaa, käy tutustumassa projektin pääsivuilla asiaan.

Nopeaa käyttöliittymäprotoilua SketchFlowlla

Käyttöliittymiä suunnitellessa tulee usein tarvetta protoiluun. Kenties asiakkaille halutaan esitellä nopeasti muokattavissa olevia malleja, joiden pohjalta keskustelu jatkosuunnittelusta konkretisoituu. Protoiluun on tietysti useitakin erilaisia ratkaisuja (eräs low-tech -ratkaisu on vaikkapa fläppitaulu tai PowerPoint-esitys), mutta jos sattuu olemaan tekemässä WPF- tai Silverlight-sovelluksia, voi käyttää apuna Expression Blend 3:n SketchFlow-ominaisuutta.

SketchFlow kuuluu Blend 3 -ohjelmistoon, ja se on tarkoitettu juurikin protoiluun. SketchFlowin avulla piirretään normaaleja WPF- tai Silverlight-käyttöliittymiä, kuitenkin käyttäen normaalien kontrollien sijaan erityisiä kontrolleja, jotka näyttävät käsin piirretyiltä. Käsin piirrettyjen kontrollien käyttö on tärkeää siksi, ettei huomio kiinnittyisi kontrollien ulkoasuun, vaan toiminnallisuuteen sekä esimerkiksi liikkumiseen ruutujen/lomakkeiden välillä (SketchFlow-termein screen).

Alkuun SketchFlowlla

SketchFlown käyttö vaatii erillisen projektin avaamisen Blendiin. Valitaan siis File-valikosta uusi projekti:

Sekä Silverlight- että WPF-projekteille on omat SketchFlow-projektimallinsa. Tässä valitaan WPF-sovelluksille sopiva malli. Kun projekti on luotu Blendiin, ruudulla pitäisi näkyä tyhjä valkoinen Screen 1. Nyt voidaan mennä Assets-ikkunaan ja valita sieltä kohta SketchFlow, ja edelleen sen alta kohta Styles/SketchStyles.

 

Tästä kohdasta löytyy joukko kontrolleja, joilla voidaan suunnitella karkeasti sovelluksen käyttöliittymä ruutu kerrallaan. Kontrolleja voidaan pudottaa ruutuun kuten mitä tahansa muitakin WPF-kontrolleja:

Ruutuja voidaan helposti luoda lisää käyttämällä lomakesuunnittelijan alta löytyvää SketchFlow Map -toimintoa käyttäen. Tämän kartan ideana on määritellä liikkuminen ruutujen välillä. Pienillä ruutua esittävän ikonin alle ilmestyvillä napeilla on helppo lisätä uusia ruutuja sovellukseen. 

Proton esittely ja kommentointi

Kun proto on edellä kuvatulla keinoilla suunniteltu, voidaan prototyypistä tehdä ajettava sovellus (kokoa kertyy pakattuna noin pari megaa), joka voidaan lähettää asiakkaalle vaikkapa sähköpostilla. Asiakas voi ajaa prototyypin erillisessä Player-ohjelmassa (kuuluu Blendiin), ja käyttää sitä liikkumaan ruutujen välillä navigaatio-toimintojen avulla. Navigaatiovaihtoehdot perustuvat suoraan aiemmin tehtyyn ruutukarttaan (map).

 

Player on siitä kätevä, että käyttäjä voi käyttää sitä palautteen antamiseen. Ruutujen päälle voidaan piirtää korostusvärillä, ja sanallistakin palautetta voidaan antaa ruutukohtaisesti. Palautteen voi tallentaa levylle yhdeksi tiedostoksi, ja tämä tiedosto voidaan lähettää takaisin suunnittelijalle/kehittäjälle. Palautteen saa sitten näkyviin uudelleen Blendissä avaamalla luodun XML-tiedoston (tiedostopääte on .feedback) Feedback-ikkunassa.

Visuaalinen palaute taas näkyy suoraan ruudulla:

 

Yhteenveto

SketchFlow on näppärä tapa tehdä käyttöliittymäprotoja, varsinkin jos sattuu olemaan tekemässä WPF- tai Silverlight-sovelluksia. Hienoa on, että ruutujen välillä liikkuminen on tehty helpoksi. Myös palautteen kerääminen hoituu näppärästi, varsinkin jos suunnittelija/kehittäjä ja käyttäjä/asiakas eivät pääse istumaan saman pöydän ääreen.

Windows Azuren euro-hinnat selvillä

Microsoft julkisti viimeinkin myös euro-pohjaiset hinnat Windows Azure -pilvialustalle. Hinnat löytyvät jo aiemmin käytössä olleelta hinnastosivulta, mutta uutta on, että nyt kohdemaaksi voi valita Finland, jolloin hinnat näkyvät euroissa.

Tässä nopea yhteenveto perushinnoista:

Windows Azure

  • Compute
    • Small instance (default): € 0.0852 per hour
    • Medium instance: € 0.1703 per hour
    • Large instance: € 0.3405 per hour
    • Extra large instance: € 0.6809 per hour
  • Storage
    • € 0.1064 per GB stored per month
    • € 0.0071 per 10,000 storage transactions
  • Content Delivery Network (CDN)
    • Service currently available as a Community Technology Preview (CTP) at no charge

SQL Azure

  • Web Edition – Up to 1 GB relational database
    • € 7.085 per database per month
  • Business Edition – Up to 10 GB relational database
    • € 70.913 per database per month

AppFabric

  • Access Control
    • € 1.4114 per 100,000 transactions
  • Service Bus
    • € 2.8298 per connection on a “pay-as-you-go” basis
    • Pack of 5 connections € 7.0566
    • Pack of 25 connections € 35.2827
    • Pack of 100 connectionss € 141.1308
    • Pack of 500 connections € 705.654

Data Transfers

  • North America and Europe regions
    • € 0.071 per GB in
    • € 0.1064 per GB out
  • Asia Pacific Region
    • € 0.2128 per GB in
    • € 0.3192 per GB out.

Lisää hintoja löytyy siis Azuren sivuilta.

Bing Maps -karttapalveluiden SDK-paketit päivittyneet

Muutaman kuukauden tauon jälkeen tuli jälleen tarvetta tutustua Bing-karttapalveluihin ja erityisesti niiden liittämiseen omiin web-sovelluksiin.

Vielä syksyllä ongelmana oli, että Live Search -palvelusta siirtyminen Bing Maps –brändin alle oli kesken, eivätkä kehittäjien SDK-paketit siksi enää toimineen uusien Binh-palveluiden kanssa. Nyt tämä näyttäisi korjaantuneen.

Tässä linkit kahteen hyödylliseen SDK-pakettiin:

Nämä uudet kehittäjäpaketit on päivitetty marras- ja joulukuun päiväyksin, joten suhteellisen tuoretta tavaraa on tarjolla.

Hyvää Uutta Vuotta 2010!

Hyvää Joulua!

Joulun aika on hyvä hetki istahtaa alas ottaa rennosti, ja kenties jopa viettää hetki ilman nettiyhteyttä ja konetta.

Ohjelmistokehitysryhmä toivottaa kaikille ITpro.fi-yhteisön jäsenille rauhallista ja iloista Joulua! Palaamme taas asiaan pyhien jälkeen.

Pikakuvake Windows 7:n tehtäväpalkkiin verkossa olevalle sovellukselle

Olet tehnyt pikkunäppärän GUI-sovelluksen, ja yhtäkkiä huomaat, että sillä on toistakymmentä käyttäjää Windows 7 -ympäristössä. Jotta sovelluksen päivitykset hoituisivat näppärästi kaikille käyttäjille, päätät tallentaa sovelluksen .exe-tiedoston verkkoon vaikkapa P: -levyasemalle.

Koska käyttäjät haluavat käynnistää sovelluksen helposti, he toivovat pikakuvaketta Windows 7:n tehtäväpalkkiin. Helppo juttu tuumaat, sen kun vain raahataan kuvake P: -asemalta tehtäväpalkkiin, ja se on siinä. Mutta eipäs olekaan, sillä Windows 7 ei suostu tekemään pikakuvakkeita verkkolevyillä oleville sovelluksille. Ainoastaan paikallisilla levyillä oleville sovelluksille voidaan tehdä näin.

Mikä siis avuksi? Kopioidaan sovellus jokaiselle käyttäjälle erikseen? Huono ajatus versiopäivityksiä ajatellen. Tehdään pikakuvake työpöydälle? Helppoa, mutta ei ratkaise alkuperäistä ongelmaa (lue: ei tyydytä insinööriä). Siispä pientä puukotusta tarvitaan.

Tunnustan heti alkuun, että seuraavassa esitetty tapa on työläs, eikä toivottavasti helpoin hoitaa asia. Mutta tässä vaiheessa tämä on helpoin minkä tiedän. (Sami ja kumppanit: otan ilolla vastaan vinkin ”ei kun se tehdään näin”.)

Pikakuvakkeen lisääminen vaihe vaiheelta

Tarpeena on siis luoda sovellukselle P:\Sovellus.exe pikakuvake Windows 7:n tehtäväpalkkiin. Ensimmäinen vaihe on kopioida sovelluksen .exe-tiedosto käyttäjän koneelle, vaikkapa työpöydälle. Tämä kopiointi on vain väliaikaista, joten vielä ei kannata pelästyä.

Kun kopio on tehty, tehdään pikakuvake tähän sovellukseen. Siis napataan hiirellä kiinni työpöydällä olevasta sovelluksesta ja viedään sopivaan kohtaan tehtäväpalkkia. Nyt meillä on pikakuvake paikalliseen kopioon.

image

Seuraavassa vaiheessa avataan Windows 7:n kansio, jossa pikakuvakkeet majailevat. Koska polku on kovin pitkä, on helpointa avata Start-valikko ja kirjoittaa hakukenttään ”shell:user pinned” ilman lainausmerkkejä ja painaa Enteriä. Nyt päädytään kansioon suunnilleen polussa C:\Users\käyttäjä\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned.

image

Tämän kansion alta löytyy alikansio TaskBar. Siirrytään sinne, ja avataan ominaisuudet Sovellus-nimisestä pikakuvakkeesta.

image

Sitten vain vaihdetaan pikakuvakkeen kohdepolku osoittamaan verkkoon, ja muutetaan myös käynnistyspolku (Start in) oikeaksi. Lopuksi painetaan OK, ja poistetaan työpöydällä kopioitu .exe-tiedosto, koska sitä ei enää tarvita.

image

Tämän jälkeen meillä on pikakuvake verkossa olevaan sovellukseen, ja hyvin tuntuu toimivan. Tehtävä suoritettu!

PS. Olisi helppoa jos TaskBar-kansioon voisi lisätä omia pikakuvakkeita ja ne ilmestyisivät tehtäväpalkkiin. Mutta valitettavasti näin ei ole, vaan joudutaan etenemään mutkan kautta.

Visual Studio 2010 RC helmikuussa, ASP.NET MVC 2 RC saatavilla nyt

Eilen tuli Microsoftin suunnalta lisää tietoa Visual Studio 2010:n aikatauluista. Tällä hetkellä ulkona on Visual Studio 2010 (sekä .NET 4.0) Beta 2, ja näiden ulkonaoloaikaa jatketaan erityisesti korkean muistinkulutuksen takia. Tällä hetkellä viimeisin tieto on, että RC-versio (Release Candidate) tulisi saataville helmikuussa.

Samaan aikaan ASP.NET MVC 2:sta on tullut ulos RC-versio. Mikäli tämä web-kehikko kiinnostaa käy lataamassa uusin kehitysversio ja tutustu samalla uusiin ominaisuuksiin.

Missä Visual Studion mallipohjat oikein majailevat?

Aina silloin tällöin putkahtaa kehittäjien keskuudessa esiin kysymyksiä siitä, mistä erilaiset valmiit kooditiedostot oikein tulevat. Jos esimerkiksi perustat uutta projektia, tai lisäät sovellukseesi uuden luokan, mistä Visual Studio tietää, millaisia tiedostoja tarvitaan ja millaista koodia generoidaan?

Lyhyesti sanottuna tässä käytetään apuna valmiita mallipohjia (englanniksi template) tai koodinpätkiä (snippets). Koodinpätkät ovat omia .snippet-päätteisiä tiedostojaan, kun taas mallipohjat löytyvät tyypillisesti .zip-paketeista Visual Studion asennushakemiston alta, esimerkiksi Visual Studio 2008:n tapauksessa kansiosta C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE. Tämän kansion alla on useampikin alikansio, ja Visual Studio erottelee esimerkiksi projektitason mallit ja yksittäisten (koodi)tiedostojen mallit. Nämä löytyvät alikansiosta ProjectTemplates ja ItemTemplates. Seuraavassa keskitytään nimeomaan mallitiedostoihin, koodinpätkät ovat toisen postauksen asia.

Yksinkertaistettuna voi ajatella, että mallipohjien .zip-tiedoston mukana on aina XML-pohjainen kuvaustiedosto, joka kertoo millaisesta mallipohjasta on kyse, mitä parametrejä sillä voi olla, ja niin edelleen. Parametrien hienous on, että malleissa voidaan käyttää muuttujia, jotka ajon aikana korvataan sopivilla tiedoilla, kuten käyttäjän syötteellä.

Esimerkiksi uuden luokan lisäämisen yhteydessä kysytään luokan nimeä, joka on yksi parametri. Toinen parametri on projektin oletusnimiavaruus, jotta C#-luokan namespace-määritys saadaan tehtyä oikein. Kurkkaa esimerkiksi tiedosto C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class.zip, niin näet.

Tämä kaikki saattaa olla useimmille Visual Studio -kehittäjille jo tuttua, mutta harvemmin ollaan tietoisia siitä, että Visual Studioon on itse asiassa rakennettu varsin monipuolinen mallipohjien generointimoottori, joka tunnetaan paremmin nimellä T4, eli Text Template Transformation Toolkit. Tämä näppärä moottori tehtiin alunperin DSL-kielien (Domain-Specific Languages) koodigenerointia varten, mutta itse asiassa T4 on kaikkien Visual Studio -projektien käytettävissä.

Pohditaanpa, mistä esimerkiksi ASP.NET MVC -sovellukset nappaavat HTML-koodinsa, kun sovellukseen lisätään uusi näkymä (view). Aivan oikein, mallipohjistapa tietenkin, kansio on tarkkaan ottaen C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC\CodeTemplates\AddView. Täältä löytyy T4-moottorin käyttämiä Text Template -tiedostoja (.tt-tiedostopääte), jotka voi ajatella eräänlaisiksi skriptitiedostoiksi. Ne ajetaan T4-moottorin läpi, ja tuloksena on haluttu .aspx-sivu.

Näppärää, eikö? Jos mallipohjat kiinnostavat, kurkkaa MSDN:n dokumentaatio. T4:stä taas löytyy tietoja DSL-dokumentaation alta. Code Snippet -toiminnosta on saatavilla dokumentaatiota siitäkin.

Whitepaper: Mitä uutta .NET 4.0:ssa?

.NETin uusin versio 4.0 lähestyy jo kovaa vauhtia. Julkaisupäiväksi on luvattu 22. maaliskuuta, ja tällä hetkellä mennään beta 2:ssa niin 4.0:n kuin yhteenkuuluvan Visual Studio 2010:nkin osalta. Betoja pääsee testailemaan MSDN:n sivujen kautta.

Jos haluat jo tässä vaiheessa lukaista, mitä uutta 4.0:n myötä on tulossa, lukaise aiheesta kirjoittamani artikkeli. Siinä on 18 sivuun pakattu niin C#:n, VB:n, CLR:n kuin perusluokkakirjastonkin uudistukset. Palautetta tai kysymyksiä voit laittaa tämän blogijutun kommenteissa. Hauskoja lukuhetkiä!

Kopioi artikkeli tästä (PDF, 422 kt)

1 - 10 Next

 Jäsenet

BerglundMika
HeikniemiJouni
JärvinenJani
PoimalaSami
SuniNiko

 ‭(Hidden)‬ Toiminnot

 Linkit

  C# MVP Bloggers

 Aiemmat kirjoitukset

ASP.NET MVC 2:sta ulos RC2
IronJS: JavaScriptin .NET-pohjainen toteutus
Nopeaa käyttöliittymäprotoilua SketchFlowlla
Windows Azuren euro-hinnat selvillä
Bing Maps -karttapalveluiden SDK-paketit päivittyneet
Hyvää Joulua!
Pikakuvake Windows 7:n tehtäväpalkkiin verkossa olevalle sovellukselle
Visual Studio 2010 RC helmikuussa, ASP.NET MVC 2 RC saatavilla nyt
Missä Visual Studion mallipohjat oikein majailevat?
Whitepaper: Mitä uutta .NET 4.0:ssa?
Hyödynnä Windows 7:n tehtäväpalkin uusia toimintoja Windows API Code Packin kautta
Yksinkertainen lokiinkirjaus ASP.NET MVC -sovelluksissa
Mikä Visual Studio 2010:n Lab Management -toiminto oikein on?
Ohjelmistomallit testiin Spec Explorerilla
Visual Studio 2010:n tuotteistus muuttuu
Microsoft Ajax CDN – JavaScript-tiedostot jakoon Microsoftilta
ITpro-bloggauksen henkilökohtainen kunniataulu
Mitä uutta Silverlight 3:ssa?
Verkkovirralla vai akuilla? – selvyys koodista tai skripteistä
Kattava Mastering PowerShell -ekirja ilmaiseksi
Web-sovellusten ongelmien selvittäminen IIS 7:n Failed Request Tracing -ominaisuuden avulla
Doloto pilkkoo JavaScriptisi
SQL Serverin paikkatietotyyppien käsittely C#:lla
Miten tunnistaa lukitut BitLocker To Go -muistitikut koodissa?
Säätietoja verkkoon ja Twitteriin
Code Contracts -laajennus ja staattiset analyysit
SQL Server 2008 R2:n ensimmäinen CTP-versio tuli saataville
Valmista tuli: Windows 7 MSDN:ssä
ASP.NET MVC 2:sta ensimmäinen preview-versio
Kuinka profiloin sovellukseni suorituskykyä Visual Studio 2008:lla?
Verkkokirjastojen uudistuksia .NET 4.0 Beta 2:ssa
Windows 7 on valmis
Windows Azuren hinnat julki
Windows 7 E – pian täällä, mitä sitten?
Oracle-tuki putoamassa pois ADO.NET:stä
Lisäturvaa ASP.NET -sovelluksille
Lapset koodaamaan Kodulla
Putkimerkki FTP-käyttäjätunnuksissa Expression Web 2:ssa
SQL Server Compact toimimaan ASP.NET-web-sovelluksissa
.NET Servicesin workflow katoaa loppuvuodeksi
PowerShell kertoo, ketkä ovat ITpron aktiivisimmat
Uusista rinnakkaisuusluokista .NET 4.0:ssa
Uudet verkkovarmistusratkaisut vaativat sovelluksilta yhteistyötä
Visual Studio 2010 ja .NET 4.0 Beta 1 ladattavissa
SQL Server 2008 Training Kit saatavilla
Työpöytäsovellusten levittäminen muuttumassa
AJAX-sovellusten profilointiin uusi väline
Kevyempi LoFi-versio MSDN:stä
Tiesitkö ASP.NET MVC:n Visual Studio -laajennuksista?
Miten PLINQ muuttaa SQL-kyselyitä?
1 - 50 Next