Silverlight: .NET im Browser

Microsoft nimmt knapp 10 Jahre nach der Einführung von ActiveX mit Silverlight einen neuen Anlauf, eine universelle Browser-Erwei- terung zu etablieren. Die Fehler der Vergangenheit sollen sich nicht wiederholen. Silverlight ist von Anfang an auf Sicherheit, Perfor- mance und Portierbarkeit ausgelegt.

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.


.NET kommt ins Web

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:




- Es basiert auf einer Untermenge der modernen Windows Presentation Foundation (WPF), einer überaus leistungsfähigen Grafikschnittstelle, deren Stärken bei der Darstellung von Vektorgrafik und 3D-Grafik liegen.



- Silverlight arbeitet ab Version 1.1 mit Managed Code und damit mit kompiliertem Code, der in Visual Basic, C# oder einer der neuen dynamischen Sprachen wie Ruby oder Python geschrieben wurde. Gegenüber JavaScript, das für Silverlight 1.1 auch in einer kompilierten Form zur Verfügung steht, bedeutet dies einen riesigen Geschwindigkeitsvorteil, durch den eine ganz neue Form von Browser-Anwendungen denkbar wird – solche, die eine an Bedienelementen reichhaltige Benutzeroberfläche mit schnellen Antwortzeiten kombinieren.



- Mit Expression Blend und dem kommenden Visual Studio Orcas bietet Microsoft aktuell gleich zwei komfortable und leistungsfähige Entwicklungswerkzeuge, die Entwickler in die Lage versetzen, unmittelbar mit den ersten Silverlight-Anwendungen zu beginnen. Da Silverlight auf einer (stark) reduzierten Version der .NET-Klassenbibliothek aufsetzt, steht eine reichhaltige Anwendungsfunktionalität zur Verfügung (mehr dazu im Diagramm auf Seite 41).


Das bedeutet unter anderem, dass sich erfahrene Entwickler nicht länger mit der durch eine typische Browser-Umgebung vorgegebene Kargheit der API bestehend aus JavaScript-Objekten begnügen müssen. Silverlight bietet auch in einem Bereich deutlich mehr Komfort, der in reinem JavaScript immer zu endlosen «Befehlszeilenwürmern» führte – dem Zugriff auf den Browser selber und das zugrundeliegende Document Object Model (DOM). Das alles gepaart mit einer Entwicklungsumgebung (das kommende Visual Studio Orcas), die endlich auch für JavaScript und dessen Objekte IntelliSense anbietet und auch CSS vorbildlich unterstützt, wird die Entwicklung von Browser-Anwendungen auf eine neue, deutlich komfortablere Grundlage stellen.


Details zu Silverlight 1.1

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.


Silverlight für Developer

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 unter­streicht, dass Microsoft die neue Technik nicht nur für Spezialanwendungen vorsieht.



Trotz vieler vertrauter Elemente wird Silverlight aber gerade für erfahrene Entwickler von Desktop­anwendungen einen «Kulturschock» bedeuten. Silverlight-Oberflächen basieren auf der relativ neuen Beschreibungssprache XAML. Es gibt ein komplett neues GUI-Modell mit vielen neuen Elementen und Regeln. Dies wird vor allem beim Arbeiten mit Expression Blend deutlich, das mit Visual Studio bezüglich seiner Bedienung nur oberflächliche Ähnlichkeiten besitzt (aber das identische Projektdateienformat benutzt, so dass Projekte zwischen beiden Tools ausgetauscht werden können – allerdings noch nicht in den zur Zeit zur Verfügung stehenden Vorabversionen). Bereits das simple Anordnen eines Button auf einem sogenannten Canvas, der Grundfläche einer Silverlight-Anwendung, wird zu einer kleinen Herausforderung, da es ein schlichtes Button-Element gar nicht gibt, sondern dieses in der Regel über einen Textblock nachgebildet wird.


Wird es ein Erfolg?

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 Web­entwicklern 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ötig­ten Tools.




.NET läuft als Teil der Silverlight-Runtime als Browser-Plug-in


Das spricht für Silverlight

+ 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 lei­stungsfä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.


Hier hat Silverlight noch Schwächen


- 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.




Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Vor wem mussten die sieben Geisslein aufpassen?
GOLD SPONSOREN
SPONSOREN & PARTNER