Silverlight og HTML5, hvad er hvad og hvad gør vi nu ?

by Administrator 30. October 2010 17:10

Jeg var til et kundemøde for et par dage siden, hvor jeg præsentere Silverlight teknologien. Jeg bad deltagerne om at kommunikere med mig mens jeg præsenterede, for at det ikke blev en monolog. Det benyttede de sig af i stor stil, og vi havde nogle gode snakke frem og tilbage, bla. om WPF men også om HTML5, standarder, browsere og proprietærer teknologier i det hele taget. Efter mødet fik jeg ideén til at skrive en post omkring Silverlight og HTML5, hvordan de er stillet i forhold til hinanden og hvordan jeg personligt tror gamet omkring disse 2 teknologier kommer til at udvikle sig de næste par år.

Det er ikke mit mål at lave en decideret sammenligning af de 2 teknologier selvom jeg måske ikke helt kan komme udenom det hen ad vejen. Jeg synes begge teknologier har hver sine styrker og hver sine svagheder, og jeg mener også at der er helt klare linier for hvornår man skal bruge hvad og hvorfor.

Der er ikke rigtig nogen jeg kender der tidligere har svaret på hvornår man skal bruge Silverlight, og hvornår man skal bruge HTML5 til at udvikle applikationer med, det vil jeg derfor også forsøge at svare på her.

For mig at se er HTML ikke noget specielt i sig selv, det er en standard der ikke kan ret meget uden hjælp fra andre teknologier. Det kan være klient teknologier som Javascript, CSS, SVG osv. Men det kan også være server-side teknologier såsom ASP.NET, PHP eller Ruby. Når man blander HTML med noget andet får du pludselig noget som er meget mere stærkt end hvis det står helt alene. Sådan er det ikke helt med Silverlight, men det er nødvendigvis ikke en dårlig ting.

HTML er indtil videre udelukkende noget der kan bruges i en browser. Uden en browser er HTML nyttesløst og giver ikke mening, og man kan også være lidt fræk at sige, at uden en webserver blandet med noget server-side teknologi, så bliver HTML også hurtigt lidt kedeligt. Som sagt lige før så er HTML sjovere når man blander det med andre teknologier. Så HTML er udelukkende til web applikationer “und nichts weider” ? Det kan vel godt sige uden at fornærme nogen, især hvis man forstiller sig hvor mange web applikationer der bliver lavet ift. desktop applikationer, så må man da sige at HTML i den grad har haft og stadig har det massive overtag ift. f.eks Silverlight. Jeg kender ikke tallet men jeg forstiller mig at web apps i den grad overgår desktop udvikling som jeg mener Silverlight i nogen grad skal bruges til. Dermed er det dog ikke sagt at web udvikling er “bedre” en desktop udvikling, men måske er det i virkligheden også der hvor mange får kaffen galt i halsen. Altså ift. Silverlight og HTML og hvor de hver især har deres plads ?

Jeg har stillet mig det selv samme spørgsmål som jeg blev stillet af kunden under min præsentation. Hvad skal vi vælge ? HTML eller Silverlight ? Så nemt er det altså desværre ikke at svare på. Vend den hellere om og spørg dig selv, hvad skal du bruge applikationen til du gerne vil udvikle, hvem skal have adgang, hvilke krav er der til udviklerne, performance, standardisering, database adgang og hvad i evt. har været vant til tidligere ? Det sidste spørgsmål er næsten det vigtigste i denne sammenhæng synes jeg, da det kan være både mere økonomisk og produktivt at vælge Silverlight hvis man er vant til f.eks en Winforms applikation, eller noget der minder om. Det at skulle migrerer en Winforms til en HTML applikation er ikke så nemt, men det er nemmere at gøre det til en Silverlight applikation fordi du får nogle ting foræret såsom kontroller og state. Dermed heller ikke sagt at man altid skal “porte” sine legacy Winforms apps til Silverlight, men i mange tilfælde vil dette være en god vej at gå.

