De siste to-tre årene har det vært veldig stort fokus på- og interesse rundt Web 2.0 tjenester og teknologier. Ett av konseptene som er en del av Web 2.0 fellesbetegnelsen er Rike Internett Applikasjoner (RIA), som går ut på å levere interaktive applikasjoner direkte via nettleseren. Forskjellen på Rike Internett Applikasjoner og tradisjonelle webapplikasjoner er at større deler av applikasjonen og brukerinteraksjon skjer på klienten i stedet for på tjeneren. Tradisjonelle webapplikasjoner baserer seg gjerne på enkle skjermbilder som blir fylt ut av brukeren, som så sendes tilbake til tjeneren for validering og prosessering av eventuell applikasjonslogikk. Hele skjermbildet blir så lastet på nytt, og brukeren får beskjed om obligatoriske felter som manglet eller ugyldige verdier. Denne typen grensesnitt føles ofte trege og tungvinte å jobbe med sammenlignet med klientapplikasjoner som kjører lokalt på brukerens maskin. I Rike Internett Applikasjoner prøver man å lage en mer interaktiv brukeropplevelse hvor større deler av applikasjonen kjører lokalt i brukerens nettleser, men uten at brukeren må installere applikasjonen lokalt på sin maskin. Et godt eksempel på Rike Internett Applikasjoner er Google Docs som gir deg regneark, tekstbehandling og presentasjonsverktøy rett i nettleseren.

Det finnes flere teknologier for å lage Rike Internett Applikasjoner. AJAX og Flash har vært de to mest populære alternativene, men med lanseringen av Silverlight 2 i oktober og JavaFX i desember har Microsoft og Sun vist at de absolutt er å regne med som plattformleverandører for Rike Internett Applikasjoner.

Hva er Silverlight?
Silverlight er en nettleser tillegg som kjører på Windows, Mac og Linux, og støttes av nettleserne IE, Firefox og Safari. Silverlight fungerer og i Google Chrome og Opera, men står foreløpig ikke på listen over offisielt støttede nettlesere. Første versjon av Silverlight ble lansert høsten 2007 og var først og fremst en plattform for å levere interaktive medieapplikasjoner med støtte for HD video via nettet. NRK Nett TV er et eksempel på en norsk medieorganisasjon som var tidlig ute med å ta i bruke Silverlight i sine løsninger. Silverlight 2 ble lansert høsten 2008 og inneholder en rekke nyheter som gjør Silverlight til en meget aktuell plattform for Rike Internett Applikasjoner. Den viktigste nyheten er at Silverlight 2 nå inneholder en liten versjon av .NET rammeverket som kjører i nettleseren. Dette gjør det mulig å bruke de samme verktøyene, rammeverkene og programmeringsspråkene .NET utviklere (og det finnes mange av oss) allerede behersker til å lage nye Silverlight applikasjoner. Dette gjør det mulig å bruke .NET både på klient og tjenersiden, noe som er en stor fordel sammenlignet med AJAX og Flash hvor man må bruke JavaScript eller ActionScript som programmeringsspråk på klientsiden.

En annen styrke ved Silverlight er muligheten til å lage mer attraktive og interaktive brukergrensesnitt ved hjelp av vektorgrafikk og animasjoner. Silverlight benytter seg av samme presentasjonsmodell som Windows Presentation Foundation (WPF), som ble lansert som en del av .NET 3.0 i 2006. Her benytter man seg av det XML-baserte programmeringsspråket XAML til å beskrive brukergrensesnittet til applikasjonen. Ved å bruke XAML til å beskrive brukergrensesnittet får man separert brukergrensesnitt og applikasjonslogikk. Fordelen ved dette er at man i større grad kan involvere grafiske designere og interaksjonsdesignere i utviklingsprosessen. For å legge til rette for en bedre designer-utvikler arbeidsflyt har Microsoft lansert verktøyet Expression Blend. Dette er et verktøy som er rettet mot designere, men som samtidig bruker de samme prosjektfilene som Visual Studio. På denne måten kan designere bli en integrert del av arbeidsflyten i prosjektet, og jobbe dirrekte mot XAML filene ved hjelp av Blend.

Når skal vi velge Silverlight?
Det er flere faktorer som er med på å bestemme hvilken teknologi man skal velge for presentasjonslaget i en applikasjon. En avveining er forholdet mellom størst bredest mulig utbredelse (reach) til rikest mulig funksjonalitet (richness).

På den ene siden har vi webapplikasjoner skrevet i HTML, CSS og JavaScript, som har størst mulig utbredelse. Disse applikasjonene vil kunne kjøre på et hvilket som helst operativsystem eller nettleser, uten at brukeren må installere noe lokalt på maskinen. På den andre enden av skalaen finner vi Windows Presentation Foundation, som gir deg rikest funksjonalitet. Velger du WPF får du tilgang til 3D, tilgang til lokale ressurser og enheter tilkoblet maskinene, samt mulighet for integrasjon mot Office-applikasjonene og full støte for offline klienter. Ulempen ved å velge WPF er at det krever .NET 3.0 eller nyere på klienten, noe som begrenser deg til Windows maskiner. I tillegg må applikasjonen installeres lokalt på maskinen, og utrulling og oppdatering kan oppleves som problematisk i forhold til webapplikasjoner.

