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

Werkzeuge  –  Kommentare

Seit .NET 3.0 ist eine zentrale Frage bei der Entwicklung von .NET-Desktop-Anwendungen die Entscheidung zwischen der "alten" Windows Forms-Bibliothek und der neuen Windows Presentation Foundation (WPF). Dabei entscheiden sich viele Unternehmen auch heute immer noch bewusst für Windows Forms, denn WPF birgt einige Herausforderungen.

10 wichtige Fragen zu .NET

In dieser zehnteiligen Serie liefert .NET-Experte Holger Schwichtenberg Antworten auf die am häufigsten gestellten Fragen, die .NET-Entwickler beschäftigen.

  1. Reicht .NET 2.0, oder muss man .NET 3.5 einsetzen?
  2. C# oder Visual Basic? Die richtige Programmiersprache für .NET-Entwickler
  3. Genügt das kostenfreie Visual Studio Express oder muss man eine "Professional"-Variante kaufen?
  4. .NET-Oberflächen mit Windows Forms oder WPF?

Während Java-Entwickler schon lange die Qual der Wahl zwischen verschiedenen Oberflächenbibliotheken (zum Beispiel AWT, SWT, Swing) haben, war die Welt für .NET-Entwickler in .NET 1.0 und 2.0 sehr einfach: Windows-Desktop-Anwendungen entwickelt man mit Windows Forms! Die waren zwar nicht identisch mit den in dem Zeitalter vor .NET verwendeten Microsoft Foundation Classes (MFC) für C++ und den VB Forms im klassischen Visual Basic, aber konzeptionell sehr ähnlich.

Mit der Windows Presentation Foundation (WPF, früherer Codename "Avalon") hat Microsoft dann ab .NET 3.0 eine alternative Bibliothek eingebaut, die nicht nur Oberflächen für Windows-Anwendungen bereitstellt. WPF unterstützt verschiedene Arten von Benutzeroberflächen in einer durchgängigen Bibliothek, insbesondere:

  • klassische Windows-Desktop-Fenster
  • 2-D-Grafiken (vgl. GDI)
  • 3-D-Grafiken (vgl. DirectX)
  • Dokumente (vgl. Postscript und PDF)
  • Browser-Anwendungen (vgl. Macromedia Flash und Java Applets)
  • Animationen und Videos

WPF bietet nicht nur mehr Anwendungsarten, sondern viel reichhaltigere Visualisierungsmöglichkeiten. Dazu gehören Farbübergänge, Verformungen (Transformationen), Bildveränderungen (engl. "Pixel Shader") wie Schatten- und Spiegeleffekte, Überblendeffekte und Bewegungen (Animationen). So kann WPF jedes in jedem beliebigen Winkel kippen oder rotieren. Elemente lassen sich beliebig kombinieren, zum Beispiel kann ein Kontrollkästchen Teil eines Auswahlfeldes sein oder ein Video Hintergrund für eine Eingabefeld. Die Anzeige in WPF ist vektorbasiert und bietet daher eine gute Darstellung, unabhängig von der Größe des Anzeigegeräts, auch bei sehr kleinen Bildschirmen.

Durch die Definition wiederverwendbarer Formatvorlagen (Styles) lassen sich einheitliche Gestaltungsmerkmale auf Steuerelemente anwenden, denn Aussehen und Verhalten sind bei den Steuerelementen klar getrennt. Durch den Austausch der Formatvorlagen sind schnell gestalterische Anpassungen möglich – wie man es von Cascading Style Sheets im Web kennt. WPF bietet gegenüber Windows Forms ein wesentlich ausgeprägteres Ereignissystem und eine Abstraktion bei der Bindung von Oberflächenelementen an Befehle, durch das im aktuellen Kontext nicht verfügbare Elemente sofort ausgeblendet werden.