Microsoft fordert Adobe heraus

AIR versus Silverlight

08.04.2011 von Diego Wyllie
Rich-Internet-Applications wie sie mit "Adobe AIR” und "Microsoft Silverlight” erstellt werden können, haben den Browser verlassen und sind jetzt überall verfügbar - auch dann, wenn man gar nicht online ist.
AIR versus Silverlight

Web oder Desktop? Online oder Offline? Windows, Mac oder Linux? Vor solchen Entscheidungen steht früher oder später jeder Softwarehersteller. Wollte man vor nicht allzu langer Zeit verschiedene Plattformen unterstützen, waren Anbieter in der Regel dazu gezwungen, unterschiedliche Client-Anwendungen zu implementieren: Eine für den Browser, eine für Windows, eine weitere für den Mac etc. Mit Hilfe der browser- und mehr oder weniger plattformübergreifenden Lösungen Adobe AIR und Microsoft Silverlight lassen sich solche Grenzen heute leichter überwunden. Das Zauberwort heißt Rich-Internet-Applications, kurz RIAs.

Der Begriff entstand ursprünglich als Gegenkonzept zu statischen Web-Seiten, wurde eigentlich nie eindeutig definiert, aber avancierte schnell zum Buzzword. Am Anfang zeichneten sich RIAs dadurch aus, dass sie dem Anwender vielfältige Interaktionsmöglichkeiten und eine reichhaltige Benutzeroberfläche im Browser angeboten haben, die bis dahin nur vom Desktop bekannt waren. So ähnelte das Look and Feel der ersten RIAs eher klassischen Desktop-Anwendungen als Web-Applikationen. Funktionen wie Drag and Drop, Kontextmenüs oder Rückgängigmachen standen plötzlich auch im Browser zur Verfügung. Multimedia-Content konnte in bis dahin ungewohnter Qualität über das Netz wiedergegeben werden.

Im RIA-Markt hat Adobe mit seiner Flash-Plattform zwar die Nase vorn. Doch Microsoft lässt nicht locker und veröffentlicht jedes Jahr ein neues Silverlight-Release, um den Vorsprung von Adobe aufzuholen.

Seitdem haben sich RIAs kontinuierlich weiterentwickelt und die Grenzen zwischen Online und Offline immer weiter geöffnet. Die Zeiten als Web-Anwendungen von einer aktiven Internet-Verbindung abhängig waren und auf lokale Systemressourcen nicht zugreifen konnten sind heute dank der "Out-of-Browser”-Funktionen, die sowohl AIR als auch Silverlight bieten, vorbei. In Form von einfachen Widgets und Gadgets, aber auch komplexeren Client-Server-Applikationen lassen sich moderne RIAs auf bequeme Weise auf dem eigenen Rechner installieren. Damit erhalten sie zum einen uneingeschränkten Zugriff auf lokale Systemressourcen. Zum anderen wird eine aktive Online-Verbindung nicht mehr zwingend erforderlich, um die Applikation nutzen zu können, da sie nativ auf dem Rechner des Anwenders ausgeführt wird. Sämtliche Anwendungsressourcen lassen sich lokal ablegen und gegebenenfalls später mit einem Server synchronisieren, sobald man wieder online ist.

Adobe gibt den Takt vor

Adobe Air

Vorangetrieben hat diese Entwicklung in erster Linie Adobe. Der Multimedia-Riese war mit seiner erfolgreichen Flash-Technik Wegbereiter für das interaktive Internet. Aus dem Flash-Player ist mittlerweile eine mächtige RIA-Plattform entstanden, die auf dem Markt nach wie vor den Takt vorgibt. Oracle versucht zwar, mit "JavaFX” Entwickler auf eine Java-basierende RIA-Plattform zu locken, bislang aber ohne Erfolg. Generell konnte sich Java auf dem Desktop nie so richtig durchsetzten und JavaFX insbesondere hat den Vorsprung von Adobe bis dato nicht aufholen können. Vielversprechende Lösungen aus der Open-Source-Community wie etwa "Open Lazlo” ergeht es ähnlich. Einzige Ausnahme ist Microsoft: Mit Silverlight bieten die Redmonder eine umfangreiche RIA-Plattform an, die das Potenzial hat, Adobes führende Marktposition zu kippen.

Die Herausforderung ist groß: Zum einen zählt der Flash-Player zur Grundausstattung jedes Browsers - laut Adobe sollen rund 98 Prozent der Internet-Anwender weltweit das Plug-in installiert haben. Zum anderen hat die Technik jahrelang das multimediale Web allein beherrscht. Ging es um Audio- und Video-Streaming, Online-Spiele, interaktive Präsentationen oder hochwertige Animationen, verzichtete kaum eine Website auf Flash.

Die Vorzeichen haben sich geändert, spätestens seit Apple Flash den Kampf angesagt und die Adobe-Technik von iPhones, iPods und iPads ferngehalten hat. Auch die Tatsache, dass der neue HTML5-Standard mit seiner nativen Unterstützung moderner Audio- und Video-Formate den Weg in alle wichtigen Browser gefunden hat, kann sich negativ auf Flash auswirken. Dennoch ist Flash im heutigen Web nach wie vor omnipräsent - und auf gutem Weg, auch den Desktop zu erobern.

