Microsoft Silverlight är ett tilläggsprogram till webbläsare för visning av interaktiva webbapplikationer samt mediefiler, utvecklat av Microsoft. Silverlight tillhandahåller en del av animerings-, vektorgrafik- och mediefunktionaliteten som finns i Windows Presentation Foundation. Silverlight finns tillgängligt för Microsoft Windows och Mac OS, och för mobila enheter som använder plattformarna Windows Mobile och Symbian. Stöd för Linux och andra Unixliknande operativsystem utvecklades genom Moonlight-projektet, vilket dock lades ner i maj 2012.
Silverlight kallades tidigare Windows Presentation Foundation/Everywhere (WPF/E) och anses vara en konkurrent till Adobe Flash. Den konkurrerar även med Sun Microsystems JavaFX som lanserades några dagar efter Silverlight.
Gränssnittet för applikationer i Silverlight definieras med XAML och är vektorbaserat.
Överblick Silverlight erbjuder ett grafiksystem liknande Windows Presentation Foundation och integrerar multimedia, datorgrafik, animeringar och interaktivitet i en och samma miljö. I Silverlightapplikationer är gränssnittet deklarerat i XAML och programmerat i en del av .NET. XAML kan användas för definiering av vektorgrafik och animeringar. Silverlight kan även användas för att skapa Windows Sidebar Gadgets för Windows Vista.
Silverlight har stöd för H.264-video, Advanced Audio Coding, Windows Media Video (WMV), Windows Media Audio (WMA) och MPEG Layer III (MP3) i alla stöttade webbläsare utan något krav på Windows Media Player, någon ActiveX-kontroll för densamma eller något plugin för webbläsaren. Eftersom Windows Media Video 9 är en implementation av SMPTE VC-1-standarden så stöder Silverlight även VC-1-video.
Silverlight gör det möjligt att dynamiskt ladda in XML så att det kan manipuleras via ett DOM-gränssnitt, en teknik som är passande för konventionell programmering i Ajax. Silverlight har ett nedladdningsobjekt som kan användas för att ladda ner innehåll så som script, mediafiler eller annan data och som krävs av applikationen. I och med version 2 kan programmeringen skrivas i vilket språk som helt inom .NET, inklusive IronRuby och IronPython.
Mottagande Microsoft Silverlight hade i juni 2011 73 procent av marknaden, en ökning från 20 procent i mars 2009 och 55 procent i mars 2010. Adobe Flash är installerat på 97 procent av alla webbläsare vilket gör den marknadsledande. Även HTML5 erbjuder en del funktionalitet liknande den i Silverlight och Flash.
Versioner Silverlight 1 Silverlight 1 utvecklades under kodnamnet Windows Presentation Foundation/Everywhere (WPF/E) och släpptes 2007. Den består av följande komponenter: Input - hantering av indata från tillbehör som tangentbord, mus och så vidare. UI core - hanterar rendering av bitmap-bilder (inklusive till exempel JPEG, vektorgrafik, text och animeringar). Media - uppspelning av MP3, WMA Standard, WMV7, WMV8 och WMV9/VC-1. XAML - låter gränssnittets layout skapas med hjälp av XAML markup.
En Silverlight-applikation startas genom att en Silverlightkontroll anropas från en HTMLsida. Denna laddar sedan upp en XAML-fil. XAML-filen innehåller ett “Canvas”-objekt som fungerar som en behållare för andra element. Silverlight tillhandahåller olika geometriska enkla former så som linjer, ellipser med mera för element som texter, bilder och media. Elementen används för att skapa en önskad layout. Elementen kan animeras med hjälp av ”Event triggers. Sådant som tangentbordstryckningar eller musrörelser kan även aktivera event, som då kan hanteras av ett specialskrivet script. Manipulation av gränssnittet kan uppnås genom användning av script för att manipulera Canvas-objektets DOM. För att underlätta detta finns ett speciellt API tillgängligt för alla scriptspråk som stöds av Silverlight.
Silverlight 2 Silverlight 2 inkluderar en version av .NET-ramverket och implementerar samma fulla version av CLR som .NET 3.0. Därför kan den köra program skrivna i alla .NET-språk. XAML-filen som används för layout kan utökas med bakomliggande kod, skriven i vilket .NET-språk som helst och som sedan innehåller den programmerbara logiken. Detta kan användas för att med kod manipulera både applikationen och HTML-sidan som innehåller Silverlight-kontrollen. XAML-filen och den bakomliggande koden kompileras till .NET assembly som sedan komprimeras och lagras i en .xap-fil.
.NET i Silverlight adderar en delmängd av modellen för gränssnittsprogrammering från WPF, inklusive stöd för former, dokument, media och animerade objekt. Det inkluderade BCL (Base Class Library) tillhandahåller klasser för samlingar, reflektioner, reguljära uttryck (regular expressions), stränghantering och dataåtkomst. Det stöder även LINQ och serialisering av objekt. Silverlight kan hantera data i formaten RSS och JSON, utöver XML. BCL skapar även ett förbättrat stöd för XML, inklusive klasserna XMLReader och XMLWriter. Silverlight 2 har även stöd för asynkron programmering genom användning av trådning. och ListBox. Silverlight inkluderar även klasser för dataåtkomst via webbtjänster, REST, Windows Communication Foundation (WCF) Services och ADO.NET Data Services. Nätverksstödet i Silverlight kan användas av Silverlight-applikationer för att kommunicera via Hypertext Transfer Protocol (HTTP) eller på en lägre socket–nivå. Silverlight använder en XML-baserad konfigurationsfil för att kontrollera policys för åtkomst över flera domäner, både för HTTP och socket-kopplingar. Denna kan användas av administratören för att kontrollera vad en Silverlight-applikation får tillgång till när den applikationen inte härstammar från sidans egen domän.
I och med integreringen av .NET tillåter Silverlight även HTML-styrd interaktion vilket möjliggör manipulation av HTML DOM-element genom så kallad ”managed code”, och låter JavaScript användas för att anropa denna. Silverlight använder wrappers runt JavaScript-objekt och DOM-element för att göra dem tillgängliga för ”managed code”. Silverlight 2 inkluderar Deep Zoom, en teknologi som har sitt ursprung i Microsoft Live Labs' Seadragon. Det låter användaren zooma in eller ut ur en bild med mjuka övergångar genom att använda musens hjul.
Mediafunktioner i Silverlight 2 inkluderar: Stöd för WMA, inklusive WMA 10 Pro. Innehållsskydd med hjälp av Microsoft PlayReady Server-side playlists i Windows Media Services. Media Stream Source API.
Silverlight 3 Silverlight 3 annonserades vid International Broadcasting Convention den 12 september 2008 i Amsterdam och visades upp för första gången vid MIX i Las Vegas den 18 mars 2009.
Silverlight 3 inkluderar en ökad mängd kontroller. Exempelvis DataGrid, TreeView, olika paneler för layout, DataForm och DataPager. Dessutom inkluderar Silverlight 3 ett ramverk för navigation som låter Silverlight använda en hyperlänkad navigationsmodell utöver att använda “deep linking” och alltså länka till specifika sidor.
Inom mediaområdet har Silverlight 3 stöd för Advanced Audio Coding (AAC) och hårdvaruaccelererad H.264 video. Silverlight 3 erbjuder även streaming i 1080p. Silverlight 3 har även stöd för perspective 3Dsom möjliggör 3D-transformationer av 2D-element.Dessa transformationer är, precis som många olika 2D-operationer, hårdvaruaccelererade. Installerade Silverlight 3-applikationer letar automatiskt efter uppdateringar asynkront vid varje upstart och uppdateringarna installeras automatiskt. Instanser av applikationerna som redan körs informeras även om att uppdateringar är tillgängliga.
Silverlight 4 Vid Professional Developers Conference i Los Angeles den 18 november 2009 visade Microsoft för första gången upp en betaversion av Silverlight 4. Den slutgiltiga versionen släpptes den 15 april 2010, tillsammans med ett verktygspaket för utvecklare. Ny funktionalitet i Silverlight 4 inkluderar:
Stöd för Google Chrome. Stöd för webbkamera och mikrofon. Stöd för utskrifter. Förbättrat stöd för mus, inklusive stöd för den högra musknappen och hjulet. Nytt stöd för att visa meddelanden till slutanvändaren. Nya och förbättrade kontroller, exempelvis RichTextBox och DatataGrid. Nytt stöd för att implicit sätta teman för kontroller. Nytt stöd för att rendera HTML inuti Silverlight. Förbättringar av WCF datalager. Lokaliseringsförbättringar med dubbelriktad text. Stöd för Managed Extensibility Framework. Förbättrat stöd för databindning. Förbättrade animeringseffekter. Stöd för clipboard och “drag and drop”. Förbättringar i prestanda för Deep Zoom. WCF Rich internet application (RIA) Services. Innehållsskydd för H.264 samt stöd för offline-uppspelning av DRM-skyddad media.
Silverlight 5 Den 2 december 2010, vid eventet Silverlight Firestarter, avslöjades det att en betaversion av Silverlight 5 skulle släppas under första halvan av 2011. Den slutgiltiga versionen är planerad att släppas under den andra delen av 2011.
Nya funktioner i Silverlight 5 är::
Stöd för GPU-accelererad videodecoding. Inbyggt stöd för 3D-grafik Variabel hastighet vid uppspelning av mediainnehåll med automatiskt pitch-kontroll. Inbyggt stöd för fjärrkontroll Stöd för snabbare uppstart av applikationer Stöd för 64-bits webbläsare Automatisk testning av användargränssnitt för applikationer med Visual Studio 2010. Utvecklare kan avlusa data-binding expressions och sätta brytpunkter på bindings. Förbättringar av WCF RIA
Utvecklingsverktyg Silverlight-applikationer kan skrivas i valfritt programmeringsspråk inom .NET. På grund av detta kan även de olika utvecklingsverktyg som fungerar för .NET-språk även fungera med Silverlight, förutsatt att de kan använda sig av Silverlight CoreCLR för att hosta applikationen, istället för .NET Framework CLR. Microsoft har positionerat Microsoft Expression Blend som ett bra verktyg tillsammans med Visual Studio för utveckling av användargränssnitt i Silverlight. Microsoft Visual Studio kan användas för att utveckla och avlusa Silverlight-applikationer.
Ett Silverlight-projekt innehåller filerna Silverlight.js och CreateSilverlight.js, vilka initialiserar en plug-in för användning i HTML-sidor, en XAML-fil för gränssnittet samt filer för bakomliggande kod. Från och med släppet av Silverlight 2 så är även Eclipse ett alternativ som utvecklingsverktyg.
Mono Moonlight En grupp för utveckling av mjukvara kallad Mono arbetar med ett projekt kallat Moonlight. Moonlight är en implementation av Silverlight 1 och 2 som fri mjukvara med öppen källkod.
Projektet är officiellt stöttad av Microsoft som i en överenskommelse med Novell har lagt till specifikationer samt get Mono-gruppen tillgång till Silverlights klassbibliotek, APIer, binära codecs och testfall, inget av detta är tillgängligt för allmänheten.
Kompatibilitet OS/WebbläsareIE 6 SP1IE 6 SP2IE 7/IE 8Firefox/SeaMonkey/MozillaSafariKonquerorOperaGoogle ChromeWindows Vista/Windows 7N/AN/A1.0, 2.01.0, 2.01.0, 2.0; via NPAPIN/AEj officiellt2.0, 3.0Windows Server 2003N/A1.0, 2.01.0, 2.01.0, 2.01.0, 2.0; via NPAPIN/AEj officiellt2.0, 3.0Windows XPN/A1.0, 2.01.0, 2.01.0, 2.01.0, 2.0; via NPAPIN/AEj officiellt2.0, 3.0Windows 2000Planerad 2.0N/AN/APlanerad 2.0N/AN/APlaneradN/ASymbian s60 5thN/AN/AN/AN/AN/AMac OS X 10.4.8+ PPCN/AN/AN/A1.01.0N/APlaneradN/AMac OS X 10.4.8+ IntelN/AN/AN/A1.0, 2.01.0, 2.0N/APlaneradN/ALinux x86(Moonlight)N/AN/AN/APlaneradN/APlaneradPlaneradN/ALinux x86-64(Moonlight)N/AN/AN/APlaneradN/APlaneradPlaneradN/A Fotnot: Opera kommer att få officiellt stöd i en framtida version. Dock finns ett ej officiellt hack som ger stöd På Linux^ kommer funktionen att möjliggöras via tredjepartsprogrammet Moonlight. Moonlight kommer att fungera på de flesta Linux-distributioner med stöd för Firefox, Konqueror och Opera.