Ich weiß, es gibt momentan einige Verwirrung, was XAML eigentlich ist. Don Box und Chris Anderson haben in ihrem ersten Video zu XAML auf MSDN TV vermutlich den Eindruck erweckt, dass es dazu da ist, Controls, Styles und TransformDecorators zu definieren. Das ist auch völlig richtig, das scheint die Intention gewesen zu sein. Programmiersprachen wie C# sind sehr, sehr ausschweifend. Schon kleine Dialoge füllen schnell 100 Zeilen mit Deklarationen.
Aber eigentlich ist XAML eine deklarative Programmiersprache für .NET, die ganz normal in MSIL-Code übersetzt wird. Imperative Codeblöcke können integriert werden, aber man kann auch, dank des partial-Schlüsselwortes, XAML-Code mit anderem Code mischen. (Auf die Weise könnte man auch Basic und C# mischen. Alles landet in MSIL, es ist also nicht wichtig, woher es kommt.)
Das wird besonders gut deutlich im zweiten Video von Don Box und Chris Anderson, in dem die Logik für eine Consolenapplikation in XAML und das Objektmodell in C# implementiert ist.
Vielleicht sollte man einfach klarstellen, dass z. B. das Canvas-Tag kein Teil von XAML ist, sondern eine .NET-Klasse, die man mit XAML instantiieren kann. Der Compiler muss hierfür wissen, welchen Namespace er gerade benutzt, genau wie in C#! Also nochmal in aller Deutlichkeit: xmlns in XAML entspricht using in C# oder anderen .NET-Sprachen.
Der WPF-Teil von XAML sollte wohl besser zum größten Teil in den WPF-Artikel. Dort wird noch nichtmal erwähnt, dass WPF vektorbasiert ist. Erwähnenswert ist außerdem noch das Programm Microsoft Interactive Expression Designer (kostenloser Download der Januar 06 CTP verfügbar), da es eine neue qualitative Stufe im Erstellungsprozess von GUIs darstellt. Zukünftig soll ein Designer die GUI erstellen können, während der Programmierer die Logik dazu schreibt. Expression Designer wird vermutlich ein großer Schritt in diese Richtung werden, auch wenn die Beta noch ziemlicher Schrott ist.
Sascha Baumgart