AIR und seine Komponenten

TweetDeck ist eine der weltweit populärsten AIR-Applikationen auf dem heutigen Software-Markt.

Mit AIR (Adobe Integrated Runtime) hat Adobe Anfang 2008 eine auf Flash basierende Laufzeittechnik vorgestellt, die mit der Einführung der Out-of-Browser-Funktionalität eine neue Ära im RIA-Bereich eingeläutet hat. Vergleichbar mit der Java Virtual Machine handelt es sich hier um eine plattformunabhängige Laufzeitumgebung, die lokal auf dem Rechner des Anwenders installiert wird und AIR-Applikationen nativ ausführt. Sie beinhaltet die quelloffene WebKit-Engine (die auch die Browser Safari und Chrome auf Desktop-PCs und Smartphones verwenden) und die Flash-Engine. Damit erlaubt sie die Erstellung von RIAs sowohl auf Basis moderner Web-Techniken wie Html5, CSS3 und JavaScript als auch mit Flash, der Programmiersprache ActionScript 3.0 und mit dem quelloffenen Framework "Adobe Flex”.

Neben den kommerziellen Produkten von Adobe, unter anderem "Flash Professional CS5” oder "Flash Builder”, stehen Entwicklern die AIR- und Flex-SDKs kostenlos zur Verfügung. Diese können sie einsetzen, wenn sie einen Text-Editor oder eine andere Entwicklungsumgebung bevorzugen. Was mit AIR auf dem Desktop möglich ist, zeigt ein schnell wachsender Applikations-Markt: Von einfachen Widgets, die völlig unabhängig vom Web sind, über hilfreiche Tools wie die Grafiksoftware "Balsamic Mockups”; bis hin zu komplexeren Client-Server-Anwendungen wie der populäre Twitter-Client "TweetDeck”.

Neben einem breiten Funktionsspektrum und professionellen Multi-Screen-Features stellt die angestrebte Plattformunabhängigkeit von AIR einen aus Entwicklersicht Hauptvorteil dar. Programmcode nur einmal zu schreiben und auf mehreren Plattformen ausrollen zu können, spart viel Zeit und Geld. Gleichzeitig wird dadurch die Weiterentwicklung der Software beschleunigt, da sich Entwickler auf Verbesserungen konzentrieren können, anstatt mehrere Versionen entwickeln und verwalten zu müssen. Mit seiner nativen Unterstützung für alle wichtigen Betriebssysteme, viele Smartphones und Tablet-Computer sowie für einige Digital Home Devices ist AIR wesentlich plattformunabhängiger als Silverlight. Genau genommen unterstützt die Lösung aus Redmond nur Windows und den Mac sowie Windows Phone 7 und Symbian im Mobile-Bereich. Die Kompatibilität mit Linux soll mit dem von Novell verantworteten Projekt "Moonlight” sichergestellt werden.

Mobile Plattformunabhängigkeit bleibt jedoch auch für AIR Zukunftsmusik, solange die Runtime auf Apples erfolgreichen iOS-Geräten nicht verfügbar ist. Mit "Packager for iPhone” bietet Adobe zwar ein Tool an, das AIR-Anwendungen in native iOS-Applikationen übersetzen kann. Viele zentrale Features des aktuellen iPhone-4-Modells wie Multitasking oder das Retina-Display werden allerdings nicht unterstützt. Dass auf diesem Weg übersetzte Apps auch im App Store zugelassen werden, kann Adobe ohnehin nicht garantieren.

Darüber hinaus ist Apple nicht der einzige Big Player, der auf AIR verzichtet. Auch Nokia, laut IDC-Zahlen mit 28 Prozent Marktanteil weiterhin führender Anbieter im Smartphone-Segment, liefert seine Geräte ohne AIR-Unterstützung aus. Auch die Tatsache, dass sich das finnische Unternehmen mit Microsoft verbündet hat, künftig also auf die Plattform Windows Phone 7 und damit auf Silverlight setzen wird, deutet darauf hin, dass im RIA-Markt eine wirkliche mobile Plattformunabhängigkeit noch nicht abzusehen ist.

Silverlight holt auf

Microsoft Silverlight.

Für Microsoft stellt der strategische Verbund mit Nokia eine Chance dar, die eigene RIA-Lösung besser zu positionieren. Schließlich hat Silverlight keinen leichten Start gehabt und hinkt Adobe nach wie vor hinterher. Als die erste Version des Browser-Plug-ins als direkte Konkurrenz zum Flash-Player im Jahr 2007 veröffentlicht wurde, war dieser bereits seit Jahren die unangefochtene Nummer Eins im interaktiven Web. Mit der jährlichen Veröffentlichung neuer Versionen und damit neuer wichtiger Features holt Microsoft jedoch auf.

