Einführung in Silverlight 4

Was ist Silverlight?

Silverlight ist keine Entwicklungsumgebung und keine Programmiersprache. Silverlight kann man nicht kaufen. Aber was ist Silverlight dann?

Silverlight ist eine Technologie, um Internet Client Anwendungen mit reicher Benutzeroberfläche zu erstellen.

Bisherige Internet Client Anwendungen werden grundsätzlich in einem Internet Browser, zum Beispiel dem Windows Internet Explorer ausgeführt und basieren auf der Seitenbeschreibungssprache HTML. Alle Internet Browser unterstützen die Verwendung von Plug-Ins. Plug-Ins sind Zusatzmodule, die Code ausführen können. Neben der Anzeige von HTML Inhalten kann so in einem Internet Browser auch Code ausgeführt werden, der einerseits Programmlogik enthalten kann und andererseits auch optische Inhalte anzeigen kann, die nicht auf HTML basieren. Eins der bekanntesten Plug-Ins ist wohl das Flash Plug-In von Adobe. Flash wird auf vielen Webseiten verwendet.

Wenn mit einem neuen Windows Rechner erstmals eine Webseite besucht wird, die das Flash Plug-In erfordert, erscheint ein Hinweis und der Anwender muss bestätigen, dass er das Plug-In im Internet Explorer installieren will.

Mit Silverlight ist es ähnlich. Beim ersten Besuch einer Webseite mit Silverlight Inhalt, wird der Anwender darauf hingewiesen, dass das Silverlight Plug-In zur Anzeige des Inhalts installiert werden muss. Dieser Hinweis kann frei gestaltet werden. Die Abbildung zeigt das von Microsoft angebotene Standardhinweisbild.

Erst nach der erfolgreichen Installation werden Silverlight Inhalte im Internet Explorer angezeigt.

Installationshinweis auf einer Webseite

Die Technologie Silverlight wird also durch ein Internet Browser Plug-In auf der Client Seite nutzbar gemacht. Entwickelt werden Silverlight Anwendungen mit Visual Studio, zu dem die Silverlight Tools und eventuell weitere Komponenten installiert werden. Es ist denkbar, dass es künftig auch andere Entwicklungsumgebungen zur Entwicklung von Silverlight Anwendungen geben wird. Für die Entwicklungsumgebung Eclipse für Java ist bereits eine Silverlight Unterstützung angekündigt.

Silverlight Anwendungen können grundsätzlich auf jedem Internet Server gehostet werden, also zum Beispiel auch auf einem Linux Server. Erst wenn eine Datenanbindung erforderlich ist (und das wollen wir natürlich) ist ein Windows Server erforderlich. Die Kommunikation der Silverlight Client Anwendung erfolgt dabei über einen Windows Communication Foundation (WCF) Web Service, der mit Visual Studio erstellt wird. Über den Web Service wird die Verbindung zur Datenbank hergestellt. Das hört sich komplizierter an, als es ist. Wie wir im nächsten Artikel sehen werden, kann der Server Teil einer Silverlight Anwendung komplett generiert werden, solange keine Geschäftslogik benötigt wird.

Eine wichtige Idee von Internet Anwendungen ist, unabhängig vom verwendeten Internet Browser und auch unabhängig vom Betriebssystem zu sein. Idealerweise sollten Internet Anwendungen sogar unabhängig vom Gerätetyp sein. Außer auf PCs sollten Internet Anwendungen auf Smartphones, PDAs und anderen Geräten laufen, die über eine Internetverbindung verfügen und die eine Interaktion mit dem Anwender erlauben.

Mit Silverlight sollen alle diese Ideen realisiert werden. Das Silverlight Plug-In läuft auf allen wichtigen Internet Browsern auf den aktuellen Windows Versionen. Auch für Macintosh Rechner ist das Silverlight Plug-In verfügbar. Unter dem Namen Moonlight wird ein Silverlight Plug-In für Linux Rechner entwickelt. Nokia entwickelt ein Silverlight Plug-In für das Smartphone Betriebssystem Symbian. Auch auf dem Apple iPhone sollen Silverlight Anwendungen demnächst laufen. Und auch für das Smartphone Betriebssystem Android ist ein Silverlight Plug-In in Entwicklung.

Wir müssen daran denken, dass Silverlight eine sehr junge Technologie ist. Silverlight Plug-Ins sind zurzeit für viele Plattformen in Entwicklung. Wahrscheinlich werden auf einigen Plattformen zunächst nur ältere Versionen, wie zum Beispiel Silverlight 2, unterstützt werden. Die Entwicklung wird aber schnell voran gehen und wahrscheinlich werden schon bald für viele Plattformen Silverlight 4 Plug-Ins verfügbar sein.

Abschließend soll noch erwähnt werden, dass Silverlight die native Benutzeroberfläche für Mobiltelefone mit dem Betriebssystem Windows Phone 7 sein wird. Für weitere Gerätetypen, wie Fernseher und Set-Top Boxen, ist Silverlight als native Benutzeroberfläche geplant.

Silverlight Benutzeroberfläche auf Windows Phone 7

Warum Silverlight?

