Build 2017: XAML Standard für Windows, Android und iOS

Mit dem XAML Standard will Microsoft dem Wildwuchs bei der Oberflächenbeschreibungssprache gegensteuern und sie als HTML-Alternative für die Cross-Platform-Entwicklung für Windows, iOS und Android stärken.

In Pocket speichern vorlesen Druckansicht 9 Kommentare lesen
Build 2017: XAML für Windows, Android und iOS gegen den HTML-Trend
Lesezeit: 4 Min.
Von
  • Dr. Holger Schwichtenberg

Microsoft hat auf der Entwicklerkonferenz Build in Seattle angekündigt, die verschiedenen Dialekte seiner Oberflächenbeschreibungssprache eXtensible Application Markup Language (XAML) zu vereinheitlichen. Analog zu der .NET-Standard-Definition für die nichtvisuellen .NET-Basisklassen soll der neue XAML Standard eine einheitliche Spezifikation liefern, an die sich die XAML-Implementierungen halten müssen, sodass Entwickler Benutzeroberflächendefinitionen zwischen verschiedenen Plattformen austauschen können.

XAML, das Microsoft einst als Ersatz für HTML andachte, ist erstmals in .NET Framework 3.0 im Rahmen der Windows Presentation Foundation (WPF) für die Erstellung von Windows-Desktop-Anwendungen ausgeliefert worden. Später nutzte Microsoft es in abgewandelter Form in Silverlight als Webbrowser-Plug-in und Silverlight für Windows Phone sowie den in Windows 8 eingeführten Modern Windows Apps (heute Teil der Windows Universal Platform in Windows 10).

Nachdem auch der damals noch eigenständige Hersteller Xamarin eine nichtkompatible XAML-Implementierung unter dem Namen Xamarin Forms für die Entwicklung auf iOS, Android und Windows Phone veröffentlichte, gibt es inzwischen fünf Dialekte von XAML. Die gravierenden Inkompatibilitäten entstehen nicht nur durch verschiedene Namensräume, sondern auch durch unterschiedliche Steuerelemente beziehungsweise deren Eigenschaften sowie anders implementierte Grundmechanismen im Bereich der Gestaltung und Datenbindung.

.NET-Entwickler leiden heutzutage unter diesem Wildwuchs bei XAML, weil sie Oberflächen, die sie für Windows entwickelt haben, nicht ohne wesentliche Veränderungen auf andere Plattformen übernehmen können. Für Cross-Plattform-Entwicklung mit XAML müssen sie in der Regel mehrere Oberflächenbeschreibungen parallel pflegen. Damit ist XAML deutlich im Nachteil gegenüber HTML, das sich nicht nur im Web, sondern zunehmend auch als Cross-Plattform-UI-Sprache durchsetzt.

Microsoft will der zunehmenden Abkehr von XAML nun mit dem XAML Standard entgegensteuern. Unklar bleibt, welchen Umfang die erste Version des Standards haben wird. Auf der GitHub-Projektseite gibt es bisher nur einen rudimentären Entwurf für die Steuerelemente Page, UserControl, StackPanel, Grid, Button, TextBlock, TextBox und ComboBox. Das ist jedoch nur ein Bruchteil der heute verfügbaren XAML-Steuerelemente. Auch legt der Entwurf nur wenige Eigenschaften dieser Steuerelemente fest.

Laut Microsoft-Architekt Abolade Gbadegesin soll die Version 1.0 des Standards noch 2017 erscheinen, wobei sich die Aussage wohl auf die Spezifikation bezieht. Bis zur Umsetzung des Standards wird noch mehr Zeit vergehen. Microsoft benennt auf der Startseite des Projekts zunächst nur Xamarin Forms für iOS und Android sowie Windows 10 UWP-XAML als Zielframeworks. In den FAQ wird erwähnt, dass am Ende der Reise auch zumindest eine teilweise Austauschbarkeit mit WPF-Oberflächen stehen könnte. Linux und macOS sind in Microsofts Schaubild nicht zu sehen.

Mit dem XAML-Standard will Microsoft den Code Reuse bei Cross-Platform-.NET-Anwendungen steigern.

(Bild: Microsoft)

Im Rahmen der Build-Konferenz hat Microsoft auch bekannt gegeben, dass noch im Laufe des Jahres 2017 im Rahmen des Windows-10-Herbstupdates neben .NET Core 2.0 auch die Windows 10 Universal Plattform den .NET Standard 2.0 implementieren wird. Damit existieren dann dort erstmals Klassen zum Beispiel für .NET Reflection sowie ADO.NET zum direkten Datenbankzugriff. Bisher konnte eine Windows Universal App nur lokale Datenbanken wie SQLite ansprechen. Datenbanken auf anderen Systemen und selbst in anderen Prozessen auf dem gleichen Rechner kann eine solche App bisher nur über Webservices ansprechen.

Auch in anderen Bereichen sind UWPs heutzutage stark eingeschränkt oder müssen auf Klassen der Windows Runtime Library (WinRT) ausweichen, obwohl es für die gleiche Aufgabe auch .NET-Klassen gäbe. Es war bei der Entwicklung von Windows 8 eine Entscheidung im Windows-Entwicklungsteam von Steven Sinofsky, .NET in der Windows-App-Welt klein zu halten. Diese Entscheidung wird nun mit dem .NET Standard 2.0 grundsätzlich revidiert. (rme)