So gelang es dem Softwareriesen im Bereich Business-Applikationen, namhafte Hersteller für den Einsatz von Silverlight zu überzeugen: SAP verwendet die Technik in seiner mittelständischen SaaS-Lösung "Business By Design” und der deutsche CRM-Anbieter CAS Software AG in seiner Kunden-Management-Anwendung "CAS Pia”, um nur zwei Beispiele zu nennen. Vor allem aber populäre Anwendungen wie das Social-Tool "Seesmic”, das von hunderttausenden Anwendern weltweit genutzt wird und Desktop- sowie Windows-Phone-Clients auf Basis von Silverlight bietet, sorgen für die stetige Verbreitung der Redmonder Technik.

Silverlight und seine Komponenten

Das populäre Social-Tool Seesmic zeigt eindrucksvoll, wie moderne Silverlight-Anwendungen aussehen können.

Silverlight stellt eine Browser- und plattformübergreifende Implementierung des .NET-Frameworks dar und wendet sich somit in erster Linie an Entwickler, die mit der Implementierung von Web-Anwendungen auf Basis von Microsoft-Techniken und -Tools vertraut sind. Das .NET-Framework für Silverlight ist eine Teilmenge des .NET-Frameworks und bietet genau die Features an, die Entwickler für die Implementierung moderner Rich-Internet-Applications benötigen. Dazu zählen unter anderem Features wie "Linq to XML”, das die Integration und die Arbeit mit Daten aus unterschiedlichen Quellen erleichtern soll. Hinzu kommt eine Basisklassenbibliothek, die wesentliche Programmierfunktionen zur Verfügung stellt, sowie die "Windows Communication Foundation” (WCF), die Funktionen für den Zugriff auf Remote-Dienste und -Daten via HTTP, Soap oder REST anbietet. Zudem unterstützt die integrierte "Dynamic Language Runtime” eine dynamische Kompilierung und Ausführung von Skriptsprachen wie JavaScript oder "IronPython”. Somit können Windows-Entwickler ihr bestehendes Know-How auch für Web-Applikationen einsetzen, zumal Silverlight auf denselben Prinzipien basiert wie andere, bekannte .NET-Techniken.

Silverlight-Entwickler können bei ihrer Arbeit auch auf vertraute Tools zurückgreifen. So bieten die Entwicklungsumgebungen "Visual Studio 2010” und "Visual Web Developer 2010 Express” einen schnellen Einstieg in die Entwicklung von RIA-Anwendungen. Durch die Installation des Add-On "Silverlight 4 Tools for Visual Studio 2010” erhalten Programmierer alle nötigen Komponenten, um Silverlight-Anwendungen effizient implementieren zu können. Dazu zählen im Wesentlichen die "Silverlight 4 Developer Runtime”, die anders als die Laufzeitumgebung für Endanwender mit Debugging-Features ausgestattet ist, und das Silverlight-SDK, das alle erforderlichen Client- und Server-seitigen Bibliotheken enthält. Wer auf Basis von Silverlight mobile Apps für Windows Phone 7 implementieren möchte, dem steht mit "Silverlight for Windows Phone” ebenfalls ein entsprechendes Tool zur Verfügung.

Trennung von Code und Design

Da es bei RIAs vor allem um beeindruckende Applikationsoberflächen, effiziente Datenvisualisierungen und reichhaltige Interaktionsmöglichkeiten geht, bietet Microsoft mit der "Microsoft-Expression”-Suite professionelle Designer-Werkzeuge an, die das Entwerfen, Erstellen und Testen grafischer Benutzeroberflächen für beliebig komplexe RIAs vereinfachen sollen. Hier setzt man auf ein bewährtes Programmiermodell, das von der Firma NeXTStep, die Steve Jobs in den 90er Jahren gegründet hat, erfunden wurde und heute auch die Grundlage für Apples Cocoa- und Adobes Flex-Framework bildet.

Dabei findet eine strikte Trennung vom Code und Design statt. Designer können die ansprechenden Benutzeroberflächen, durch die sich Silverlight- und AIR-Anwendungen in gleichem Maß auszeichnen, bequem mithilfe von grafischen Gestaltungs-Tools erstellen. Steuer- und Bedienelemente lassen sich einfach per Drag and Drop in die Anwendungsoberflächen hinzufügen und pixelgenau positionieren. Die Eigenschaften der UI-Komponenten sind ebenfalls leicht editierbar, ohne Code schreiben zu müssen. Zudem können Animationen und Objekt-Transformationen (Skalieren, Rotieren, etc.) visuell erstellt und Multimedia-Dateien wie Audio und Video nahtlos integriert werden. Unter Verwendung einer deklarativen, auf XML basierenden Sprache werden das erstellte Layout und das gewünschte Verhalten der Benutzeroberflächen definiert. Bei Silverlight heißt diese Beschreibungssprache Xaml (Extensible Application Markup Language), bei Flex nennt sie sich Mxml. Beide Konzepte sollen dazu führen, dass sich die Zusammenarbeit zwischen Designern und Entwicklern verbessert und effizientere Arbeitsprozesse möglich werden. (ue)