Die Benutzeroberfläche von Silverlight basiert auf einer Teilmenge der Windows Presentation Foundation (WPF). Für die Gestaltung von Benutzeroberflächen sind in Silverlight alle wesentlichen Elemente verfügbar, einschließlich Animationen und Transitionen sowie der Unterstützung von Multitouch Eingabegeräten.

Nun könnten wir statt Silverlight die Windows Presentation Foundation direkt verwenden. WPF würde uns damit vollständig und uneingeschränkt zur Verfügung stehen. Dies wäre aber nur ein kleiner Vorteil. Der Nachteil wäre, dass auf den Kundenrechnern das aktuelle .NET Framework installiert werden müsste. Im Vergleich zur schlanken Laufzeitumgebung von VFP, würden wir ein riesiges System auf den Kundenrechnern installieren müssen. Damit wären wir automatisch an die Windows Welt gebunden und könnten nicht mehr plattformübergreifend entwickeln, was mit Silverlight ohne Mehraufwand möglich ist. Den Weg zu Internet Anwendungen würden wir uns durch den Einsatz von WPF auch versperren. WPF ist auf den Einsatz in Windows Desktop Anwendungen beschränkt.

Praktisch alle Elemente der Benutzeroberfläche von Windows 7 sind mit WPF erstellt. Auch Visual Studio 2010 und Office 2010 haben Benutzeroberflächen, die vollständig mit WPF implementiert sind.

Mit Silverlight können wir praktisch gleichwertige Benutzeroberflächen implementieren und bleiben plattformunabhängig. Die Laufzeitumgebung, das Silverlight Plug-In, hat eine mit der VFP Laufzeitumgebung vergleichbare Größe von nur etwa 6 MB.

Für eine Silverlight Geschäftsanwendung muss auf dem Server allerdings das .NET Framework installiert sein. Da Netzwerk- und InternetServer in der Regel administriert werden, ist dies aber kein Nachteil, sondern nur eine Anforderung.

 Auch für Silverlight Desktop Anwendungen ist als Laufzeitumgebung nur das Silverlight Plug-In und nicht das .NET Framework erforderlich. Für Geschäftsanwendungen werden wir einen VFP COM Server einsetzen, der die Geschäftslogik und den Datenzugriff beinhalten wird.

Die Geschichte

Silverlight ist eine junge Technologie. In nur 3 ½ Jahren sind vier Versionen erschienen.

Silverlight 1

Die erste Version wurde im September 2007 veröffentlicht. Der Codename war „Windows Presentation Foundation/Everywhere“. Die Idee zur Entwicklung von Silverlight war, Medieninhalte im Internet Browser wiederzugeben. Die erste Version von Silverlight konnte Mediendateien in den Formaten MP3, WMA und WMV wiedergeben. Die Benutzeroberfläche wurde bereits in XAML beschrieben, aber es gab noch keine Steuerelemente für eine Interaktion mit dem Anwender. Es war jedoch möglich, HTML Steuerelemente in den Vordergrund vor eine Silverlight Anwendung zu bringen. Die Programmierung einer Silverlight 1 Anwendung war nur mit JavaScript möglich. Eine Datenanbindung war nicht vorgesehen. Diese Beschreibung macht deutlich, dass Silverlight damals nur für Entwickler von Webseiten interessant war, die Medieninhalte darstellen wollten.

Silverlight 2

Doch die Entwicklung von Silverlight ging schnell weiter. Bereits im Oktober 2008 wurde Silverlight 2 veröffentlicht. In Silverlight 2 ist eine Version des .NET Frameworks 3.0 enthalten, die die Common Language Runtime (CLR) beinhaltet, ansonsten jedoch sehr viel kleiner als das normale .NET Framework ist. Für Silverlight 2 können Anwendungen mit jeder .NET Sprache entwickelt werden. Die in Silverlight 2 integrierte Version des .NET Frameworks 3.0 enthält eine Teilmenge der Windows Presentation Foundation. Damit stehen in Silverlight 2 viele Steuerelemente zur Verfügung, wie zum Beispiel TextBox und DataGrid.

Silverlight 3

Seit Juli 2009 ist Silverlight 3 verfügbar. Erstmals konnten Silverlight Anwendungen außerhalb des Internet Browsers laufen. Seit Silverlight 3 gibt es die „Element zu Element Bindung“. Dies bedeutet, dass eine Eigenschaft eines Steuerelements an eine Eigenschaft eines anderen Steuerelements gebunden werden kann. Beispielsweise kann der Wert eines Schiebereglers an die Breite einer TextBox gebunden werden. Der Anwender erhält so die Möglichkeit die Breite der TextBox interaktiv zur Laufzeit einzustellen, ohne dass hierzu irgendwelcher Programmcode erforderlich wäre.

Silverlight 4

Die aktuelle Version Silverlight 4 ist seit April 2010 verfügbar. Mit den Silverlight 4 Tools wird in Visual Studio das Vorlageprojekt „Silverlight Business Application“ zur Verfügung gestellt, das wir im nächsten Artikel näher betrachten werden. Mit Silverlight 4 ist der Durchbruch für Entwickler von datengestützten Anwendungen geschaffen. Steuerelemente können mit einer Datenbindung versehen werden. Die Kommunikation der Silverlight Anwendung mit einem Internet Server ist einfach möglich und wird in Visual Studio durch Assistenten und Intellisense unterstützt.