Der er både et teknologisk og et økonomisk aspekt i det med at jonglere med mange forskellige teknologier på en gang, ligsom man gør med standard web udvikling (ASP.NET, PHP etc.). Her blander man som sagt flere ting sammen og man skal (i de fleste udviklingsteams) være både dygtig til klient udvikling, script/oop sprog og evt. en database. Med Silverlight er det også lidt nemmere mener jeg, da du er knap så udfordret på hele tiden at skulle kende til mere end 3 ting, XAML, .NET kode (VB/C#) og SQL. Vi er hurtigt over 5 teknologier med standard webudvikling: HTML, JavaScript, .NET kode, CSS, SQL. Det kan godt være du ikke er enig men jeg tror på at det sænker din produktivitet at skulle kunne 5 ting og ikke kun 3 (bare et tal for eksemplets skyld). For det andet er toolingen til udviklingen af Silverlight applikationer god og velfungerende. Jeg har f.eks haft svært ved at finde en tool til JavaScript der lever op til mine forventninger. Med Silverlight udvikling er der 2 tools som bare virker, uden at man behøver stille spørgsmålstegn ved det. Det ene er VS, det andet er Blend. Der er både intellisense, mulighed for at teste min kode også er det hele typestærkt hvilket jeg personligt godt kan lide.

Jeg kan huske til MIX10 hvor Microsoft annoncerede Windows Phone 7 udviklingsplatformen skulle være en blanding imellem XNA og Silverlight, og ikke som nogen havde troet, HTML5. Det var kæmpe stort, både for udviklerene men i den grad også for Microsoft at vælge en proprietær teknologi istedet for en standard. Jeg tænker ofte på det med standarder og hvad det gør ved “branchen”. Et eller andet sted synes jeg det er fint med nogle standarder vi kan følge, især når vi arbejder med en browser, og fordi det både gør livet nemmere som udvikler og forbruger, men hold da op hvor ville livet og ens job være kedeligt hvis alt teknologi var en standard, og alle devices kunne rendere din applikationer uden problemer. Det kan godt være du synes det lyder som en tåbelig påstand, men det er for mig at se er det det proprietærer der er det sjoveste og det er virkligheden det som rykker standarderne til der hvor de bør være. Desværre går det ofte bare for langsomt!

Vil man være på forkant og benytte sig af nogle super lækre features (listen kommer længere nede) så mener jeg man skal vælge Silverlight. Vil man undgå at skulle lukke nogle brugere udenfor, holde sig til standarder og vente lang tid på nye features, så er HTML et sikkert valg. Og dermed ikke sagt at  Silverlight er et bedre eller dårligere valg end HTML. Du skal bare være klar over at der er forskel på hvad de kan og hvad de ikke kan.

Der er visse ting du ikke får med HTML men som Silverlight giver dig, bla. dette:

  1. Silverlight applikationer kan køre uden en browser.
  2. Silverlight har en advanceret medie platform.
  3. Silverlight fornyer sig årligt, sidste gang HTML gjorde det var 13 år siden.
  4. Silverlight har præcis samme “feature set” på tværs af de platforme der officielt understøttes.
  5. Silverlight har mere ud-af-boksen funktionalitet end HTML.
  6. Silverlight har en bedre historie ift. applikationer der bruger meget “state” og skal være online hele tiden.
  7. Silverlight performer bedre (silverlight er kompileret (CLR) og hurtigere end HTML (JavaScript processering er det nok nærmere)).
  8. Silverlight er et bedre valg til grafik-intense applikationer.
  9. Silverlight er ofte et bedre valg ved migrering fra Winforms/WPF/Desktop
  10. Silverlight er bygget på .NET, er typestærkt, en fodel for for udviklerer der fra et .NET miljø.

Der er også ting ved HTML som du ikke får ved brugen af Silverlight, bla. dette:

  1. HTML er platform agnostisk
  2. HTML er en åben standard
  3. HTML køre uden at skulle installere et plugin
  4. HTML er nemmere at forstå og læse
  5. HTML er hurtigere at lære (kun HTML)
  6. HTML er gratis
  7. HTML nærmere sig mere et

Med HTML 5 er standarden rykket et skridt nærmere noget som man ikke behøver et dynamisk sprog til, men jeg synes stadigvæk der er meget langt endnu før man kan afskrive Silverlight ift. at udvikle “rene html” browserapplikationer udelukkende. I mine øjne kommer det som sagt helt an på hvem, hvad og hvorfor den nye applikation skal bruges til og af hvem.

Som det sidste kunne jeg godt tænke mig at komme med et par eksempler hvor en Silverlight applikation ville være meget federe istedet for en ordinær HTML/Web applikation. Om i er enige eller ej må i selv finde ud af :)

Den Blå Avis

Man kunne virklig peppe det site op ved at lave noget rafinerede Silverlight ting såsom drag’n drop (billeder) når man skal lave en ny annonce, webcam kontakt, deepzoom effekt på varen man gerne vil købe. Man kunne også lave auktionerne mere interaktive, så man f.eks kunne se et nedtællingsur, lave en lækker WP7 integration til auktionerne, en OOB app så man ikke skulle ind og tjekke på sitet hver gang osv.

DMI

Brug BING silverlight kontrollen til at lave et verdenskort og træk data fra en service til at vise tempraturer og andre vejrmæssige forhold på kloden eller i DK.

Billetnet.dk

Hvorfor ikke have mulighed for evt. at kunne lytte til noget af det musik Billetnet sælger billetter til ? En Silverlight afspiller til et par numre, noget af det teaterstykke man skal se, eller evt. en hel koncert mod betaling ?

Tags:

Comments (5) -

Nis Wilson Nissen
Nis Wilson Nissen Denmark
11/1/2010 4:14:35 PM #

Hej Daniel,

Silverlight er en fed teknologi, men den bliver nok aldrig mere udbredt som web  platform end html. Heller ikke inden for web applikationer.

Selv jeres egen Bob Muglia lader ikke til at ville i den retning længere:

www.zdnet.com/.../7834

Silverlight skal nok nærmere forstås som en client-app teknologi som tilfældigvis kan køre i en browser.

Cheers,
Nis

Reply

daniel
daniel Denmark
11/2/2010 8:52:18 AM #

Hej Nis,

Udover din personlige tolkning af Bob Muglia (tror jeg) er dine pointer i sync med mine egne. Silverlight har sin plads i værktøjskassen, men teknologien er ikke til at udvikle "orginale" web applikationer med.

Reply

Google Reklam
Google Reklam Denmark
2/21/2012 9:06:17 PM #

Med HTML 5 er standarden rykket et skridt nærmere noget som man ikke behøver et dynamisk sprog til, men jeg synes stadigvæk der er meget langt endnu før man kan afskrive Silverlight ift. at udvikle “rene html” browserapplikationer udelukkende

Reply

Gdzie na weekend
Gdzie na weekend United States
6/25/2012 6:12:01 PM #

Great info

Reply

Microsoft Points
Microsoft Points United States
9/15/2012 8:46:04 AM #

Fantastic post.

Reply

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

About Daniel

Technical Evanglist at Microsoft in Denmark.

Community engager by heart.

Software developer by passion.

Learning by failing.