Microsoft: Avalon Veröffentlicht am: 26.01.2004 11:04:40 WinFX: Die Nebel lichten sich Die sichtbarsten Änderungen an Windows Longhorn zeigen sich natürlich an dem neuen GUI (Graphical User Interface). Innerhalb von WinFX nennt sich die neue Basis für die Bildschirmrepräsentation von Inhalten Avalon und bietet eine Fülle an neuen Funktionen und Features, die den Umgang mit vielen Daten, vor allem Multimedia, aber auch die „normalen“ Office-Dokumenten, Emails, etc. deutlich vereinfachen soll. Avalon soll, zumindest nach der Meinung von Microsoft, Dokumente, Benutzeroberfläche und Multimediainhalte miteinander verbinden. Mit Avalon will Microsoft verschiedenste Probleme auf eine neue, nach eigenen Angaben innovative, Art und Weise lösen. Avalon stellt quasi ein „best of“ aus den Win32, Direct 3D und Web-APIs dar und verbindet so die Vorteile einer Webapplikation - einfache Verteilung, simple Erstellung, flexibler Textumbruch, einfaches Einbinden von Multimediainhalten und Fonts - mit der Mächtigkeit der klassischen APIs. Da der neue Stack aber „neben“ dem alten implementiert wurde, funktionieren auch die alten APIs weiter. Vorteile ergeben sich aber unter anderem daraus, dass man jetzt GPU unterstützte 3D-Beschleunigung in jeder Applikation hat und nicht mehr nur in Vollbildschirm-Programmen, die direkt auf Active X setzten. ![]() Eigenschaften Avalon basiert auf dem .NET Framework und Direct 3D, stellt aber einen komplett neu implementierten Stack dar, der sich über managed APIs auf verschiedensten Ebenen dem Programmierer öffnet. Wirft man einen Blick in die Zukunft, so erwartet Microsoft immer größere Bildschirme mit immer höheren Auflösungen. Mit einem Bitmap-basierten System stößt man dann früher oder später an die Grenzen des Machbaren - klassische Applikationen erscheinen auf diesen Displays dann als Mini-Grafiken, die nicht mehr erkennbar sind – Microsoft demonstrierte das im Hands-On-Lab im einem riesigen, hochauflösenden IBM-Display, das durch zwei Grafikkarten mit Daten gefüttert wurde. Die Entwickler von WinFX haben daraus die Konsequenzen gezogen und Avalon Vektor-basiert konzeptioniert. Damit lassen sich auch große Displays ohne Probleme mit stufenfreien Schriften und Grafiken versorgen. Als Bonus erhält man auch noch einen stufenlosen Zoom, der auch in stark vergrößert keine Treppenbildung zeigt. Da nun alle Elemente über Vektoren beschrieben werden, lassen sich die einzelnen Elemente am Bildschirm auch beliebig drehen, verzerren, spiegeln, etc., ohne dass dies für den Entwickler viel Aufwand bedeuten würde. Damit lässt sich auch die Accessibility verbessern – was aufgrund der Gesetzeslage in den USA für Microsoft sehr wichtig war – Personen mit Sehbehinderungen können sich so den Bildschirm beliebig vergrößern, damit sie etwas erkennen können – ohne das der Entwickler hierfür spezielle Vorkehrungen treffen muss. Web vs. Desktop Momentan haben Entwickler im Prinzip zwei Möglichkeiten – entweder sie entwicheln eine Web- oder eine Desktop-Applikation. Entscheiden sie sich für das Web, so ist die Verbreitung der Applikation einfach – sie wird nur auf den Server gestellt. Die Seiten werden deklarativ aufgebaut, das flexible Rendering übernimmt der Browser. So ist es recht einfach, ansprechende, flexible Anwendungen zu erstellen, die sich auch einfach verteilen lassen. Entscheidet man sich für eine Desktop-Anwendung, so hat man die Möglichkeit, diese offline zu laufen zu lassen, sie integrieren sich wesentlich besser in den Desktop, sie skalieren besser, sie sind zumeist auch schneller, da sie nicht dauernd mit dem Server kommunizieren müssen und auch die Werkzeuge für die Entwickler sind bereits wesentlich weiter ausgereift. Mit WinFX und dessen Bestandteil Avalon wachsen diese Welten nun zusammen. Layout Etwas das die Entwickler von WinFX vom Browser abgeschaut haben, sind die verschiedenen Layout-Möglichkeiten für Text. So kann dieser entweder „fixed“ sein, für Layouts, bei denen es auf die genaue Positionierung ankommt, oder sich flexibel an die Fenstergröße anpassen. Hier hat Microsoft nach eigenen Angaben viel Grundlagenforschung betrieben, um zu ermitteln, bei welchen Zeilenlängen die Lesegeschwindigkeit nachlässt, welche Zeilen- und Zeichenabstände optimal sind, usw. Daher kann sich der Text automatisch auf mehrere Spalten aufteilen, wenn das Fenster zu breit wird, um andere Elemente herumfließen, die Zeichen- und Zeilenabstände werden, je nach Größe des Fensters angepasst, usw. - ohne dass der Programmierer etwas dafür tun muss! Ein ganz wichtiges „Element“ der Avalon-Programmierung ist die „Composition“, also das Übereinanderlegen mehrerer Controls zu einem neuen. So lässt sich etwas ein Button mit einem Text, einer netten Grafik und einem Farbverlauf überlagern, um so ein Bildschirmelement zu erzeugen, das sich wie ein klassischer Button verhält, aber nicht danach aussieht. Mit Composition lassen sich aber auch noch ganz andere Sachen „anstellen“. So lässt sich über den Scrollbar einer Applikation eine Vorschau (Thumbnail) auf die nächsten Seiten anzeigen – komplett mit Text, Bildern und bewegten (!) Videos, die auch noch mit dem Mauszeiger mitwandern. Auch hier wurden einfach mehrere Controls mittels Composition verbunden – und das ganze wird natürlich via Alpha-Blending transparent auf dem Bildschirm angezeigt. Wer schon mal mit Subclassing und anderen Methoden versucht hat, derartige Features zu erzeugen wird überrascht sein, wie einfach das mit Longhorn möglich ist. Controls Zu erwarten war natürlich auch, das sich im Bereich der Controls einiges verbessert hat. Neben einem neuen Look & Feel (Aero) hat Microsoft auch eine Menge neuer und verbesserter Controls mit Longhorn herausgebracht, die natürlich alle mittels Composition erweiterbar und veränderbar sind. Eines der in meinen Augen „wichtigsten“ Control ist das neue „Contact Common Control“. Zusammen mit WinFS stellt Microsoft hier erstmals ein zentrales Control für den Zugriff auf die verschiedensten Attribute einer Person her – angefangen bei Name, Adresse, Email, bis hin zu IM-Adresse, Photo und anderen Attributen, die sich natürlich auch via XML-Schemas erweitern lassen. So gibt es nun endlich in Windows eine zentrale Ablage für Kontaktdaten für alle Applikationen, die über ein immer gleich aussehendes Control abgerufen werden können. „Immer gleich aussehend“ ist aber etwas irreführend. Dieses Control kann wie eine normale Listbox aussehen, kann aber auch ein Bild der Person mit anzeigen, oder deren Onlinestatus im Instant Messaging (anklickbar, sodass gleich eine Chat begonnen werden kann), usw. Die Möglichkeiten sind vielfältig – es wird interessant, wie die Programmierer diese neuen Fähigkeiten nutzen werden. Aber auch bei den Databinding-Control hat sich einiges getan. Diese lösen sich nun aus dem starren Grid-Layout und bieten verschiedenste Präsentationsmöglichkeiten. Ganz gemäß dem neuen Paradigma von Microsoft, dass man jetzt neue Möglichkeiten benötigt, um die Unmenge an Daten, die mittlerweile auf einen einströmen auch auf neue Arten anzuzeigen. So bieten sie nun neben den klassischen Grids und Listen auch eine Karusell-Ansicht, wie man sie von Apples Dock kennt und natürlich lassen sie sich auch durch Composition ändern, sodass sich auch Bilder beinhalten können, ... XAML XAML, die Extensible Application Markup Language, ist Microsofts neuer Ansatz das GUI für Appliaktionen zu definieren. Die einzelnen Elemente einer Appliaktion wie Fenster, Eingabefelder, DropDowns, Listboxen, etc. werden in einem XAML-File, also nichts anderem als XML, definiert. Microsoft nannte dies oftmals “Deklarative Programmierung”, wobei diese Bezeichnung, auch innerhalb Microsofts, nicht unumstritten ist. Zwischen den XAML Elementen und dem Objekt-Modell von Avalon gibt es eine 1:1 Beziehung, sodass man im Code auf die einzelnen, im XAML-File definierten Elemente als Objekte zugreifen kann, um auch Events zu reagieren, etc. Obwohl XAML-Dateien auch Code enthalten können, sieht Microsoft XAML als gute Möglichkeit, endlich eine strikte Trennung von Code und Repräsentation einzuführen und dabei gleichzeitig den Code und den Markup für die Oberfläche gleichberechtigt nebeneinander zu stellen. Wie das im Endeffekt aussehen kann, zeigte Adobe auf der Keynote der PDC. In dieser Präsentation wurde die Oberfläche eines Börsentickers in deren Videoeffekt-Werkzeug AfterEffects erzeugt und als XAML abgespeichert. Der Entwickler musste nur mehr in seinen Codefiles einige Event-Handler überschreiben und Daten via Indigo (siehe weiter hinten) aus einem Web Service lesen und schon erschienen die Daten schön aufbereitet in der gut aussehenden Appliaktion, die natürlich voll skalierbar war – selbts bei mitlaufendem Video. Aufgabenorientiert Die PDC hat deutlich gezeigt, dass sich die Entwicklung weg von den klassischen Applikationen mit ihren starren, immer gleichen Oberflächen, hin zu aufgabenorientierten Programmen bewegt. Microsoft hat bereits einige “Archetypen” für diese Programme zusammengestellt und arbeitet gerade an Richtlinien, wie diese Auszusehen haben, kann Avalon und dessen Freiheitn doch für ein neues GUI-Chaos sorgen, wie wir es schon in den Anfangszeiten des Computer haben. Fazit Auch wenn Avalon technologisch nicht eine revolutionäre Neuheit darstellt – Apple, KDE und Gnome haben vergleichbare Technologien schon länger – so hat es Microsoft aber dennoch geschafft, ein beeindruckendes “best of” Zusammenstellen, das dem Entwickler viele neue, mächtige Funktionalitäten und Möglichkeiten einräumt, während sich die Benutzer auf wesentlich “sexyere” Applikationen mit völlig neuen Oberflächen freuen dürfen. MSDN Avalon
Martin Leyrer
Gedruckt von WCM (http://www.wcm.at/contentteller.php/news_story/microsoft_avalon.html)
|