Iteam
GitHub

Silverlight ur kundens synvinkel

Som drivna utvecklare är vi alltid sugna på att lära oss nya och bättre sätt att utveckla applikationer och sajter åt våra kunder. Vi har sneglat på Silverlight i ett helt år nu och nu börjar det verkligen bli dags att börja utveckla på allvar i Silverlight - men hur förklarar man nyttan av Silverlight för en kund? Kunderna måste ju ändå våga chansa på den här nya tekniken för att den ska få genomslagskraft.

Det är inte svårt att förklara nyttan av Silverlight för en utvecklare. Bara att nämna C# och en enda miljö att testa mot istället för minst 3 olika webbläsare (ännu fler om man räknar att alla inte kör senaste versionen) med sina egna brister, gör att dom flesta webbutvecklare spetsar öronen lite extra.

Den mer konstnärliga utvecklaren och designern är inte heller svår att få med på banan genom att visa hur enkelt det är att göra snygga och mjuka animeringar. I Silverlight 3 (som släpps om några månader) är det också enkelt att rotera alla element i 3 dimensioner samt att använda grafiska effekter kallade shaders (som traditionellt sett används i 3D-spel för effekter som t.ex. oskärpa, brus, färgtoningar osv.) för att göra det mesta du bara kan göra i Photoshop idag.

För kunden räcker det dock inte att vi är lyriska över de tekniska möjligheterna - de vill veta vad de får som inte HTML kan ge dem och den biten har alltid varit svårare att förklara men här kommer ett försök.

Rika formulär och webbapplikationer

  • Vill du ha en dropdown-lista med ikoner? Det går inte att göra alls i HTML utan att kasta på mängder av Javascript som kommer ge en längre laddningstid tillsammans med flimmer och eventuella buggar beroende på exakt vilken webbläsarversion besökaren har (samt att /Utvecklingstiden flerdubblas). I Silverlight kan du t.o.m. få ikonen animerad och varför inte med en skugga och lite reflektioner (kanske inte bör men du kan).
  • Du kan t.ex. ge användaren en känsla av kontroll genom att låta dem dra och släppa ikoner istället för att hoppa runt mellan sidor och för att göra det snyggt(?) kan du låta ikonerna få en skugga och kanske röra sig som om de vore gjorda av gummi!
  • Riktiga applikationer. I Silverlight 3 kommer möjligheten att köra en Silverlight-applikation på skrivbordet som vilken applikation som helst d.v.s. det är möjligt att t.ex. flytta ut chatfönstret från sajten till att fungera som Live Messenger utan att kunden behöver öppna webbläsaren. Dessa applikationer kan dessutom köras utan nätverkskoppling (om de är kodade för det förstås) så det är alltså möjligt att göra en kalender, komihåglista eller spel som fortfarande fungerar när du sitter på tåget utan nätverkskoppling.
  • Vill du göra tydliga meddelanden till användaren, t.ex. om att en produkten har tagits bort eller ett meddelande har skickats? Störande dialogrutor eller saker som blinkar eller tonar fram/bort är ungefär de enda sätten som finns i HTML-världen (att göra mer komplicerade saker kräver oftast feta Javascript-bibliotek och då är man oftast begränsad till de fåtal effekter som följer med). I en Silverlight-applikation kan du t.ex. låta det du klickade på skrumpna ihop till en liten boll som brinner upp (ännu en grej man kanske inte bör göra...).

HD och 3D

  • Sömlöst integrera videosnuttar i HD-upplösning samt använda ljudeffekter eller varför inte använda deep zoom så att användaren kan se detaljer i t.ex. klädesplagg i en bild som är så högupplöst att det vore opraktiskt att låta användarna ladda ner hela bilden.
  • Film behöver inte längre vara något som sticker ut från en annars statisk sajt utan kan vara en naturlig del av flödet, varför inte presentera den nya produkten med hjälp av en reklamfilm som smälter in i sajten precis som om det bara vore ännu en bild. Den behöver inte heller längre vara helt fyrkantig, det går utmärkt att lägga lite grafiskt lullull över kanterna om man vill för att ytterligare bryta sig ur det traditionella webbsida/spelare-maneret.
  • Du kan använda effekter som hittills bara gått att göra i Photoshop. Du kan t.ex. göra hela applikationen oskarp och i gråskala för att dialogrutan du presenterar ska synas tydligare. Du kan lägga på effekter för syns skull utan att riskera att just det grafiskatricket råkar förstöra funktionaliteten i en viss webbläsare (vi sneglar på dig IE6 även om alla andra webbläsare också har sina egenheter).
  • Bilder, texter och listor kan roteras i 3D så att t.ex. ”baksidan” av en bild kan innehålla kommentarer om bilden. Detta är enkelt i Silverlight 3 även om det finns lösningar i Silverlight 2 också.
  • Äkta 3D med modeller, texturer och ljussättning finns inte än, inte ens i Silverlight 3, men när det kommer (vi säger när istället för om eftersom det är oundvikligt) så är resten av sajten redan förberedd och det går då att använda 3d lika naturligt som att idag lägga ut en textruta.

