Aurora XAML Designer Schnelltest
Mobiform Software, Inc. entwickelt und vertreibt den Aurora XAML Designer für .NET 3.0 (“Aurora”) . Damit stellt Mobiform eines der wenigen umfangreichen Werkzeuge, das sich ausschließlich dem Bearbeiten von XAML und damit der Windows Presentation widmet. Dass Mobiform Ahnung von dem Thema Grafik haben, beweisen sie auch in ihrem weiteren Produkt dem SVGViewPlus .Net Control, mit dem man programmierend auf Scalable Vector Graphics zugreifen und diese darstellen kann. Anlässlich einer Anfrage für ein ziemlich interessantes Projekt habe ich mir die Version 1.02 des Designers angeschaut und einen Seitenblick auf die August 2007 Preview des Microsoft Expression Blend 2 geworfen.
Es geht los - und weg ist der Speicher
Der Aurora Designer ist eine WPF Anwendung. Er ist in .Net geschrieben und arbeitet mit der Windows Presentation Foundation als Oberfläche. Runde neun Megabyte braucht Aurora zum Download während wir 24MB beim Blend 2 liegen. Beim ersten Öffnen beginnt Aurora mit einem 16 MB Splash Screen erst einmal meine Rechenzeit zu strapazieren, dieser Splash taucht auch jedes Mal beim Aufruf vom "About" auf und rennt völlig unnötig in einem eigenen Prozess. Während der Laufzeit geben sich die Anwendungen Blend und Aurora nicht viel, sie sind beide Speicherfresser und von dem Freigeben von Speicher scheint zumindest Aurora noch nichts gehört zu haben. Es ist eine Illusion anzunehmen, dass C# schon selber dafür sorgt, dass alles, was WPF erzeugt, auch sich selber wieder entsorgt - ein bisschen mitdenken muss man da schon.