Midt på skalaen finner vi Silverlight. Ved å velge Silverlight må brukeren fortsatt installere nettlesertillegget på sin datamaskin, men Silverlight 2 er ikke større enn 4.5 MB og installeres på under 60 sekunder på en vanlig Windows XP maskin. Applikasjoner skrevet for Silverlight 2 må ikke installeres lokalt, og rulles ut som en hvilken som helst annen webapplikasjon. Silverlight er en ren klientteknologi og stiller ingen krav til serveren som leverer applikasjonen. Dette betyr at Silverlight gjerne kan leveres fra en Linux server. Siden Silverlight 2 har god støtte for webtjenester kan Silverlight gjerne brukes som presentasjonslag mot tjenester basert på andre teknologier som for eksempel Java.
Å velge Silverlight i forhold til andre plattformer som Flash og JavaFX avhenger av krav i prosjekt, kundens preferanse til plattform og ikke minst kunnskapen til utviklingsteamet. Dersom kunden foretrekker .NET, og man har et erfarent .NET utviklingsteam til Silverlight være et naturlig valg.

Trender i markedet
Silverlight er fortsatt en ung teknologi som har vært tilgjengelig i markedet siden høsten 2007. Silverlight 2 er første versjon som virkelig tilbyr en fullverdig plattform fra Microsoft for å bygge Rike Internett Applikasjoner. Selv om Silverlight 2 kun har vært tilgjengelig i ferdig versjon siden oktober bygger Silverlight 2 på solide, utprøvde teknologier som .NET og WPF. Så spørsmålet er når vi kan begynne å se denne kunnskapen etterspurt fra kunder?

Gartner har følgende å si om Microsoft og Silverlight sin første MarketScope for RIA og AJAX :

“In the first ever Gartner MarketScope for RIA and AJAX, Gartner ranked Microsoft as “Positive”, and stated that Silverlight has rapidly growing mind share that Gartner expects will translate into strong market share over time, especially within enterprises.” (MarketScope for Ajax Technology and RIA Platforms, 12/29/08)

Videre ser Gartner et skifte fra lettere presentasjonsteknologier som HTML og JavaScript, til mer omfattende (men samtidig lette) rammeverk som Flash og Silverlight:

“Through 2009, Gartner sees a gradual but steady shift in use from simple lightweight Ajax toward more substantial (but still not heavyweight) presentation technologies, such as Adobe Flex, Microsoft Silverlight and browser extensions such as Google Gears.” (Key Issues in Rich Internet Application Platforms and User Experience, 2008 , 1/25/08)

Forrester ser og en trend hvor RIA begynner å bli mainstream, og at Silverlight oftere kommer opp som mulig plattform:

“Forrester inquiry patterns are indicating that RIAs are moving into the mainstream, and of the RIA inquiries that Forrester receives, Silverlight as a topic comes up 40% of the time, compared to 13% last year.” (2008 Forrester Inquiry Data)

Analyseselskapene ser trender hvor RIA og Silverlight begynner å bli stadig viktigere, og særlig spennende er det at Gartner forventer at Silverlight vil vinne markedsandeler hos forretningskunder. Dette er spennende for oss .NET utviklere. Det er og spennende å se at RIA som leveransemodell for programvare begynner å tas i bruk i Norge. Før jul lanserte Fornyingsdepartementet og Fornyingsminister Heidi Grande Røys nytt skjema for reseregninger. Den nye løsningen er utviklet som en Rik Internett Applikasjon, og kan kjøres dirrekte i nettleseren. Samtidig får du tilgang til rik funksjonalitet som dirrekte utrening av reiseregning lokalt på maskinen uten å måtte gå tilbake til serveren. Fornyingsdepartements nye løsning for reiseregninger er riktignok ikke basert på Silverlight, men bruker likevel RIA som applikasjons og leveransemodell for programvaren. Forrige versjon av reiseregningsprogramvaren var basert på .NET 2.0 og måtte installeres lokalt på brukerens maskin. Ved å velge RIA som applikasjonsmodell vil de kunne nå ut til brukere på andre plattformer som Mac og Linux, samtidig som brukeren slipper å måtte installere programvare lokalt.

Oppsummering
Jeg tror at Silverlight og Rike Internet Applikasjoner kommer til å bli et viktig område i tiden framover, og noe vi .NET utviklere burde følge godt med på. Mange .NET utviklere vil raskt kunne ta i bruk Silverlight i prosjekter. Dersom du ønsker å lære mer om hvorfor Silverlight kan være framtiden innen klientapplikasjoner på Microsoft plattformen anbefaler jeg og å lese dette blog innlegget fra Rockford Lhotka: http://www.lhotka.net/weblog/WhySilverlightIsTheFuture.aspx. Selv blogger jeg og aktivt om Silverlight og Rike Klienter på http://jonas.follesoe.no, så ta gjerne en tur innom bloggen min.

Jonas holder foredrag om Silverlight i mars
Artikkelen er skrevet av Jonas Follesø, seniorutvikler i Capgemini. Jonas, sammen med Rockford Lhotka som er omtalt i artikkelen, er begge foredragsholdere på årets Norwegian Developers Conference, som arrangeres på Fornebu 17-19 juni. Jonas holder også foredrag fra 5-19 mars i Norges fire største byer under årets første MSDN Live.

Meld deg på MSDN Live og lær om Silverlight