Silverlight: .NET im Browser
Artikel erschienen in Swiss IT Magazine 2007/11
Microsoft macht Ernst beim Thema Web 2.0. Nachdem das im Januar dieses Jahres endlich offiziell fertiggestellte ASP.NET AJAX Microsoft auf Augenhöhe mit den zahlreichen bereits länger verfügbaren AJAX-Frameworks brachte und mit Visual Studio Orcas Ende April das erste echte Entwicklungswerkzeug für ASP.NET mit AJAX-Erweiterungen in Gestalt einer Beta 1 freigegeben wurde, machte die Ankündigung von Silverlight ein paar Tage später deutlich, dass sich Microsoft nicht nur auf das Anbieten von Entwicklerwerkzeugen beschränken will. Mit Silverlight, das im Sommer dieses Jahres offiziell werden soll, will man beim Kampf um die Gunst des globalen Webpublikums, das indirekt für attraktive Werbemilliarden steht, vorne mit dabei sein. Gleichzeitig will man mit dem neuen Expression Studio eine umfassende Tool-Suite für Webdesigner etablieren und Platzhirsch Adobe die praktische Alleinherrschaft in diesem Bereich streitig machen. Microsoft gegen den Rest der (Web-)Welt? Die Chancen stehen gut, dass sich nicht nur eingeschworene Entwickler im Microsoft-Umfeld überzeugen lassen werden.
Silverlight (der frühere Name war Windows Presentation Everywhere, kurz WP/E) ist eine Crossbrowser-, Crossplattform-Technologie, mit der sich beliebige Inhalte in einem im Prinzip beliebigen Browser anzeigen lassen. Das, was im Browser zu sehen ist, ist aber kein HTML, sondern eine Kombination aus XAML (eXtensible Application Markup Language), JavaScript-Objekten und JavaScript (Silverlight 1.0) oder einer .NET-Sprache (Silverlight 1.1).
Silverlight steht zur Zeit in einer Vorabversion sowohl für Windows als auch für MacOs X zur Verfügung. Unterstützt werden neben Internet Explorer und Firefox unter Windows der Safari-Browser unter Mac OS X (weitere Browser sollen folgen). Eine Silverlight-Anwendung läuft vollständig im Browser und in der Regel als Teil einer regulären HTML-Seite, so wie es bei Flash-Anwendungen der Fall ist. Im einfachsten Fall ist eine Silverlight-Anwendung ein typischer Mediaplayer oder ein Spiel, es kann sich aber auch um eine reine Geschäftsanwendung ohne Multimediaspielereien handeln (die Airline-Demo, die Microsoft auf der Mix07 zeigte und die als Download zur Verfügung steht, macht sehr schön deutlich, wie die nächste Generation an Webanwendungen aussehen könnte).
Silverlight ist aus drei Gründen für Entwickler von Browser-basierten Anwendungen attraktiv:
Der neue Name (der laut Microsoft keine Anspielung auf Flash sein soll) darf nicht darüber hinwegtäuschen, dass hinter Silverlight bewährte Technologien stehen. Den Kern der Runtime bildet die industrieerprobte Common Language Runtime (CLR), die einen gewaltigen Performance-Gewinn gegenüber reinem JavaScript verspricht.
Dazu kommt eine Klassenbibliothek, die nur das Allernotwendigste umfasst und den Browser endlich komfortabel programmierbar macht sowie auf «Sicherheitslücken» verzichtet. Ausserdem wird eine grosse Auswahl an Programmiersprachen unterstützt, so dass kein Entwickler mehr JavaScript lernen muss, das aber nach wie vor in Frage kommt. Neben «Oldtimern» wie Visual Basic und C# setzt Microsoft zunehmend auf die modernen Sprachen wie Python und Ruby, die vor allem in der Webgemeinde sehr beliebt sind. Unter dem Codenamen «Jasper» beziehungsweise «Dynamic ADO.NET» wurde auf der Mix07 ausserdem eine Erweiterung für das kommende ADO.NET Entity Framework angekündigt und eine erste CTP zur Verfügung gestellt. «Jasper» kann als eine Art Pendant zu Ruby on Rails betrachtet werden.
Für einen Erfolg von Silverlight ist es Voraussetzung, dass die neue Technologie von den Entwicklern angenommen wird. Entwickler benötigen die Version 1.1 von Silverlight, denn erst hier kommt
.NET ins Spiel. Für die ersten Schritte kommen entweder die Vorabversion von Expression Blend 2 oder Visual Studio Orcas Beta 1 in Frage. Beide werden aber aller Voraussicht nach nicht mehr in diesem Jahr fertig werden.
Der Umstand, dass Entwickler sich ihre Lieblingssprache aussuchen können, ist dabei ein grosser Vorteil gegenüber Flash, wo es mit ActionScript bekanntlich nur eine Sprache zur Auswahl gibt. Auch die .NET-Klassenbibliothek in Kombination mit einer grossen Auswahl an «Zubehör» ist für Entwickler sehr attraktiv. Die Einbindung von einfachen REST- oder POX-Webservices ist problemlos möglich und immer dann erforderlich, wenn Daten von einem Server abgerufen werden sollen. Speziell für typische Medienanwendungen à la YouTube plant Microsoft einen Streamingservice, der Mediendateien extrem schnell zur Verfügung stellen soll. Für die Abfrage von (lokalen) Datenquellen gibt es ausserdem das neue Abfrage-Framework LINQ, was einmal mehr unterstreicht, dass Microsoft die neue Technik nicht nur für Spezialanwendungen vorsieht.
Die Ankündigung auf der Mix 07 hat ihre Wirkung nicht verfehlt. Silverlight beherrschte nicht nur für ein paar Tage die Schlagzeilen, sondern ist auch bei jenen Webentwicklern auf dem Radarschirm aufgetaucht, die bislang zu Microsoft-Produkten keine Beziehung hatten. Doch wie so oft ist eine gelungene Ankündigung keine Garantie dafür, dass daraus ein langfristiger Erfolg wird. Es gibt Argumente, die dafür sprechen, dass sich Silverlight im Web als Alternative zu Flash etablieren kann, es gibt aber auch Gründe dafür, dass dies, wenn überhaupt, nicht in naher Zukunft passieren wird (mehr dazu im Kasten auf der gegenüberliegenden Seite).
Das Argument, dass Silverlight «um Jahre zu spät» kommt, zählt dagegen sicher nicht, denn das Web entwickelt sich in der Breite deutlich langsamer, als es der Erfolg einiger weniger Grossportale oder der üblichen Web-Avantgardisten suggerieren könnte. Wenn es Microsoft nämlich tatsächlich schafft, die durch bunte Präsentationen und aufwendige Demos geweckten Erwartungen zu erfüllen, kommt die Technologie gerade rechtzeitig.
Microsoft geht es mit Silverlight sicher nicht darum, lediglich Flash zu kopieren oder dem Heimanwender jene multimedialen Erlebnisse zu ermöglichen, die er anderswo auch bekommt. Microsofts Vision geht ein grosses Stück weiter und bezieht vor allem die Geschäftsanwendungen mit ein
– ein Bereich, in dem Flash bislang nicht punkten konnte.
Wer sich all diesen Ungewissheiten zum Trotz bereits heute eingehend mit Silverlight beschäftigen möchte, kann dies über die offizielle Silverlight-Website unter www.silverlight.net tun. Hier gibt es nicht nur die Silverlight-Runtime, sondern auch Demos, Beispiele und Links zu allen benötigten Tools.
.NET läuft als Teil der Silverlight-Runtime als Browser-Plug-in
+ Microsoft besitzt eine breite Unterstützung durch seine Developer-Community. Es dürften weit über eine Million Entwickler sein, die weltweit mit Microsoft-Werkzeugen arbeiten. Für sie wäre Silverlight die logische Konsequenz, wenn es um Browser-Anwendungen geht. Die Entwickler können dabei bei C# oder Visual Basic bleiben und müssen keine neue Sprache lernen.
+ Mit Visual Studio steht ein hervorragendes und universelles Werkzeug zur Verfügung, das in den letzten Jahren verfeinert wurde. Es ist zudem (zur Zeit) deutlich preiswerter als die Adobe-Tools.
+ Silverlight basiert auf einer reichhaltigen Client-API. Auf der Serverseite stehen mit dem «grossen» .NET Framework eine noch sehr viel grössere Funktionsvielfalt und mit ASP.NET 2.0 und AJAX ein leistungsfähiges Framework für Webanwendungen zur Verfügung.
+ Die Microsoft-Entwickler haben Silverlight von Anfang an auf Performance getrimmt. Die CLR 2.0 aus dem .NET Framework, die auch Teil der Silverlight-Runtime ist, verspricht eine deutliche Performance-Steigerung gegenüber interpretiertem JavaScript (allerdings gibt es auch bei anderen Herstellern Bestrebungen, die Ausführungsgeschwindigkeit von JavaScript-Code zu verbessern).
+ Das Thema Sicherheit wurde ebenfalls von Anfang an in den Mittelpunkt gestellt. Silverlight arbeitet mit einer vereinfachten Form der Code Access Security (CAS), Scripts können nicht auf das Dateisystem zugreifen, sondern sind auf einen «Secure Storage» beschränkt.
- Silverlight ist noch nicht offiziell verfügbar.
- Flash ist eine weitverbreitete Technologie, die sich über die Jahre eine loyale Anwenderbasis geschaffen hat. Für einen erfahrenen Webdesigner gibt es nur wenige Gründe, Flash gegen Silverlight einzutauschen. Der wichtigste Grund werden entsprechende Kundenanfragen sein.
- Grosse Webportale funktionieren grundsätzliche ohne Plug-ins. Auch wenn die verfügbare Bandbreite in der Schweiz in den letzten Jahren stark zugenommen hat, ist ein grosser Teil der Internet-User nach wie vor auf langsame Modemverbindungen angewiesen. Die Silverlight-Runtime umfasst 2 MByte (1.0) bzw. 4 MByte (1.1) und sogar 8 MByte unter MacOS X. Der Flash Media-Player ist mit 1.2 MByte noch relativ schlank und auch bei einer 56 K-Verbindung in wenigen Minuten heruntergeladen.
- Plug-ins haben es generell schwer. Der Flash-Player ist oft das einzige Plug-in, das Surfer akzeptieren.
- Linux bleibt bei Silverlight vorläufig aussen vor, allerdings dürfte der Anteil der Linux-Surfer auch relativ klein sein. Beim grossen Vorbild Flash kam die Linux-Unterstützung ausserdem ebenfalls erst relativ spät dazu.
- Bis auf weiteres gibt es kein fertiges Entwicklungstool für Silverlight. Das in erster Linie für Designer gedachte Blend 2 kommt vermutlich gegen Ende des Jahres, das für Entwickler gedachte Visual-Studio-Update wird voraussichtlich gar erst Anfang nächsten Jahres releast. Beide Tools laufen ausschliesslich unter Windows und nicht unter Mac OS X.
- Silverlight ist nicht ganz so neu wie der Name es suggerieren könnte. Mit der «grossen» Windows Presentation Foundation (WPF), die bereits seit November 2006 offiziell ist, lassen sich ebenfalls Anwendungen im Browser ausführen – für Entwickler, die nicht an Crossbrowser-, Crossplattform-Eigenschaften interessiert sind, ist dies die deutlich bessere Wahl.