Usability
Der Aurora Designer arbeitet mit Tabs in Panels, die man munter hin- und herschieben, verschieben und neu positionieren, kombinieren und justieren kann. Das ist grundsätzlich ein nettes Feature, aber völlig unproduktiv. Im Grunde ist es nicht hilfreich, da es nur dazu führt, dass jeder Arbeitsplatz anders aussieht und sich Kollegen nur bedingt gegenseitig helfen können ("Wo ist denn bei dir die Toolbox?", "Na, oben links unter den Properties!"). Auch ist die Steuerung der Panels alles andere als einfach. Die Aufteilung der Panel, in denen sich Tabs befinden, entspricht dem Üblichen Look&Feel, das man von Visual Studio schon kennt.
Das Zeichnen erfolgt durch Auswahl eines Werkzeuges und dem einfachen Klick auf der Oberfläche mit dem Werkzeug. Zuweisen von Eigenschaften oder Resourcen erfolgen per Drag&Drop. Insgesamt ist die Oberfläche etwas gewöhnungsbedürftig. So muss man das Element mit einem Doppelklick auswählen, das man als nächstes "Base Element" verwenden will. Jenes definiert, dass alle neu gezeichneten Objekte als dessen Kind angesehen werden.
Nett ist der Kommandozeilen Editor, der mit einfachen Kommandos die selektieren Objekte oder benannte Objekte bearbeitet. Zwar kann man das alles auch per Maus, aber so kann man sich recht schnell helfen. Mit "AlignBottom all" schickt man beispielsweise alle Objekte einer Maske nach unten.
Insgesamt ist die Bearbeitung von XAML, insbesondere diejenige rein grafischer Elemente, in dem Aurora Designer recht gut gelöst. Nach kurzer Eingewöhnungsphase, die man in jedem dieser Werkzeuge benötigt, kann man schnell kleine Masken erstellen und mit Styles und Resourcen arbeiten.
Geschwindigkeit und Stabilität
Mein Testrechner ist ein 3GHz DualCore mit 2GB Speicher und damit liegt er im guten Mittelfeld eines Arbeitsrechners für grafische Arbeit. Der Aurora Designer zeichnete sich bei der Erstellung und Bearbeitung nicht durch überragende Geschwindigkeit aus. Er ist eindeutig langsamer als Expression Blend, aber nicht so störend, dass es nervt. Interessant ist, dass dies früher umgekehrt war. So hatte die vorerst etwas einfach gestrickte Oberfläche des Designers eindeutige Geschwindigkeitsvorteile gegenüber den ersten Blend Versionen (hier finden sich noch Screenshots dazu).
Störend empfand ich die Abstürze. Diese waren bei größeren und komplexeren Dateien aber vor allen bei Dateien mit (theoretisch) fehlerhaften XAML der Fall. Während Expression mir 21 Fehler auflistete, weshalb jetzt das XAML nicht anzeigbar sei, verschwand der Aurora Designer im Abgrund. Bei der normalen Bearbeitung der Beispiele und von kleineren Masken mit wenig Komplexität hatte ich hingegen nur einen Absturz in einem Test von ca. 6 Stunden.
XAML != XAML
Es mag zwar ganz nett sein, die fertigen Samples zu öffnen, aber mir liegt daran, dass man die Projekte bearbeiten kann, die man mit Visual Studio, Interactive Designer (ja richtig gelesen) oder Expression Blend erstellt hat. Also habe ich eine Vielzahl meiner Projekte getestet und die Bilanz fällt wirklich schlecht für Aurora aus. Bis auf wirklich absolut simples und einfaches XAML erhalte ich regelmäßig die Fehlermeldung: "Aurora cannot read this file or its format is currently not supported". Das ist recht schwach und resultiert meiner Vermutung daher, dass der verwendete XamlReader eine Exception wirft und dementsprechend scheitert Aurora. Hier haben die Programmierer ihre Hausaufgaben nicht gemacht. Hätten sie zuerst das XML untersucht, die Pfade und die Strukturen sauber aufgeräumt, dann das XML geparst, um es daraufhin sauber und praktisch dem XamlReader zu servieren, bekämen wir zumindest aussagekräftige Fehlermeldungen. So aber ist es einfach unbrauchbar.
Erweiterbarkeit
Mit dem Programm erhält man den User Guide und eine Programmers Reference. Der Aurora XAML Designer hat die schmackhafte Eigenschaft, erweiterbar zu sein und kommt mit einer verhältnismäßig ausführlichen Dokumentation (Aurora XAML Designer Programmers Reference) in Winword und einer Online Doku zur Aurora API. Die API erscheint auf den ersten Blick umfangreich und völlig ausreichend, um den Editor in ein eigenes Projekt einzubinden oder zu erweitern. Die Qualität der Dokumentation ist besser als der Durchschnitt zu API Beschreibungen und das Dokument zur Programmers Reference hat zwar nur 24 Seiten (mit Deckblatt), die reichen jedoch aus, um einen Autodidakten mit Forscherdrang in die richtige Richtung zu schubsen.
Für Programmierer ist das als Aurora Authoring Engine bezeichnete DesignerPanel der Einstieg. Es handelt sich dabei um eine vom WPF DockPanel abgeleitete Klasse, die das IAuroraDesigner Interface implementiert und sich in der zentralen AuroraDesigner.dll befindet. Dieses Panel kann man in eine eigene WPF oder Windows Forms (hosting WPF) Anwendung integrieren. Allerdings hat man auch dann erst einmal nichts anderes als den Aurora Designer in einer Anwendung. Um diesen dann zu manipulieren, sind eine Vielzahl von Arbeiten notwendig.
Den Aurora Designer kann man über ein PlugIn Konzept erweitern. Durch das so genannte Aurora Object Model erhält auch der PlugIn Programmierer Einfluss auf die UI (wie Toolbars, Tabs, Property Panel), um dort seine Erweiterungen zu platzieren.
Die Einbindung der Aurora Authoring Engine macht in bestimmten Fällen durchaus Sinn. Der Aurora Designer ist vom Konzept her ein 100% grafisches Werkzeug. Für die Erweitung eines Grafikprogramms um XAML Fähigkeiten ist der Einsatz denkbar. Typische Anwendungsfälle wären Editoren für Web-Präsentationen oder spezialisierte Oberflächen für kleinere Anwendungen (Mini-Smart-Clients im Werbebereich). Hier würde man Standard Styles setzen, ein paar der Funktionalitäten abklemmen, eine spezialisierte Bibliothek mitliefern und fertig wäre ein Editor, der entsprechend dem Corporate Design Werbeanwendungen erstellt. Ich könnte mir vorstellen, dass ich in wenigen Wochen eine solchen spezialisierten Editor mit der Aurora Engine erstellen könnte.
Will man einen Anwendungseditor erschaffen, in dem Power User ihre Anwendung customizen oder wie in einem Formulareditor selber erstellen, so ist der Aufwand recht hoch. Zwar lässt sich die zentrale Engine für das Selektieren und Positionieren verwenden und Fachkomponenten wären als Plugin und Toolbox-Bestandteile erstellbar, doch ob die Einsparung höher ist als der Bearbeitungsaufwand sollte recht genau evaluiert werden. Mobiform scheint das Thema Embedding als zentrales Feature zu fördern und hat dafür Support und Lizenzideen, die man per Mail anfragen muss aber auch kann.
Fazit
Der Aurora Designer ist in der aktuellen Form lediglich dazu geeignet, ein paar XAML Dateien mit grafischen Design zu versehen oder kleine Cliparts zu Masken zusammen zu stellen. Die Langsamkeit des Editors, die Inkompatibilität zu in Blend und Visual Studio erstellten komplexen Masken und schlussendlich die Instabilität sprechen absolut gegen die Verwendung des Werkzeugs aus professioneller Sicht.