Ist XAML das neue HTML, Silverlight das neue AJAX?

English version: https://blogs.msdn.com/ronnies/archive/2007/10/09/is-xaml-the-new-html-silverlight-the-new-ajax.aspx

Mit der Einführung von Ajax hat HTML/DHTML die Grenzen dessen erreicht, was mit diesen alten Technologien machbar ist. Leider wird die Entwicklung aufgrund der Architektur und der Inkompatibilität der Browser zu einer kostspieligen, komplizierten und umständlichen Angelegenheit.

Deshalb brauchen wir neue Ansätze um Web-Anwendungen zu entwickeln, welche sämtliche Vorzüge des Web und des Desktop vereinen und die Nachteile vermeiden. Ich bin fest davon überzeugt, dass das Web, wie wir es heute kennen, ohne die Deployment-Probleme, die mit einer mehrstufigen Client-Architektur verbunden sind, ganz anders aussehen würde.

Zukünftige Web-Anwendungen müssen folgende Punkte erfüllen:

  • Zero-Deployment (keine Installation auf den Clients erforderlich)
  • Browser- und Plattformunabhängigkeit
  • „Write once, Test once“
  • Nutzung der Leistungsfähigkeit der Clients
  • SVG (Skalierbare Vektor Grafik)-basiert
  • Grösstmögliche Nutzen der vorhandenen Desktop-Technologien
  • Multi-tier und Service-enabled
  • Gleiche Programmiersprache, gleiche Tools, für alle Ebenen

AJAX hat frischen Wind in die Webentwicklung gebracht. Ich persönlich bin aber kein Fan davon, dass ich JavaScript auf dem Client nutzen muss, obwohl ich auf dem Server andere Technologien einsetze. Dazu kommt, dass AJAX Anwendungen sehr kompliziert werden, wenn das gewählte AJAX Framework gewisse Funktionalität nicht bietet. Auch der Zeitaufwand, der erforderlich ist, um die Anwendung browserunabhängig zu machen, ist zu gross.

Java-Applets waren sicherlich ein vielversprechender Schritt um das Web besser zu nutzen. Aufgrund der verschiedenen JVM-Implementierungen (unterschiedliche Anbieter) sind jedoch zu viele Tests notwendig. Die fehlende Markup-Sprache macht es auch entsprechend schwierig Tools zu entwickeln - speziell Designer werden toolsmässig nicht unterstützt. Wahrscheinlich war aber auch die mangelnde Verfügbarkeit von Breitbandverbindungen zu jenem Zeitpunkt ein weiterer Grund für das spärliche Interesse an dieser Web-Technologie.

Daher ist es an der Zeit, eine bessere, modernere Ansätze zur Erstellung von Web-Oberflächen und –Applikationen zu entwickeln. Vorzugsweise wird ein „Clean sheet“ verfolgt, um die Limitationen alter oder inkompatibler Technologieelemente zu umgehen.

Ist XAML die Antwort?

XAML, in seiner Umsetzung in WPF und Silverlight, bietet eine sehr leistungsfähige und einfache Möglichkeit zur Erstellung von UI. Es ermöglicht eine saubere Trennung zwischen UI und Logik-Code und erleichtert das Zusammenarbeiten zwischen Entwicklern und Designern durch die Verfügbarkeit von Tools wie Expression Blend. Die Leistungsfähigkeit dieser Plattform ermöglicht überdies eine echte Multi-Tier Architektur mit einem einzigen Programmiermodell (.NET) für alle Ebenen: vom UI, zu Middle-tier-Web-Services bis hin zu .NET Stored Procedures. Damit kann mit ein und desselben Tools Debugging auf allen Ebenen durchgeführt, die gleichen Fehlerbehandlungsmechanismen implementiert, Validierungscode über alle Ebenen hinweg genutzt werden usw.

Silverlight bietet ab Version 1.1 eine gute Basis von .NET und stellt XAML /.NET für Mac, Windows und Linux (Novell MoonLight) zur Verfügung; unterstützt werden Safari, Firefox und IE.

Damit stellt sich mir die Frage, weshalb ich zur Erstellung von UI‘s AJAX einsetzen sollte.

Betrachten wir eine klassische Anwendung: einen E‑Mail-Client.

Nehmen wir z.B. Outlook. Aus welchem Grund sollte ich eine AJAX-Version (Outlook-Web-Zugriff) und eine installierte Version erstellen, mit denen es auf der UI-Ebene nicht möglich ist, Code in beiden Versionen zu nutzen?

Mit dem neuen Ansatz kann ich eine WPF-Desktop-Version, eine WPF-XBAP-Version für das Intranet und eine Silverlight-basierte für das Web entwickeln und den Grossteil XAML- und .NET-Code in allen Versionen nutzen. Gleiches Tool, gleiche Entwicklerkenntnisse und gleiches Look and Feel. Kurz: ein wahr gewordener Traum. https://blogs.msdn.com/swiss_dpe_team/archive/2007/08/13/wpf-hands-on-lab-building-line-of-business-application-outlook-ui.aspx

Ist XAML also das Ende von HTML/AJAX?

Höchstwahrscheinlich nicht, auf jeden Fall nicht in absehbarer Zeit. Silverlight 1.1 ist noch nicht verfügbar. Ausserdem wird dafür ein Plug-in benötigt (2-4 MB). Wie bei allen Plug-ins für Browser sind für den Installationsprozess Administratorrechte notwendig. Dies ist ähnlich wie bei Flash. Es dauert eine Weile, bevor jeder Rechner, der AJAX unterstützt, auch Silverlight unterstützt. Bis dahin stellt AJAX die beste Wahl dar, um die grösstmögliche Verbreitung zu garantieren.

Ist XAML/Silverlight die einzige Möglichkeit, HTML/AJAX abzulösen?

Definitiv nein. Eine Alternative besteht in Flash mit seinem Vorteil einer sehr grossen Installationsbasis. Der Nachteil liegt allerdings darin, dass es weder über die Funktionalität verfügt, die .NET auf allen Ebenen bietet, noch die Möglichkeit gegeben ist, die gleichen Tools/Technologien auf allen Ebenen und sogar in Desktop-Anwendungen einzusetzen.

Ich selbst bin davon überzeugt, dass die Web-UI der Zukunft zu einem Grossteil auf Silverlight-/Flash basieren wird. Es ist nur eine Frage der Zeit bis wann sie den Verbreitungsgrad von HTML-Anwendungen erreichen werden.

Ich bin ausserdem der Ansicht, dass HTML und AJAX nicht kurzfristig verschwinden werden. Hätte ich allerdings die Wahl, würde ich die Erstellung einer Silverlight- oder Flash-Anwendung eindeutig einer AJAX-Anwendung vorziehen.

Mein Fazit: Ich glaube, es ist der richtige Zeitpunkt erste Applikationen mit XAML/WPF/Silverlight zu entwickeln. Die Chancen stehen gut, dass diese Technologien bei der künftigen Entwicklung von Web-/Desktop-UI‘s eine zentrale Rolle spielen werden.

Ronnie Saurenmann