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.