Microsoft Silverlight (SL)
Eintrag zuletzt aktualisiert am: 15.02.2022
Silverlight ist eine reduzierte Version des Microsoft .NET Frameworks mit der man sowohl Plug-In-basierte Browser-Anwendung (
Rich Internet Applications -.
RIA) als auch eigenständige Desktop-Anwendungen schreiben kann.
Versionsgeschichte
Version 1.0: 4.9.2007 (Version 1.0.20816, basierte noch nicht auf .NET, sondern
JavaScript)
Version 2.0 (vormals 1.1 genannt): 14.10.2008 (Version 2.0.31005.0)
Version 3.0: 9.7.2009
Version 4.0: 15.4.2010
Version 5.0: 9.12.2011
Version 5.1: 8.5.2012
Status
Microsoft hat die Weiterentwicklung vion Silverlight eingestellt. Silverlight 5.x wird noch bis zum 10.12.2021 unterstützt.
Seit Mai 2020 ist es wieder möglich, .NET-/C#-Code im
Webbrowser auszuführen und damit Single-Page-Web-Applications (SPAs) zu schreiben:
Blazor WebAssembly läuft aber nicht auf Basis eines Plug-Ins, sondern auf dem WebAssembly-Standard des
W3C in allen modernen Browsern.
Die französische Firma Userware hat am 9.3.2020 OpenSilver angekündigt, eine Reimplementierung von Microsoft Silverlight auf Basis von WebAssembly. Damit ist es möglich, Silverlight-Anwendungen in aktuellen Versionen von modernen
Webbrowsern (Chrome, Edge, Firefox, Safari etc) zu betreiben.
Hintergründe
Silverlight ist ein Ableger von WPF, basiert also auch auf der Oberflächenbeschreibungssprache
XAML. Der früherer Name von Silverlight war
WPF/E (
Windows Presentation Foundation Everywhere). Ursprünglich war Silverlight ein reines Browser-Plug-In als Konkurrenz zu Macromedia Flash. Silverlight kann jedoch seit Version 3.0 auch außerhalb des Browsers laufen ("Out-Of-Browser", kurz OOB). Seit Version 4.0 ist sogar ein Ausbrechen aus der Sandbox mit fast vollständigem Zugang zu lokalen Ressourcen möglich ("Trusted Application"). Silverlight wird damit immer mehr zu einer Konkurrenz zur großen Mutter .NET. Silverlight wird auch im
Windows Phone 7 für die App-Entwicklung verwendet.
Allein vom Begriff her, muss man schon aufpassen: WPF in eine reine Oberflächenbibliothek im Rahmen des .NET Frameworks und klar abgrenzt von anderen nicht-visuellen Bibliotheken des .NET Frameworks. Silverlight ist hingegen ein Oberbegriff für alle Teile des Mini-.NET, sowohl die visuellen als auch die nicht-visuellen.
Die erste Version von Silverlight, die am 04.09.2007 erschienen ist, bot zunächst
XAML als Oberflächenbeschreibungssprache sowie die Programmierbarkeit mit
JavaScript. Die zweite Version war jedoch dann ein Mini-.NET Framework, das nicht nur
XAML, sondern das zahlreiche .NET-Bibliotheken (z. B.
Netzwerkprogrammierung mit
System.Net,
Webservices mit
WCF/System.ServiceModel, Abfragen mit
LINQ, XML-Verarbeitung mit
System.Xml) unterstützt und die Programmierbarkeit mit C#, Visual Basic, Managed Jscript,
IronRuby und
IronPython bietet.
Microsoft bietet Silverlight für die Betriebssysteme
Windows Vista, XP, 2003, 2000 und 2008 sowie
Apple OS X
Tiger und Leopard an. Als Browser werden dabei unterstützt
Internet Explorer (ab 6.0), Firefox (ab 1.5) und Safari (ab 2.0). Im Rahmen von
Mono gibt es mit
Moonlight auch eine Unterstützung für Unix /
Linux, die Microsoft sogar ausdrücklich fördert. Microsoft spricht daher von Silverlight auch als einem Cross-Plattform .NET.
Silverlight verwendet auch
XAML zur Oberflächenbeschrreibung, aber das Silverlight-
XAML ist nicht 100%-kompatibel zum WPF-
XAML. Zum einem sind – verständlicherweise – nicht alle
XAML-Funktionen aus WPF in Silverlight verfügbar. Auf der anderen Seite gibt es aber auch einige syntaktische Eigenarten in Silverlight, die es in WPF noch nicht gibt. Dieses Kompatibilitätsproblem will Microsoft aber in der Zukunft beheben (vgl. Ankündigung [SG03]).
Die Architektur von Silverlight ist auf die Verwendung von
Webservices auf einem Application Server ausgelegt (3-Tier-Architektur). Es gibt in Silverlight kein ADO.NET und kein
ADO.NET Entity Framework. Silverlight muss sich Daten immer von einem
Webservice beschaffen, auch in der OOB-Variante. Dieser
Webservice, der dann im einfachsten Fall mit .NET implementiert ist, kann natürlich serverseitig alle Fähigkeiten von .NET nutzen. Allenfalls eine "Trusted Application" könnte über die
COM-Objekte der
ActiveX Data Objects (ADO) direkt mit einer
Datenbank reden.
Aktuell ist die Silverlight-Version 4.0, die am 16.4.2010, also sehr kurz nach
.NET 4.0, erschienen ist.
Eigenschaften von Silverlight
- Läuft im Webbrowser als Plug-In
- Läuft "Out of Browser"
- Plattformunabhängig (derzeit Windows und Mac ab 10.4.8) - auch Out of Browser
- Browserunabängig (Internet Explorer, Firefox, Opera, Safari)
- Basiert auf einer reduzierten Version der .NET Framework Common Language Runtime (CLR)
- Darstellung mit XAML (Teilmenge von XAML für WPF), tlw. Aber auch mehr Features als WPF (z.B. Deep Zoom, in WPF erst ab Version 4.0)
- Interaktion mit dem Browserfenster (durch JavaScript, DOM/DHTML/AJAX)
- Programmierung mit C#, Visual Basic .NET, Python und Ruby (ab Version 2.0)
- Einschließlich Funktionen von .NET 3.5 wie LINQ to Objects und Linq to XML (ab Version 2.0)
- Audio/Video/Video HD-Unterstützung (WMA, MP3, WMV, SMPTE VC-1, u.a.)
- AAC und H.264 ab Version 3.0; bisher nicht MPEG4 und Flash Video
- Digital Rights Management erst in Zukunft
- Unterstützung für Video Streaming
- Setzt nicht Windows Media Player voraus
- Microsoft bietet für kleinere Videos kostenfreies Hosting über Windows Live an (mit Werbung): http://streaming.live.com/
- Größe der Laufzeitumgebung: ca. 2 MB (Silverlight 1.0) bzw. 4.6 MB (2.0) bzw. 4.7 MB (3.0)
- Kostenfrei
- Werkzeuge: Microsoft Expression Blend (ab Version 1.1) und Visual Studio (ab Version 2008)
- Ergänzende Bibliotheken: Silverlight Controls for ASP.NET
Hintergrund
Silverlight liegt im Trend der
Rich Internet Applications (
RIA), Browseranwendungen die so aussehen und so zu bedienen sind, wie Desktop-Anwendungen. Verglichen mit den
AJAX bietet Silverlight den Vorteil, dass man sich als Entwickler nicht die ganze Zeit mit Krücken über das hinweghelfen muss, was in HTML und HTTP eigentlich nicht so gedacht war. In die gleiche Produktkategorie wie Silverlight muss man auch Macromedia Flash/Flex und
JavaFX sowie auch die ältere Technologien Java
Applets und ActiveX einordnen. Gegenüber dem ärgsten Konkurrent Flash kann Microsoft vor allem der Durchgängigkeit der Plattform punkten. Flash hingegen hat die größeren Zahl bei den verfügbaren Entwicklern, den Ressourcen im Internet und – entscheidend – den Installationszahlen des Plug-Ins. Laut den Angaben von Hersteller Adobe befindet sich das Flash Player-Plugin auf 99% der "Internet-enabled desktops in mature markets" [
http://www.adobe.com/products/player_census/flashplayer/]. Silverlight bringt es laut riastats.com aktuell auf rund 32%, wenn man Version 2.0 und 3.0 zusammenzählt.
Silverlight versus WPF
WPF-Oberflächen laufen – genau wie
Windows Forms – als eigenständige Windows-Fenster oder im Fenster eines
Webbrowsers als sogennante Web Browser Application (
WBA). Sowohl WPF als auch
Windows Forms erfordern jedoch beim Einsatz im Web ein vollständiges .NET Framework – zumindest das
.NET Framework Client Profile – auf jedem Zielsystem.
WBAs sind daher ebenso wie
Windows Forms im Browser kaum zu finden, allenfalls in Intranet-Szenarien. Speziell für das Web-Szenario hat Microsoft daher Silverlight entwickelt, ein Mini-.NET Framework mit einer abgespeckten und syntaktisch veränder-ten Version von
XAML. Silverlight läuft als Browser-Plug-In mit "nur" 5 MB Download (gegenüber mehr als 60 MB für ein vollständiges .NET Framework).
Beim Vergleich von Silverlight und WPF ist zu beachten, dass die beiden Begriffe unterschiedliche Reichweiten besitzen. WPF ist eine Oberflächenbibliothek innerhalb des .NET Frameworks, die
XAML verwendet. Silverlight hingegen ist einerseits ebenfalls eine Oberflächenbibliothek, die
XAML verwendet, andererseits wird der Name Silverlight aber auch als kleineres Pendant zum .NET Framework gesehen und umfasst in diesem Sinne auch Bibliotheken, die nichts mit Benutzeroberflächen zu tun haben.