Avalon
Eintrag zuletzt aktualisiert am: 05.09.2005
Neuer Name:
Windows Presentation Foundation
Kurzinfo
Avalon ist der Codename für die neue Benutzerschnittstellentechnologie in Windows
Longhorn, die konzeptionell an
DHTML und
ASP.NET angelehnt ist. Basis von Avalon ist die XML Application Markup Language (XAML).
Langtext
Avalon ist der Codename für eine völlig neue Architektur zur Entwicklung von Windows-Benutzeroberflächen. Microsoft überträgt das Konzept von
ASP.NET-Webanwendungen auf Windows: Das Layout wird durch eine tagbasierte Sprache beschrieben (Listing 1), während das Verhalten in davon separaten Codeblöcken oder -dateien (Code-Behind) definiert ist (Listing 2). Die tagbasierte Sprache ist – natürlich – eine XML-Sprache, die
Microsoft XML Application Markup Language (XAML) nennt.
Wie bei den bisherigen Windows-Anwendungen besteht ein Fenster aus einer Menge von
Steuerelementen. Neu für die Windows-Programmierung ist, dass wie in
ASP.NET die
Steuerelemente durch XML-Elemente definiert und hinsichtlich ihrer Eigenschaften beschrieben werden. Ebenfalls aus
ASP.NET übernommen wurde das Konzept, dass zu jedem XML-Elementtyp genau eine .NET-Klasse gehört. Tagbasierte Windows-Anwendungen waren bisher nur durch so genannte
HTA (HTML Applications) möglich, die jedoch kaum Verwendung fanden.
Longhorn übersetzt beim ersten Start einer Avalon-Anwendung das XAML in .NET-Quellcode, kompiliert den Quellcode und kombiniert die aus den Layout-Informationen generierte
Assembly über Referenzen mit der
Assembly, die aus dem das Verhalten definierenden Quellcode entstanden ist. Der Code-Behind kann dadurch zur Laufzeit die
Steuerelemente beliebig beeinflussen. Ebenso wie die Vorgängerarchitektur
Windows Forms können Avalon-Anwendungen im
Internet Explorer und auf kleinen Endgeräten wie
Pocket PCs und Windows SmartPhone ablaufen.
Anders als die bisherigen Oberflächenbibliotheken, ermöglicht Avalon von Hause eine Anpassung an gerätspezifische Gegebenheiten wie zum Beispiel Bildschirmgrößen und Eingabemethoden. Beispielsweise wird eine Anwendung keine Tablet-PC-spezifischen
Steuerelemente mehr verwenden müssen, weil jedes XAML-
Steuerelement automatisch auch die Stifteingabe unterstützt.
<Dock
Panel xmlns="
http://schemas.microsoft.com/2003/xaml">
<Border Background="Light
Blue" Dock
Panel.Dock="Top">
<Text>Avalon Demo</Text>
</Border>
<Border Dock
Panel.Dock="Bottom" Background="LightYellow">
<Text>(C)
Dr. Holger Schwichtenberg</Text>
</Border>
<Border Dock
Panel.Dock="Left" Background="Lavender"></Border>
<Border Dock
Panel.Dock="Fill">
<Dock
Panel>
<Text Dock
Panel.Dock="Top">Bitte geben Sie Ihren Namen ein!</Text>
<
TextBox Dock
Panel.Dock="Top" Height="30px" Width="100px" Margin="10,10,10,10">Ihr Name</
TextBox>
<
Button Dock
Panel.Dock="Top" Height="30px" Width="100px" Margin="10,10,10,10">Anmelden</
Button>
</Dock
Panel>
</Border>
</Dock
Panel>
Listing: XAML-Code einer einfachen Avalon-Anwendung
Avalon enthält aber viele zusätzliche Funktionen wie die Transparenz beliebiger
Steuerelemente und
Steuerelementteile, die Rotation einzelner
Steuerelemente in beliebigem Winkel, fliegende Schaltflächen, dreidimensionale Registerkarten, ein an die Fenstergröße angepasstes Fluss-Layout wie bei HTML und beliebige
Steuerelemente als Hintergrund anderer
Steuerelemente. Neu ist auch, dass Avalon komplett vektorbasiert ist und damit in jeder Bildschirmauflösung eine optimale Darstellung liefert.
Zwar wird XAML auch im
Internet Explorer darstellbar sein, doch leider ist Microsoft auf dem Wege, für
Longhorn die Integration der
Webserver-Entwicklungsplattform
ASP.NET in Avalon zu verpassen und damit weiterhin die Migration von Anwendungen zwischen Windows und HTML-basiertem Web zu erschweren.
Architektur
- Deklatives Layout durch Markup-Language (nicht HTML, sondern XAML)
- 1:1-Abbildung zwischen Tag und Klassen
- Layout kann auch wie bisher durch Klassen erzeugt werden
- Trennung von Code und Layout möglich (durch partial classes), dadurch können Designer für Oberflächengestaltung eingesetzt werden
- Markup kann kompiliert werden
- Vektorbasiert
- basiert auf .NET Framework (Managed Code)
- Namensraum System.Windows in WinFX
- http://schemas.microsoft.com/2003/xaml
Neue Gestaltungsmöglichkeiten
- Flow-Layout möglich (wie im Web)
- Rotation von Inhalten
- Hintergrund jeder Steuerelemente kann beliebiger Inhalt sein (z.B. Grafik in Button)
- Videos als Hintergrund
- Buttons die rotierend fliegen
- 3-dimensional angeordnete Registerkarten
- Transparenz möglich für alle Steuerelement/Teile von Steuerelementen (Teil jeder Farbinformation)
- Adaptive Flow Layout passt Ausgabe optimal an Ausgabemedium an
- Unterstützung für Tablet-PC-Stifteingabe in allen Steuerelementen