Neue WinFX Anwendungen sollen mit Hilfe von deklarativen Programmiersprachen erstellt werden. Für die grafische Benutzeroberfläche steht dafür die deklarative XAML bereit, die mit Hilfe von DirectX fest mit der Hardware verbunden ist und damit eine effiziente und geschwindigkeitsoptimierte Lösung darstellt. Aufgrund von Restriktionen des XML Standards wird Programmlogik und Oberfläche gezielt getrennt. XAML ist am ehesten mit ASP.NET zu vergleichen, wo mit XHTML und ASP-Syntax Userinterface und Code voneinander getrennt sind. Darüber hinaus besitzt es eine Ähnlichkeit zu SVG durch seine vektororientierte Ausrichtung, Vergleiche mit Macromedia Flash sind durch aus angebracht.
Von vielen Experten wird die forcierte Kombination von XAML, Windows Presentation Foundation und .NET als Killerkombination angesehen: Die Möglichkeit zentral zu entwickeln, zentral zu verteilen und sicher jeden Inhalt im Webbrowser bzw. Betriebssystem anzuzeigen erweitern das Verständnis unseres bisherigen Software Alltages. Dass dabei Microsoft aus den Fehlern von Java lernt, erhöht die Gefahr für Open Source Projekte wie das Konkurrenzprodukt XUL.
Sehr trivial zusammengefasst wären XAML-Applikationen ein XML-basiertes "Microsoft Java", die nicht vollständig downgeloadet sein müssen um zu starten und die anstatt von einer Java Laufzeitumgebung vom Betriebssystem nativ ausgeführt werden können.
Jede XAML-Datei besitzt folgende hierarchische Gliederung:
<Canvas
xmlns="http://schemas.microsoft.com/winfx/avalon/2005"
xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005">
...
</Canvas>
<x:Code>
leitet den entsprechenden Bereich ein. Damit der Parser nun die entsprechenden Zeilen nicht auch noch interpretiert, muss er unbedingt in <CDATA[...]]>
eingeschlossen sein (Beispiel aus msdn):
<Canvas>
<Button Name="button1" Click="Clicked">Click Me!</Button>
<x:Code<>![CDATA
void Clicked(object sender, RoutedEventArgs e)
{
button1.Content = "Hello World";
}
]]></x:Code>
</Canvas>
In XAML ist es möglich die Oberfläche sehr einfach an individuelle Bedürfnisse anzupassen. Das fängt bei den Farben der einzelnen Buttons an und geht weiter bis zu den individuellen Formen von einzelnen Bildschirmelementen. Dazu kann man bestehende Schemas verwenden und sie mit geringem Aufwand modifizieren.
<Style def:Name="MyStyle">
<Button Background="Red" FontSize="24"/>
</Style>
Beim Erstellen eines neuen Buttons verweist man dann nur noch auf seinen selbst erstellten Style:
<Button Style="{MyStyle}">Styled</Button>
<?Mapping XmlNamespace="animC" ClrNamespace="MSAvalon.Windows.Media.Animation"
Assembly="PresentationCore" ?>
<?Mapping XmlNamespace="animF" ClrNamespace="MSAvalon.Windows.Media.Animation"
Assembly="PresentationFramework" ?>
XAML bietet mehrere Features, die es ermöglichen, Dokumente besser zu betrachten, navigieren und paginieren. Dazu enthält XAML mehrere Kontrolleisten, die bei Bedarf aktiviert werden können. Dazu gehört eine Seitenzahlanzeige, Vor- und Zurückbuttons, etc. die der PageViewer anbietet.
Darüber hinaus kann man mit dem Document Layout Service Texte mit einfachen Tags versehen, um jederzeit auf jedem Bildschirm ein angemessenes und leicht zu lesendes Layout zu installieren.
Mit XAML scheint Microsoft ein großer Wurf zu gelingen. Die Möglichkeit einfach und bequem kleinere Desktopanwendungen zu schreiben, die zudem komfortabel übertragen werden können, sucht in der Softwarewelt ihres gleichen. Das schon vorhandene Open-Source Konkurrenzprodukt XUL krankt an der Uneinigkeit der beiden Entwicklergruppen der Mozilla Foundation und dem Gnome Projekt über das gemeinsame Ziel. Obwohl XAML aufgrund der Bindung an die Windows Presentation Foundation und .NET eine reine Windows Ausrichtung bekommen wird, dürfte es sich im Desktopbereich schnell durchsetzen.
Über mögliche Sicherheitsprobleme durch die Integration einer weiteren, mächtigen Programmiersprache in das Betriebssystem, wie schon bei ActiveX in dem ins Betriebssystems integrierten Internet Explorers wurde noch nicht diskutiert. Mit dem Erscheinen von Windows Vista wird der Alltag diese Frage beantworten. Hoffen wir, dass Microsoft aus den Fehlern der Vergangenheit gelernt hat und XAML keine zu weit reichenden Rechte gibt.
1035 Wörter