Atlas Informatik

WPF

In den letzten Jahren hat sich WPF (Windows Presentation Foundation, Bestandteil des .NET Frameworks) von Microsoft als die Technik der Zukunft herauskristallisiert. Die Gründe dafür sind vielfältig. Die Flexibilität der Benutzeroberfläche von Programmen hat sich seit dem Beginn mit DOS im Jahr 1980 ständig weiterentwickelt. Zu dieser Zeit wurden Fenster noch mithilfe von speziellen Zeichen dargestellt. Unter OS/2 und Windows 3.1 im Jahre 1993 wurden Fenster dann endlich als Grafik gezeichnet. Seit dieser Zeit hat es leider kaum mehr Fortschritte im User Interface von Applikationen gegeben. Im Gegenteil: Mit den Browser-basierten Programmen gab es sogar einen Rückschritt. Es gibt bis heute (HTML, ASPX usw.) immer noch keine einfache Möglichkeit, eine sich dynamisch an die Fenstergrösse anpassende Oberfläche herzustellen. Es wird immer noch mit mehreren von Hand hergestellten Layouts für unterschiedliche Breiten gearbeitet (Handys, Tablets, Flatscreens). Dieselben Änderungen müssen dabei in frustrierender Doppel- oder sogar Dreifacharbeit vorgenommen werden. Und die architekturell beste und modernste Bauweise mit MVVM ist dabei nicht mal unterstützt. Aber wenigstens im Desktop-Bereich kam im Jahr 2006 endlich die Lösung: WPF.

Doch wodurch zeichnet sich WPF eigentlich aus?

  • WPF-Oberflächen haben nur einen zentralen Code, dh. sie müssen nur einmal gepflegt werden. Sie sind extrem flexibel, wie wenn sie aus Gummi wären. Ein Eingabefeld verbreitert sich einfach, wenn man am rechten Rand anstösst. Die Elemente werden nicht wie früher per Pixelangaben fix auf dem Schirm positioniert, sondern es wird nur gesagt "dieses Element befindet sich zentriert im Inneren jenes Elements" usw. Dadurch, sowie durch clevere Grundbausteine wie automatisch umbrechende Gefässe, kann das Anordnen sehr präzise gesteuert werden. Wenn der User beispielsweise eine Maske vergrössert, weil er über einen grösseren Monitor verfügt, rutschen die Elemente wie bei einem Textverarbeitungsprogramm einfach nach oben und reihen sich fein säuberlich nebeneinander auf. Und das alles ohne zusätzliche Programmierung. Die Bedeutung dieses Konzepts zeigt sich daran, dass es inzwischen auch im Internet in den HTML-Standard ab Version 5 eingerarbeitet wurde.

  • WPF ist "live", dh. wenn Sie an einem Ort den Namen einer Person abändern wird diese Änderung wie ein Lauffeuer im gesamten Programm weiterverbreitet. Wenn Sie also zB. einen Fenstertitel mit dem Namen darin offen haben, wird er sofort aktualisiert. Bei älteren Oberflächen musste der Programmierer an jeder Stelle von Hand dafür sorgen, dass die Daten aktualisiert wurden. Dabei wurden stets viele Fehler gemacht. Jeder Windows-Benutzer kennt die Taste F5 inzwischen auswendig. Das muss nicht sein. In WPF geht es ohne.

  • WPF-Oberflächen sind zoombar: Beim Design von WPF wurde darauf geachtet, dass alle Grafiken entweder aus Strichen oder aus Bildern mehrerer Grössen bestehen. Dadurch kann man wie mit einem Vergrösserungsglas heranzoomen ohne dass ein gekörnter Eindruck entsteht. Beim Zoomen kann wiederum von der in oberem Absatz genannten Flexibilität profitiert werden. Es handelt sich also um ein perfektes, cleveres Zoomen, nicht nur um ein simples Pixel-Zoomen wie man es von der Handykamera her kennt.

  • Unendliche Verschachtelung: In WPF können alle Elemente ins Innere von allen anderen Elementen verschachtelt werden, und das beliebig tief. Bitten Sie einmal einen Nicht-WPF-Programmierer darum, eine Maske in eine Zelle eines Grids zu platzieren (ein übliches Vorgehen bei einem Master-Detail-Grid). Er wird Sie nur flehend anschauen und fragen: "Können wir das nicht irgendwie anders lösen?"

  • WPF bietet verkaufswirksame 2D- und 3D-Grafikeffekte an: In WPF wurden erstmals diverse hübsche Grafikfunktionen eingebaut, die man bisher nur von aufwändigen Präsentationen und Games her kennt. Sie sind voll in WPF intergriert und können mit allen anderen Elementen (zB. Controls) kombiniert werden. Sie werden auch flüssig angezeigt, da sie direkt auf der Grafikkarte berechnet werden (WPF setzt auf DirectX auf). Falls der PC gar keine Grafikfähigkeiten haben sollte, werden sie mit dem Prozessor berechnet. Es gibt also keinen Grund, sie nicht einzusetzen.

  • WPF enthält nun endlich lang ersehnte Konzepte für den Informationsfluss über mehrere verschachtelte Elemente hinweg (für Informatiker: Commands, Bubbling/Tunneling-Events, Disabling, Hiding, Transparenz, Fokus-Bestimmung, Resourcen pro Element, Weak-Events, Validierung usw.) Viele Arbeitsstunden gingen früher in den Versuch, solche Konstrukte selber zu implementieren.

  • In WPF gilt eine strikte Trennung von Aussehen und Funktionalität. In herkömmlichen Oberflächen gab es stets eine starke Vernetzung von Applikationslogik und Darstellungscode. Die Trennung ermöglicht es, dass eine fixfertige, funktionierende Applikation an einen Grafiker weitergereicht wird, welcher sodann den Look den Firmenfarben anpassen oder einen ganz anderen Look darüberlegen kann (sog. Themes). Wir alle wissen, dass gute Programmierer in der Regel keine guten Grafiker sind und umgekehrt. Mit der Trennung wird dieses Problem elegant gelöst und das Risiko minimiert, dass neue Fehler in die Applikation hineinkommen.

  • WPF ist Teil des .NET Frameworks von Microsoft. Es kann daher nahtlos zusammen mit einer riesigen Menge an vorgefertigem Code verwendet werden. Microsoft soll angeblich eine zukünftige Windows-Version planen, die Grösstenteils in WPF und dem .NET Framework geschrieben ist. Sobald dieses Szenario eintrifft, wirken ältere Applikationen altmodisch und wie ein Fremdkörper im System.

Beispiele

Hier können Sie selbst sehen, was WPF-Applikationen leisten können.

 

Gehe an den Anfang