.NET-Oberflächen mit Windows Forms oder WPF?

Seite 2: Code und Layout getrennt

Inhaltsverzeichnis

Anders als bei Windows Forms kann bei WPF die Beschreibung der Oberfläche durch XML-Elemente erfolgen. Microsoft hat dafür eine XML-Sprache namens Extensible Application Markup Language (XAML) entwickelt. In XAML sind einzelne .NET-Objekte und ganze Objektbäume beschreibbar. Zwar kann man in WPF eine Benutzeroberfläche auch noch in Form von Programmcode erstellen, dies ist aber nicht der bevorzugte Weg, denn XAML vereinfacht die Trennung von Code und Gestaltung.

In Windows Forms wurde die Benutzeroberfläche durch Code beschrieben, der, obwohl in einer eigenen "Designer-Datei" getrennt, eng mit dem Programmcode verzahnt war. In WPF kann man durch XAML viele Dinge deklarativ ausdrücken (beispielsweise Datenbindung, Animationen), die in Windows Forms gar nicht in der Designer-Datei untergebracht werden konnten. Für Windows Forms gab es als einziges Gestaltungswerkzeug den in Visual Studio eingebauten Designer. Für WPF existieren eigene Produkte für die Oberflächengestalter, z.B. Microsoft Expression Blend. Dadurch können Benutzeroberflächen einfacher von ausgebildeten Gestaltern erstellt werden. Bisher übernehmen diese Arbeit oft Softwareentwickler, denen Kenntnisse von Ästhetik und Benutzerfreundlichkeit fehlen.

WPF-Oberflächen laufen – genau wie Windows Forms – als eigenständige Windows-Fenster oder im Fenster eines Webbrowsers als sogenannte Web Browser Application (WBA). Sowohl WPF als auch Windows Forms erfordern jedoch beim Einsatz im Web ein vollständiges .NET Framework – zumindest das .NET Framework Client Profile – auf jedem Zielsystem. WBAs sind daher ebenso wie Windows Forms in der Praxis kaum im Browser zu finden, allenfalls in Intranet-Szenarien. Speziell für den Web-Einsatz hat Microsoft daher Silverlight entwickelt, ein Mini-.NET Framework mit einer abgespeckten und syntaktisch veränderten Version von XAML. Silverlight läuft als Browser-Plug-In mit "nur" 4,5 MByte Download (gegenüber mehr als rund 60 MByte für ein vollständiges .NET Framework bzw. 28 MByte für das .NET Client Profile, siehe Downloadgrößen). Bei der Verbreitung von Desktop-Anwendungen unterstützt WPF genau wie Windows Forms alle Möglichkeiten aus .NET, also XCopy-Deployment, Click-Once-Deployment oder MSI-Pakete.