Skalar bra på både stora och små skärmar

  • Silverlight är gjord för vektorgrafik (men det går förstås utmärkt att använda bilder och fotografier) vilket gör att sajten(om det går att kalla det en sajt längre) ser lika imponerande skarp och fräsch ut när du kör i fullskärm på 1080p-projektorn framför 1000 personer på kickoffen som när du kör den i din netbook på kaféet.
  • Snart går det också att använda Silverlight i mobilen (Windows Mobile, Nokia och Android men iPhone kommer säkert också så småningom) utan att behöva skriva om en enda rad kod. För maximal coolhet bör man förstås lägga till några rader kod för att utnyttja GPS och accelerometern (skaka mobilen för att tömma varukorgen t.ex). Det finns inte ens några rykten om när det ska släppas till mobilen men en rimlig gissning är innan årets slut.

Inte bara bacon

Det kan förstås låta som om Silverlight är det bästa som hänt sen bacon och inte har några som helst nackdelar men det är förstås (tyvärr) inte så (även om Silverlight är lika mångsidigt som bacon :) och passar till det mesta). Här kommer några saker man måste stå ut med för att få alla godsaker:

  • Just nu (april 2009) så har bara ca 20% av webbanvändarna Silverlight installerat på sin dator. Det är en snabb nerladdning och kräver ingen kunskap att installera men det är ändå ett litet motstånd man måste över. Detta är dock ett mindre problem på t.ex. intranät eller sajter där användaren räknar med att använda under en tid t.ex communties, dejtingsajter och spelsajter då den förväntade vinsten för användaren är värd besväret.
  • Designers som hittills gjort ikoner och skisser enbart i Photoshop måste lära sig jobba med vektorgrafik och framförallt animering för att utnyttja Silverlight maximalt.
  • Silverlight är en relativt ung teknik vilket gör att utvecklarna inte lika lång erfarenhet och inte heller samma enorma bibliotek över färdiga lösningar som vid ”vanlig” webb/Utveckling. Följden blir att vissa saker som gått snabbt att göra förut tar längre tid med Silverlight (även om det motsatta gäller i många fall).
  • Textkvalitén har alltid varit lite lidande jämfört med HTML då Silverlight använder antialiasing istället för cleartype (windows standard). Detta ska dock lösas i Silverlight 3 (dock ej den beta som är ute idag men det kommer i skarpa versionen).
  • Sökmotoroptimering är något som kräver trixande och oftast speciella sitemaps även om det i Silverlight 3 finns bra inbyggt stöd för djuplänkningar t.ex. (så att sökmotorer kan länka till rätt del av applikationen)

Konkurrerande tekniker

I dagsläget är det lite snårigt om man vill bygga snygga funktionella sajter som också har en teknisk struktur. Det är en salig blandning av många olika tekniker som alla funkar lite olika på olika webbläsare och plattformar. Med Silverlight kan man bygga allt från applikationer till video- och inspirationssajter med samma verktyg och kan testa i en homogen miljö. Dock måste kunderna våga satsa på tekniken för att den ska göra någon nytta. Om de inte vågar finns följande konkurrerande tekniker:

  • Flash: beprövad konkurrent men kräver dedikerade flashutvecklare. Närmaste konkurrenten med Silverlight om man kollar på tekniska möjligheter.
  • Javascript-baserade sajter: tungladdade, kräver ingen installation, använder HTML i bakgrunden och lider av mängden webbläsare, beroende av tredjepartsbibliotek t.ex. Extjs, prototype, jquery så det är en ganska splittrad miljö.
  • HTML-sajt med lite AJAX: funktionell, relativt snabbt utvecklad (layouttestning i multipla webbläsare står för en stor del av /Utvecklingstiden) men lite tråkig och mest begränsad.
Vi som utvecklare har en hel lista med anledningar till varför vi hellre använder Silverlight och C# än HTML och Javascript och mer detaljer kring det kommer i en framtida blogg. Det viktigaste för oss är dock att vi får en enhetlig /Utvecklingsmiljö för alla typer av projekt där all källkod kan hanteras och byggas på ett gemensamt sätt och där kodbibliotek som byggs upp för servern också kan användas till klienten samt att testning kan ske för alla plattformar samtidigt.

Tommy Söderström
2009-04-03