5.2.2010ASP.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ä. 29.1.2010Jo 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. 21.1.2010
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. 5.1.2010Microsoft 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. 2.1.2010Muutaman 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! 24.12.2009Joulun 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. 21.12.2009Olet 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.
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. Tämän kansion alta löytyy alikansio TaskBar. Siirrytään sinne, ja avataan ominaisuudet Sovellus-nimisestä pikakuvakkeesta. 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. 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. 18.12.2009Eilen 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. 10.12.2009Aina 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. 4.12.2009.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)
| Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|