19.07.2009, 14:53 Uhr

Microsoft Silverlight 3

Ein Überblick über die wichtigsten Neuerungen der von Microsoft im Juli freigegeben Silverlight-Version 3.
Autor: Peter MonadjemiMicrosoft drückt bei Silverlight aufs Tempo. Nach Silverlight 1, das lediglich auf JavaScript basierte, wurde im Oktober 2008 mit Silverlight 2 die erste auf .NET basierende Version offiziell. Jetzt steht mit Silverlight 3 bereits der Nachfolger zur Verfügung, der wichtige Verbesserungen bei der Darstellung von HD-Video und 3D-Grafik, eine verbesserte Datenbindung und eine Reihe von Performance-Verbesserungen zu bieten hat.Silverlight ist der Name der auf dem .NET Framework basierenden Technologie für die Entwicklung von Rich Internet Applications (RIAs), die lokal im Browser ausgeführt werden. Zu mindestens in der Theorie tritt Microsoft mit Silverlight in Konkurrenz zu Adobes Flex- und Flash-Technologie, die eine ähnliche Zielrichtung verfolgt.Damit eine Silverlight-Anwendung ausführen kann, wird ein Plug-In (die Silverlight Runtime) benötigt, die aktuell für Internet Explorer, Firefox und Opera Browser unter Windows und den Safari Browser unter Mac OS verfügbar ist. Eine Implementierung für Linux gibt es auch. Sie stammt allerdings nicht von Microsoft, sondern wird unter dem Namen Moonlight von jenen Entwickler bei der Firma Novell entwickelt, die unter dem Namen Mono eine Implementierung des .NET Frameworks für Linux und andere Betriebssysteme durchgeführt haben. Silverlight und Moonlight sind zwei vollständig voneinander unabhängige Projekte, die zudem nicht "versionskompatibel" sind. Die aktuelle Moonlight-Version 1.01 dürfte funktional in etwa Silverlight 1 entsprechen, ein Moonlight 2.0 ist in Vorbereitung [1].Entwickeln für Silverlight mit Visual Studio und den Silverlight Tools 3Entwickelt werden Silverlight 3.0-Anwendungen mit Visual Studio 2008 SP1 oder Visual Web Developer und Vorlagen für C# und VB.NET, die Teil der Silverlight Tools 3 sind - diese umfassen die Silverlight Runtime und das Silverlight SDK, die auch als separate Downloads zur Verfügung stehen. Es ist wichtig zu verstehen, dass auch wenn Silverlight auf dem .NET Framework 3.5 basiert, nur ein kleiner Teil der Klassen der .NET-Klassenbibliothek in der ca. 4 MByte großen Silverlight-Runtime zusammengefasst werden.Entwickler müssen daher auf so manches verzichten, was sie vom "großen" .NET Framework gewohnt sind. Die "Presentation-API" ist bei Silverlight eine "Untermenge" der Windows Presentation Foundation 3.5 (WPF). Die Oberfläche einer Silverlight-Anwendung wird daher ebenfalls in XAML (Extensible Application Markup Language) definiert. Einen komfortablen Designer wird es aber erst mit dem kommenden Visual Studio 2010 geben (die aktuelle Beta 1 enthält diesen Designer bereits, basiert selber aber noch auf Silverlight 2). Aktuell wird die Oberfläche einer Silverlight-Anwendung daher entweder mit Expression Blend 2 bzw. der Preview von Expression Blend 3 erstellt (letztere verträgt sich aber anscheinend nicht mit den Silverlight Tools für Visual Studio) oder direkt in XAML codiert für das der Visual Studio-Editor inzwischen auch Intellisense anbietet. Die Entwicklung ist jedoch nicht an Visual Studio gekoppelt. Unter [2] gibt es ein Plug In für die Open Source-IDE Eclipse, mit der sich Silverlight 2-Anwendungen in C# entwickeln lassen. Abbildung: Die Silverlight Tools umfassen auch Vorlagen für Visual Studio Datenbankzugriff über HTTP Silverlight-Anwendungen werden vom Webserver heruntergeladen und auf dem Client typischerweise im Browser ausgeführt. Häufig sind sie Teil einer ASP.NET-Anwendung. Genauso wäre es denkbar, sie in eine PHP-Anwendung einzubetten. Die Anwendung kommuniziert mit dem Webserver über HTTP-GET, REST oder Webservices. Da Daten nur eingeschränkt lokal gehalten werden können und ADO.NET bei Silverlight nicht zur Verfügung steht, werden Datenbanken auf dem Server z.B. über die ADO.NET Data Services angesprochen, die das Abrufen und Aktualisieren von Datenbankinhalten über HTTP-Kommandos durchführen.Die zentrale Anlaufstelle für Entwickler ist die Silverlight-Homepage, die es unter [3] und [4] gleich in "zweifacher Ausfertigung" gibt, und die in beiden Varianten leider reichlich unübersichtlich wirkt. Ein deutschsprachiges Pendant scheint es nicht zu geben.Was ist neu bei Silverlight 3? Die aktuelle Version 3 enthält eine Vielzahl von Neuerungen, von denen viele aus Wünschen entstanden sind, die die Entwickler-Community an Microsoft bereits vor der Einführung von Silverlight 2 herangetragen hat. Die Tabelle am Ende des Artikels stellt die wichtigsten Neuerungen stichwortartig zusammen. Eine offizielle Aufstellung findet man unter [5] und [6]. Lesenswert ist auch der Blog-Eintrag von Microsoft-Entwicklungschef Scott Guthrie [7].Die Neuerungen bei Silverlight 3 lassen sich auf vier Schwerpunkte reduzieren: 1. Bessere Darstellung (HD-Video, 3D-Effekte, Animationen, Bitmap-Bearbeitung) 2. Bessere Datenbindung (DataForm-Control, Eingabevalidierung, Master/Detail-Darstellung) 3. Deutliche Performance-Verbesserungen (Bitmap-Caching, Hardware-Unterstützung, Binäres XML, Application Library Caching) 4. Diverse "Kleinigkeiten", wie z.B. der Umstand, dass eine Silverlight-Anwendung erkennen kann, ob eine Verbindung zum Internet besteht, oder der "Out of Brower-Modus. High Definition Video fürs WebDie sicher spektakulärste Neuerung betrifft die Darstellungsmöglichkeiten von High Definition Video im 720p bzw. 1080p-Format, die dank der Einbeziehung des Grafikkartenprozessors (GPU für Graphical Processing Unit) bezüglich der Performance deutlich verbessert wurde. Man muss sich die Beispielanwendungen, die auf der Silverlight-Site angeboten werden unbedingt einmal selber anschauen, um sich vorstellen zu können, wie das "Fernsehen der Zukunft" im Internet zu mindestens in einigen Bereichen mit Silverlight als Client aussehen dürfte. Microsoft hat in den letzten Jahren sehr viele Ressourcen in dieses Segment investiert und bietet unter dem Namen "IIS Media Services" inzwischen z.B. ein leistungsfähiges Hosting von Streaming Video auf der Basis des IIS 7.0 an (nur wenige wissen, dass Microsoft bereits seit Mitte der 90er Jahre am "Interactive TV" bastelt, bislang aber ohne sichtbare Ergebnisse - mit Silverlight 3 und kommenden Versionen könnte sich daran etwas ändern).Jetzt auch in 3DAuch für Entwickler, die nicht an ruckelfreiem HD-Video im Fullsize-Mode interessiert sind, hat die neue Version einiges zu bieten. Mit Silverlight 3 hält endlich 3D-Grafik Einzug, eine Möglichkeit, die in der WPF von Anfang an enthalten war. Über eine Technik, die Perspective 3D genannt wird, lassen sich Bitmaps räumlich darstellen, so dass sie der Anwender wie ein 3D-Objekt z.B. rotieren lassen kann. Ein Manko der bisherigen Versionen war ein Mangel an Controls. Mit Silverlight 3 kommen über 60 Controls hinzu, wobei die meisten Teil des Silverlight Toolkits sind, das einen separaten Download darstellt [8].Verbesserung bei der DatenbindungDatenbindung bedeutet, dass Daten automatisch in einem dafür vorgesehenen Control angezeigt werden, und die Datenquelle automatisch aktualisiert wird, wenn der Anwender Änderungen in dem Control vornimmt. Datenbindung war bereits bei Silverlight 2 möglich, mit der Version 3 bietet sie weitreichendere Möglichkeiten. Eine davon ist das DataForm-Control, das als eine Implementierung des Modell View View-Modell-Entwurfsmusters (MVVM) einen Datensatz automatisch so angezeigt, wie es der Beschaffenheit des Datensatzes entspricht. Dazu muss der ItemsSource-Eigenschaft des DataForm-Controls lediglich die Datenquelle (z.B. eine Collection mit Objekten eines bestimmten Typs) zugewiesen werden. Damit wird erreicht, dass für jede Property des Objekts ein passendes Eingabefeld im DataForm-Control platziert wird. Über Attribute kann die Art der Bindung für jedes Element gesteuert werden. Resultiert im Rahmen einer Eingabevalidierung für eine Property eine Ausnahme, wird diese als Validierungsfehlermeldung optisch ansprechend angezeigt. Das Silverlight Control ToolkitEin wichtiger Aspekt kann leicht übersehen werden. Das DataForm-Control ist nicht Bestandteil der Silverlight 3-Runtime, da es kurz vor der Fertigstellung in das Silverlight Toolkit ausgelagert wurde [8]. Genauso fehlen in der offiziellen Version wichtige Schnittstellen, die bei der Datenbindung eine Rolle spielen (z.B. IBindable) und die Assembly System.Componentmodell.dll, die (aus Platzgründen) ebenfalls nicht mehr dabei ist. Dies ist kann insofern für Irritationen sorgen, da viele Tutorials und vor allem Beispielvideos von Microsoft, die das Prinzip der Datenbindung erläutern, noch auf jener Vorabversion basieren, die im Rahmen der Mix09-Konferenz im Frühjahr dieses Jahres freigegeben wurde. Eine Liste aller kurzfristigen Änderungen findet man unter [9]. Entwickler sollten diese Seiten aufmerksam lesen. Und gleich danach die Korrekturen, die Anfang Juli im Blog des Silverlight SDK-Teams veröffentlicht wurden [10].Silverlight-Anewndungen laufen auch auf dem DesktopNeben einer Verbesserung der HD-Videoqualität und der Datenbindung haben sich die Entwickler um zahlreiche Kleinigkeiten gekümmert, die sich die Entwickler schon lange gewünscht hatten. Dazu gehört z.B. der "Out of Browser"-Modus, bei dem eine Anwendung außerhalb des Browsers in einem eigenen Fenster läuft (dieser Modus funktioniert natürlich auch auf einem Mac) und z.B. über das Startmenü aufgerufen werden kann. RIAs haben PotentialDer Bedarf für RIAs dürfte in den nächsten Jahren sprunghaft steigen. Das Apple iPhone hat eindrucksvoll deutlich gemacht, wie aus einer Nische in kurzer Zeit ein eigenes Marktsegment werden kann. Was mit Silverlight alles möglich ist, wird von Microsoft in der Silverlight-Gallerie eindrucksvoll zusammengestellt [3]. Aktuell liegt der Fokus noch stark auf Spielen und Demonstrationen von Teilaspekten von Silverlight. Neue Features wie das DataForm-Control und die neuen Silverlight RIA Services (die derzeit noch als Vorabversion vorliegen) werden dafür sorgen, dass der Anteil der RIA-Geschäftsanwendungen in naher Zukunft stark ansteigend wird.Links[1] http://www.go-mono.com/moonlight[2] http://www.eclipse4sl.org[3] http:// www.silverlight.net[4] http://www.microsoft.com/silverlight[5] http://www.microsoft.com/germany/net/silverlight/newfeatures.aspx[6] http://silverlight.net/getstarted/silverlight3/default.aspx[7] http://weblogs.asp.net/scottgu/archive/2009/07/10/silverlight-3-released.aspx[8] http://www.codeplex.com/Silverlight[9] http://msdn.microsoft.com/en-us/library/cc645049(VS.95).aspx[10] http://blogs.msdn.com/silverlight_sdk/archive/2009/07/01/breaking-changes-document-errata-silverlight-3.aspx Tabelle: Die wichtigsten Neuerungen bei Silverlight 3Kategorie: Video-Wiedergabe >Unterstützung der IIS Media Services, die von Microsoft seit Oktober letzten Jahres als Erweiterung des Internet Information Services (IIS)-Web Servers 7.0 angeboten werden, und die im Zusammenspiel mit einem Silverlight-Client ein Streaming von Videos im High Definition-Format (HD) ermöglichen. Der Zusatz "Smooth Streaming" bei den IIS Media Services bedeutet eine ruckelfreie HD-Wiedergabe im Fullscreen-Modus durch Einbeziehen der Hardware der Grafikkarte. Dabei passt der Server die Bandbreite des Streams der verfügbaren Bandbreite und Ressourcen des abspielenden Computers an. Ein weiteres interessantes Feature in diesem Zusammenhang ist die Möglichkeit, an verschiedene Stellen des Videos springen zu können, ohne dass eine Verzögerung durch ein Re-Buffering entsteht>Unterstützung für den weit verbreiteten H.264/AAC-Codec für High Definition-Video, wobei die CPU der Grafikkarte einbezogen wird (sofern diese eine HD-Beschleunigung bietet). Die beiden Kürzel H.264 und AAC (Advanced Audio Coding) stehen für einen modernen Video-/Audio-Standard, der hochauflösende Videos mit bis zu 720p (H.264) bzw. 1080p (bei WMV/VC-1-Codierung) ermöglicht. 720p ist eine Kurzschreibweise für einen HDTV-Modus, bei dem die Zahl 720 für die Anzahl der horizontalen Bildlaufzeilen und damit für eine Auflösung von 720 Pixeln in der Höhe steht. Das "p" steht für "Progressive Scan" (bei der Darstellung eines Bildes werden alle Bildzeilen nacheinander angezeigt). >Wiedergabe von kopiergeschützten Videos durch Silverlight Digital Rights Management (DRM). Kategorie: Darstellung >Perspektivisches 3D. Dadurch können Entwickler eine Bitmap auf ein 3D-Objekt legen und damit erreichen, dass der Anwender die Bitmap z.B. rotieren kann, ohne dass dies programmiert werden muss. Weitere "Pseudo-3D-Effekte" sind Queues und Transitions.>Pixelshader-Effekte für beliebige grafische Objekte wie ein Weichzeichner (Blur-Effekt) oder Schlagschatten. Damit lassen sich z.B. die verschiedene Zustände eines Buttons visualisieren, ohne dass der Button verschieden dargestellt werden muss. Bei einem Pixelshader-Effekt kann die Software die Pixel bearbeiten bevor sie für die gewünschte Darstellung zusammengesetzt werden. Normalerweise wird der Shader-Effekt von der Grafikkarte (GPU) vorgenommen, bei Silverlight 3 ist er (natürlich langsamer) auch per Software möglich.>Direkter Zugriff auf einzelne Pixel dank einer neuen Bitmap-API. Mit den neuen Pixel-Funktionen können Entwickler Bitmaps direkt bearbeiten und damit z.B. Effekte realisieren, wie das Entfernen der "roten Augen" bei der Fotonachbearbeitung. >Neue Animationseffekte. Neben den integrierten Effekten wie Spring und Bounce, mit deren Hilfe Animationen natürlicher gestaltet werden, können Entwickler eigene mathematische Funktionen für die Beschreibung einer Animation verwenden.>Erweitertes Deep-Zoom für ein flüssiges Hineinzoomen in ein hochauflösendes Bild.>Themes und Skinning. Bei Silverlight 3 können Entwickler ihre Anwendungen mit Themes versehen indem sie Stile verwenden, die zur Laufzeit ausgetauscht werden können. Themes/Stile können wie CSS voneinander abgeleitet werden.>Enhanced Control Skinning. Hinter dem Begriff Enhanced Control Skinning verbirgt sich die Möglichkeit Controls außerhalb von Anwendungen zu halten. Damit wird es einfacher, ein Stil für einen Controlset über verschiedene Anwendungen hinweg einzusetzen, was es leichter macht, verschiedenen Anwendungen ein einheitliches Layout zu geben.Kategorie: Performance>Bitmap-Caching führt zu einem deutlichen Performance-Gewinn bei der Darstellung von Vektorobjekten, Text und Controls.>Verbessertes Textrendering und flüssigere Textanimationen. Der Zugriff auf lokale Schriften beschleunigt die Ladezeiten einer Anwendung. Kategorie: Datenbindung >Element-to-Element-Binding. Silverlight 3 erlaubt das Binden von Eigenschaften an CLR-Objekte und andere Elementen der Benutzeroberfläche via XAML. Bei Silverlight 2 kann im Rahmen des Bindings nur das Element angegeben werden gegen das gebunden werden soll. Bei Silverlight 3 kann zusätzlich auch das Objekt angegeben werden, das das Element zur Verfügung steht, wodurch ansonsten erforderliche Programmbefehle entfallen können. Damit lassen sich ohne zusätzliche Programmierung sehr einfach Funktionen realisieren wie beispielsweise ein dynamischer Schieberegler zur Lautstärkenkontrolle eines Media Players.>Das neue DataForm-Control erlaubt eine Datenbindung, bei der Validierung, ein Paging von Datensätze, ein automatisches Generieren von Controls für das Editieren der einzelnen Felder und eine Aktualisierung von Datensätze eingebaut ist.>Neue Funktionen zur Datenvalidierung sorgen dafür, dass die Eingabevalidierung deutlich einfacher wird. Dies wirkt sich z.B. dann vorteilhaft aus, wenn die Silverlight-Anwendung das Front-End für eine ASP.NET-Webanwendung spielt.Kategorie: Sonstiges>Datenaustausch zwischen zwei Silverlight-Anwendungen in derselben Webseite. >Verbesserte Barrierefreiheit, indem Menschen mit eingeschränktem Sehvermögen durch einen Zugriff auf alle Systemfarben für sie optimalere Farben und Kontrasteinstellungen wählen können. >Suchmaschinenoptimierung (SEO). Durch serverbasierte Geschäftsobjekte in Kombination mit ASP.NET-Controls und Sitemaps lassen sich datenbankbasierte Inhalte automatisch in HTML darstellen, so dass sie von Suchmaschinen erfasst werden können.>Multi-Touch Unterstützung - Silverlight Anwendungen können unter Windows 7 Multi-Touch Eingaben verarbeiten. >Über 60 neue Controls (inkl. Quellcode), darunter ein Chart-Control, neue Layout-Container (u.a. Dock und ViewBox), eine ListBox mit Mehrfachauswahl, Dateisystemdialoge, ein DataGrid, ein TreeView, ein Control, das die Navigation über mehrere Seiten ermöglicht. Mit dabei sind neun professionelle Themes und der Sourcecode, so dass Entwickler und Designer diese anpassen können.>Dank der neuen "Out of Browser"-Funktion läuft eine Silverlight-Anwendung in einem eigenen Fenster (auch auf dem Mac) inkl. Integration ins Startmenü oder den Programme-Ordner, ohne dass der Anwender dafür eine zusätzliche Runtime herunter laden muss. Eine Silverlight-Anwendung kann außerdem erkennen, ob eine aktive Webanbindung besteht und sich entsprechend verhalten. Damit können Anwender die Silverlight-Anwendung jederzeit nutzen, unabhängig davon, ob der Rechner mit dem Internet verbunden ist. Die Sicherheitseinschränkungen für Silverlight-Anwendungen (Stichwort: Sicherheits-Sandbox) gelten auch in diesem Fall.Peter Monadiemi


Das könnte Sie auch interessieren