© StonePictures/Shutterstock.com
UI für Windows - aktueller Stand, heutige Optionen und die Zukunft

Neuer Look für alle


Applikationen für Microsoft Windows spalten sich in zwei Lager. Zum einem gibt es die klassischen Windows-Anwendungen und zum anderen die Apps für die UWP. Nahezu alle Features und Updates sind auf die UWP ausgerichtet, zum Beispiel neue Controls für das User Interface, Toast-Benachrichtigungen, Deployment über den Store sowie Fluent Design. Wie man diese Features auch in klassischen Apps nutzt, ist Gegenstand dieses Beitrags.

Die Welt der Applikationen mit grafischem User Interface (UI) unter den Betriebssystemen von Microsoft Windows ist etwas uneinheitlich. Betrachtet man die aktuelle Version aus der Sicht des UI von Windows 10, dann haben wir es gewissermaßen mit einem zweigeteilten System zu tun:

  • Windows Forms (WinForms) und Windows Presentation Foundation (WPF)

  • Universal Windows Plattform (UWP)

WinForms ist die älteste Technologie. Dabei erstellt man die Oberfläche mit Hilfe eines grafischen Designers, passt Eigenschaften an und gelangt so zum Ergebnis. Neben den Controls aus dem Hause Microsoft hat eine Vielzahl von Drittanbietern dafür gesorgt, dass sich Windows-Forms-Applikationen auch bis heute noch einer großen Beliebtheit erfreuen. Technisch kann WinForms nicht mit WPF mitthalten, der Entwicklungsansatz ist aus heutiger Sicht nicht mehr zeitgemäß und man hat schon auf das Ende spekuliert. Beispielsweise kann man in WinForms-Applikationen nur schwer die übliche Schichtentrennung zwischen grafischer Oberfläche (View) und der steuernden Programmlogik (Model) umsetzen. Gegen das drohende Aus dieser Technologie sprechen die unzähligen existierenden Applikationen, die sich im produktiven Einsatz befinden (Legacy Apps). Aufgrund der technischen Unterschiede zur WPF hat es sich jedoch kaum gelohnt, umfassende Applikationen dorthin zu migrieren. Stattdessen gab es oft Workaround, um Mängel oder technologische Unzulänglichkeiten, zum Beispiel mit den besagten Controls von Drittanbietern, aus Sicht der Anwender weitgehend auszugleichen. Das Grafikrendering in Windows Forms basiert auf dem GDI-System, konkret auf der verbesserten Variante GDI+, das über Wrapper in .NET verfügbar gemacht wird.

WPF-Applikationen waren als Nachfolger gedacht. WPF basiert von Anfang an auf DirectX und bietet deutlich mehr Möglichkeiten, um reichhaltige Applikationen mit einem umfassenden Styling zu erstellen. Ein sehr wichtiges Leistungsmerkmal ist es, Controls miteinander zu verschachteln und damit gewissermaßen das User Interface in einer Hierarchie aufzubauen. Die Oberfläche wird deklarativ mit Hilfe der Auszeichnungssprache XAML (basierend auf XML) erstellt. Gewissermaßen ebenfalls Standard ist die Nutzung des MVVM-(Model-View-ViewModel-)Paradigmas zur Trennung der Anwendungsschichten.

Wichtig ist es, zu verinnerlichen, dass sowohl Windows Forms als auch WPF auf .NET als technischen Unterbau setzen. Trotz ihrer weiten Verbreitung gelten beide Technologien heute als veraltet. Microsoft hat sie auch nur noch sehr bedingt mit neuen Features versehen. Trotz dieses Legacy-Status von Windows Forms und WPF hat man sich entschlossen, die beiden grafischen Ansätze in die neue .NET-Welt zu migrieren, d. h., WinForms und WPF sind auch in .NET 5.0 verfügbar.

Die „neuere“ Variante von Windows-Applikationen sind die Apps für die UWP. Mit Blick auf das UI zeichnen sich Apps für die UWP durch folgende Merkmale aus:

  • Frei skalierbar: UI ist frei skalierbar und auf unterschiedliche Bildschirmgrößen, Pixeldichten und Auflösungen anpassbar, was die Verwendung auf verschiedenen Geräteklassen ermöglicht.

  • Moderne Features: Livekacheln (Tabletmodus), Pushbenachrichtigungen und ähnliche Funktionen sind nur unter Windows 10 möglich und explizit für die UWP verfügbar.

