Silverlight - tidligere Windows Presentation Foundation Everywhere.
Silverlight er det nye navn for det det tidligere var kendt som WPF/E - eller Windows Presentation Foundation Everywhere. Silverlight er videreudviklingen af Windows Presentation Foundation som Microsoft introducerede som del af .NET 3.0 - sammen med Windows Communication Foundation og Windows Workflow Foundation.
Silverlight er fornylig udgivet som Beta 1, og planen er at der er endelig release her til sommeren 2007. Det helt spændende er at Silverlight giver mulighed for at man kan udvikle rige brugerflader der kan køre hvor som helst, og som kan programmeres i mange forskellige sprog - herunder C# og VB som er de relevante sprog for mit vedkomne.
Derudover forbedres mulighederne for samarbejde imellem designere og udviklere markant via nye værktøjer der arbejder med XAML. Dette er noget jeg personligt har savnet igennem længere tid, da det kan føles akavet at få et design og sidde og skifte html-elementer ud med kontroller, og i sidste ende vrage nogle af de ting, da det kan være uhensigtsmæssigt at implementere.
En sidste stor pointe er at Silverlight tilbyder komponenter til lettere at vise og arbejde med video i et helt nyt omfang. For eksempel vil det være muligt at sætte bookmarks ind i video, som man så kan programmere op imod sådan at der sker noget når et bestemt punkt spilles - dette kunne være at lade brugeren deltage aktivt eller måske bare vise en reklame ved siden af. Det vil også være muligt via Expression Studio at arbejde med hvordan video vises - så videoen kan fades ind eller klippes ud som puslespil hvis man skulle have lyst til at lave den slags lir.
Med hensyn til visning af medier tilbyder Microsoft samtidig det de kalder Silverlight streaming service, hvor man kan uploade sine videoer og derefter bruge dem på sit site - der er dog en 4 GB max grænse til at starte med.
Der findes allerede en række demoer af hvad man kan lave der spænder fra online realtime videoredigering, over bestilling af flybilletter med visning af ruten, til roterende 3D-terninger som alternativ til den gode gamle dropdownboks.
.NET crossbrowser og crossplatform.
At Silverlight kan køre "hvor som helst", lægger naturligvis op til en lidt mere præcis forklaring. Det der ligger i det er at Microsoft har shippet en .NET runtime der kan køre på tværs af platform og browser, hvilket jeg indtil videre har set demonstreret på Windows og Mac med både Internet Explorer og Firefox. Det eneste det kræver er et plugin, som kan installeres på under 20 sekunder! Med andre ord er det ikke nogen egentlig hindring at skulle smide dette plugin ind som det har været tilfældet med andre plugins igennem tiden.
Det kan som en sidekommentar også nævnes at debugging også er crossplatform, så du kan sidde og debugge noget der kører i Firefox på en Mac. Om du arbejder med ASP.NET, PHP eller hvad du nu kunne finde på er heller ikke afgørende, da Silverlight kan køre sammen med hvad som helst.
Hvad er så fordelene ved at køre .NET direkte i browseren?
Der er naturligvis mange fordele ved at kunne arbejde i et fuldgyldigt programmeringssprog, men jeg vil vælge at ligge mig op af dem som Scott Guthrie fremhævede ved MIX 2007 som er.
Multi-language support: inklusiv C#, VB, Ruby, Python og andre .NET sprog (mere end 37 sprog i alt).
Høj performance runtime: eller rettere fantastisk performance, der virkelig sparker røv på alternativer som f.eks javascript hvor benchmarks har vist at det er 300-700 gange så hurtig.
Rige kontroller med grafik, medier og interaktivitet: kontroller kan se ud og reagere lige som man ønsker, idet man ikke længere er bundet til at bruge html elementer, bitmap billeder og embedded video.
Html DOM integration: der er inkluderet et html bibliotek der giver mulighed for at tilgå elementer på siden, inklusiv statusbar, window frame og lign.
Robust networking: gør det muligt at kalde hvilket som helst type endpoint og udveksle data.
Flexible data support: LINQ query API understøttelse (se evt min LINQ artikel om dette emne).
XAML og samarbejde imellem design og udvikling.
Med hensyn til samarbejde imellem designere og udviklere består det i at der kommer en række værktøjer som er målrettet begge faggrupper, således at de kan arbejde på de samme projekter.
Expression Studio er til designere og indeholder værktøjer til at designe komponenter og arbejde med grafik, medier og endcoding - som hedder Expression Design, Blend og Media Encoder.
Cider er tilsvarende tilsigtet udviklere, således at de kan arbejde lidt videre med komponenterne i forbindelse med integration.
Den underliggende teknologi eller det underliggende sprog om man vil er XAML, som du kan læse mere om her. Kort fortalt er det et XML baseret sprog til at udarbejde vector baseret grafik og animation, lidt i stil med Flash. Derved kan man faktisk læse koden og ændre i den manuelt, men derudover er der som nævnt flere forskellige værktøjer på vej, sådan at man kan arbejde med det på et noget højere abstraktionsniveau som vi er vant til.