Entwickler können zwischen C#, C++, JavaScript und Visual Basic .NET sowie bei der Benutzeroberfläche zwischen XAML, HTML und einer direkten Interaktion mit DirectX wählen. Das Deployment der App soll nach dem Vorbild mobiler Apps über einen zentralen Store erfolgen. Alternative Szenarien, wie Side-Loading und die Bereitstellung als Unternehmens-Apps, sind aber möglich. Das User Interface bietet heute alle Möglichkeiten, um die vielfältigen Ansprüche abzudecken. Neben den modernen Bedienszenarien aus dem mobilen Umfeld, wie etwa Touch-Interface, wurden auch Controls für klassische Windows-Desktopanwendungen nachgerüstet. Das UI für die Apps der UWP wird ebenfalls deklaratorisch erstellt, und auch hier kommt XAML zum Einsatz, jedoch ein anderer Dialekt als bei WPF.

Von WinUI 2.0 zu 3.0

Den eben skizzierten Stand der Oberflächentechnologien hat Microsoft mit der Bezeichnung WinUI 2.0 versehen. Die Notwendigkeit, dieses Nebeneinander der UI-Technologien langfristig aufzulösen, ist mehr als offensichtlich. Die Entwicklung von WinUI 3.0 ist der Weg dorthin [1]. Am Ende des Weges sollen beide Plattformen zu „Windows Apps“ verschmelzen. Voraussichtlich wird sich WinUI 3.0 schrittweise entwickeln. Technisch wird man dabei als Ausgangspunkt die UWP verwenden, d. h., auch die neue Technologie wird auf einer Deklaration der Inhalte des User Interface (XAML), einem flexiblen Einsatz von Komponenten, der Verwendung von Layoutcontainern und dem Prinzip des Data Binding beruhen. WinUI 3.0 soll nativ arbeiten und insbesondere von der UWP entkoppelt werden. Damit wird WinUI 3.0 auch für andere Arten von Apps nutzbar. So können auf allen möglichen Gerätetypen mit einem Windows-Betriebssystem (Desktop, Xbox, Surface Hub usw.) die neuesten Features der UI-Technologie eingesetzt werden. Folgende Features könnten zu WinUI 3.0 gehören:

  • Natives UI: Die Oberfläche von Windows selbst, soll künftig auf WinUI 3.0 basieren. Damit basieren Anwendungen und Programme demnächst auf der gleichen Interfacetechnologie.

  • Basis Fluent Design: Der Designansatz beruht auf Fluent Design. Fluent Design ist die prägende Designsprache und -stilrichtung von Microsoft. Es werden u. a. die neuesten Features wie Komposition und Rendering auf niedrigem Level sowie Vektoranimationen, Effekte, Schatten und Beleuchtung unterstützt.

  • Technologische Bandbreite: Auf Ebene der Programmiersprachen wird man die Wahl haben zwischen .NET (C#, Visual Basic .NET) und C++. Es werden die App-Modelle UWP und Win32 möglich sein.

  • Deployment: Dieses kann wahlweise als MSIX, AppX (Microsoft Store) oder unpackaged erfolgen, und auch an eine Interaktion mit alten Apps auf Basis der Legacy-Technologien WPF, WinForms and MFC soll gedacht werden.

  • Abwärtskompatibilität: Die neuen WinUI-Funktionen sind abwärtskompatibel mit einer Vielzahl von Windows-Versionen, d. h., Entwickler können sofort nach Veröffentlichung mit dem Erstellen und Versenden neuer Funktionen für Apps beginnen, ohne auf die Aktualisierung von Windows durch die Benutzer warten zu müssen.

  • Native Entwicklungsunterstützung: WinUI kann mit .NET verwendet werden, ist jedoch nicht von .NET abhängig. WinUI ist zu 100 Prozent in C++ programmiert u...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang