Über unsMediaKontaktImpressum
Elena Bochkor & Dr. Veikko Krypczyk 25. März 2025

WinUI 3 – State of the Art

Der aktuelle Stand zum Grafik-Framework WinUI 3

WinUI 3 hat sich als moderne UI-Plattform für Windows etabliert und ermöglicht die Entwicklung ansprechender und performanter Desktop-Anwendungen. Im Gegensatz zu älteren Frameworks wie Windows Presentation Foundation (WPF) und Windows Forms (WinForms) bietet WinUI 3 zahlreiche Vorteile, die es zu einer zukunftssicheren Wahl für Entwickler machen [1].

Ein zentraler Aspekt ist das moderne Design, das eng mit dem Fluent Design System von Microsoft verknüpft ist [2]. Während WPF und WinForms seit Jahren existieren, profitieren WinUI-3-Anwendungen von regelmäßigen Updates und neuen Funktionen, die weitgehend unabhängig vom Betriebssystem bereitgestellt werden. Ein weiterer wesentlicher Vorteil ist die Entkopplung von Windows-Versionen. Entwickler können neue UI-Funktionen nutzen, ohne auf ein Betriebssystem-Update angewiesen zu sein. 

Darüber hinaus ist WinUI 3 ein zentraler Bestandteil des Windows App SDK, das eine einheitliche Plattform für die Entwicklung von Windows-Anwendungen bietet. Dies erleichtert den Zugriff auf moderne Windows-APIs und -Funktionen, während WPF und WinForms als eigenständige Frameworks nicht dieselbe Tiefe der Integration bieten. Microsoft hat außerdem angekündigt, dass der Fokus künftiger Entwicklungen verstärkt auf WinUI 3 liegen wird, auch wenn WPF weiterhin unterstützt wird.

WinUI 3 ist eine leistungsstarke UI-Technologie für Windows-Anwendungen, die auf einer modernen Architektur basiert und sowohl mit .NET als auch mit nativen Windows-APIs kompatibel ist. Sie stellt eine Weiterentwicklung der bisherigen Windows-UI-Technologien dar und ermöglicht Entwicklern eine größere Flexibilität bei der Gestaltung und Implementierung ihrer Anwendungen.

WinUI 3: Technische Grundlagen und Architektur dieser UI-Technologie

Ein Kernbestandteil von WinUI 3 ist das deklarative UI-Design mit XAML (Extensible Application Markup Language). Diese Sprache ermöglicht eine klare Trennung von Logik und Benutzeroberfläche, wodurch UI-Elemente unabhängig von der Anwendungslogik definiert und gestaltet werden können. Im Vergleich zu WPF, das ebenfalls XAML verwendet, bietet WinUI 3 jedoch modernere Steuerelemente und eine bessere Performance, beispielsweise werden bevorzugt kompilierte Bindungen eingesetzt, welche direkt zur Entwicklungszeit aufgelöst werden. Ein weiterer technischer Vorteil von WinUI 3 ist die Möglichkeit, Apps mit .NET oder C++ zu schreiben. Während WPF ausschließlich mit .NET arbeitet, bietet WinUI 3 Entwicklern die Freiheit, native Windows-APIs direkt in C++ zu nutzen, was besonders für laufzeitkritische Anwendungen von Vorteil ist. Zudem ermöglicht das Windows App SDK eine einfache Anbindung an Windows-spezifische Funktionen wie das Windowing API, Notifications und App Lifecycle Management.

Rendering und Performance spielen ebenfalls eine entscheidende Rolle. Während WinForms GDI und WPF DirectX verwendet, setzt WinUI 3 vollständig auf DirectX 12 und die Composition API, um eine flüssige und hardwarebeschleunigte Darstellung zu gewährleisten. Dies führt zu einer besseren Performance, insbesondere bei komplexen UI-Layouts oder Animationen.

WinUI 3 nutzt außerdem das Windows App SDK, um eine konsistente Entwicklererfahrung über verschiedene Windows-Versionen hinweg zu ermöglichen.

Windows App SDK 1.6: Aktueller Stand

Das Windows App SDK 1.6 beinhaltet eine Vielzahl von Neuerungen und Verbesserungen, die helfen, leistungsfähigere und effizientere Windows-Anwendungen zu erstellen. Ein herausragendes Feature ist die Unterstützung von Native Ahead-Of-Time (AOT) Compilation. Durch die AOT-Kompilierung wird der Anwendungscode vorab in nativen Maschinencode übersetzt, was zu einer schnelleren Startzeit und einem reduzierten Speicherverbrauch führt. Beispielsweise konnte in einer Beispielanwendung die Startzeit um 50 Prozent verkürzt und die Paketgröße signifikant reduziert werden [3]. Diese Funktion korrespondiert mit der gewählten .NET-Version (s. Tabelle 1).

Tabelle 1: AOT-Unterstützung nach .NET-Version [2]

PlattformUnterstützte Architektur 
 .NET 8.NET 9
Windowsx64, Arm64x64, Arm64, X86
Linuxx64, Arm64x64, Arm64, Arm
macOSx64, Arm64x64, Arm64
iOSArm64 (experimentell)x64, Arm64
iOS-Simulatorx64, Arm64 (experimentell)Arm64
tvOSArm64 (experimentell)x64, Arm64
tvOS-Simulatorx64, Arm64 (experimentell)Arm64
macOS Catalystx64, Arm64 (experimentell)x64, Arm64
Androidx64, Arm64 (experimentell, 
no built-in Java interop)
x64, Arm64, ARM 
(no built-in Java interop)

Um die AOT-Unterstützung in einem Projekt zu aktivieren, ergänzen Sie in den Projekteigenschaften folgenden Eintrag:

<PropertyGroup>
    <PublishAot>true</PublishAot>
</PropertyGroup>

Achten Sie darauf, ob diese Funktion mit Ihrer Zielplattform und der gewählten .NET-Version kompatibel ist. Bereinigen Sie das Projekt, erstellen Sie es neu und stellen Sie die App erneut auf dem Zielsystem bereit. Dann sollte diese als vorkompilierte Version ausgeführt werden.

Ein weiteres wichtiges Update betrifft die Entkopplung der WebView2-Versionierung. Anstatt eine fest codierte Version des Edge WebView2 SDK zu verwenden, wird nun eine NuGet-Referenz genutzt. Dies ermöglicht es, bei Bedarf auf neuere Versionen des WebView2 SDK zuzugreifen und erleichtert die Verwaltung von Abhängigkeiten in Projekten. Die Package Deployment APIs wurden ebenfalls erweitert. Neue Funktionen ermöglichen nun das Entfernen von Paketen, die Bereitstellung und die Erkennung ausstehender Registrierungen sowie lokal verfügbarer Updates. Diese Verbesserungen erleichtern die Verwaltung von MSIX-Paketen und bieten Entwicklern mehr Flexibilität bei der Paketverwaltung.

Zusätzlich wurde die Benutzererfahrung durch Verbesserungen an Steuerelementen wie dem TabView optimiert. Eine neue Funktion ermöglicht es Benutzern, Tabs ähnlich wie in modernen Browsern herauszulösen, indem beim Ziehen eines Tabs sofort ein neues Fenster erstellt wird. Dies bietet eine intuitivere und effizientere Möglichkeit, mit Tabs zu interagieren.

WinUI 3 App erstellen

WinUI 3 vereint die Flexibilität von WPF mit der Performance von UWP und bietet eine Vielzahl an Tools für ein ansprechendes, reaktionsschnelles und performantes Benutzererlebnis. Damit man das Potenzial von WinUI 3 optimal nutzen kann, ist die Berücksichtigung bewährter Methoden in den Bereichen UI-Design, Performance, Architektur, Windows-Integration und Bereitstellung wichtig. WinUI 3 setzt auf das Fluent Design System, das eine moderne, adaptive und barrierefreie Benutzeroberfläche ermöglicht. Es ergeben sich primär folgende Vorteile gegenüber WPF und WinForms:

  • Vollständige dynamische Anpassung an Bildschirmgrößen: Ein relatives Layoutsystem ermöglicht ein weitgehend auflösungsunabhängiges Design des UI.
  • Moderne Steuerelemente: WPF und WinForms verwenden ältere Controls, die nicht für Touch-Bedienung oder moderne Interaktionsmuster optimiert sind. WinUI 3 hingegen bietet u. a. NavigationView, CommandBar, InfoBar, TeachingTip und andere moderne UI-Elemente. Einen Überblick über die reichhaltigen UI Controls gibt die App WinUI 3 Gallery, welche man über den Windows Store installiert (Abb. 1).
  • Flüssige Animationen: Dank der Windows Composition API lassen sich reibungslose Animationen umsetzen, ohne die UI-Performance zu beeinträchtigen.
  • Dunkelmodus und hohe Kontraste: WinUI 3 bietet eine einfache Möglichkeit zur Implementierung des Dark Modes über RequestedTheme="Dark".
  • Nutzung von Acrylic- und Reveal-Effekten für modernes Design: Durch AcrylicBrush oder RevealBrush erhalten Oberflächen eine moderne Tiefenwirkung.
  • Eingabemethoden berücksichtigen: Unterstützung für Maus, Tastatur, Stift und Touch zur Verbesserung der Benutzererfahrung.

Ein großer Vorteil von WinUI 3 gegenüber WinForms und WPF liegt in der besseren Performance. Während WPF auf DirectX 9/10 basiert und WinForms GDI nutzt, verwendet WinUI 3 DirectX 12, was zu einer besseren Hardware-Beschleunigung führt. Anders als WinForms, das stark synchron arbeitet, nutzt WinUI 3 asynchrone APIs, um UI-Blockaden zu vermeiden. Zwei wichtige Tipps lassen sich in diesem Zusammenhang nennen:

  • Primäre Nutzung von asynchronen Aufrufen für so genannte langlaufende Methoden, beispielsweise für Datenbank- und Netzwerkaufrufe, um Blockierungen des UI stets zu vermeiden
  • Verwendung von kompilierten Bindungen (x:Bind) anstelle von Standardbindungen (Binding) für bessere Performance bei der Datenbindung, insbesondere bei Listen und Datentabellen.

WinUI 3 unterstützt das MVVM-(Model-View-ViewModel-)Architekturmuster, das eine klare Trennung zwischen UI-Logik und Daten ermöglicht. Weitere bewährte Methoden zur Entkopplung der Applikationsschichten in einer WinUI 3 App sind die Nutzung von Dependency Injection (DI) und die Einbindung des CommunityToolkit.Mvvm für einfachere MVVM-Implementierungen, inklusive der Nutzung von Quellcodegeneratoren.

WinUI 3 unterstützt eine Vielzahl von nativen Windows-APIs und ermöglicht eine tiefere Integration als WPF oder WinForms, beispielsweise:

  • Windowing API für flexible Fenstergrößen
  • Benachrichtigungen mit Windows Notification API senden
  • Dateizugriff über Windows Storage API verwalten

WinUI 3 App: Bereitstellung und Updates

Eine WinUI 3 App kann über MSIX, den Windows Store oder mittels Sideloading verteilt werden. MSIX bietet automatisches App-Update und sicheres Deployment (bevorzugt) und eine direkte Unterstützung für das Windows Store Deployment. WPF und WinForms benötigen dagegen manuelle Updates oder die Nutzung der (fehleranfälligen) ClickOnce-Technologie. Die Bereitstellung über MSIX Packages bietet darüber hinaus eine höhere Sicherheit (Sandboxing). Trotz dieser neuen Ansätze der Bereitstellung kann eine WinUI 3 App auch als nicht gepackte Variante über den Weg der manuellen Installation (Kopie der exe-Datei) auf den Zielsystemen installiert werden.

Tools und Hilfsmittel

Wir können die folgenden Tools und Hilfestellungen empfehlen:

  • Figma Toolkit: Das Toolkit für das Prototyping-Tool Figma. Damit kann man die Steuerelemente für WinUI 3 direkt während des Prototypings verwenden [4].
  • Template Studio for WinUI: Diese Erweiterung für Visual Studio richtet einen Assistenten ein, um mit dessen Hilfe das App-Grundgerüst anzulegen. Das Tool ist ebenso nützlich, um "Wegwerf-Apps" zu erstellen, um ausgewählte Features zu testen. Beispielsweise kann man im Team unterschiedliche Navigationsvarianten gegenüberstellen [5].
  • Windows Community Toolkit Sample App: Das Windows Community Toolkit ist eine Sammlung von Hilfsprogrammen, Erweiterungen und benutzerdefinierten Steuerelementen. Auch hier kann man einige Controls live ausprobieren und direkt den dazugehörigen Quellcode in XAML kopieren.
  • Syncfusion WinUI Controls Gallery: Übersicht über die Steuerelemente, welche für die WinUI 3 von Syncfusion bereitgestellt werden. Die App demonstriert alle Controls, man kann einige Eigenschaften der Steuerelemente direkt ändern und sich die Wirkungen unmittelbar anzeigen lassen. Ergänzt werden die Beispiele durch den direkten Zugriff auf den XAML-Code und Verweise auf die API-Dokumentation der Steuerelemente .

Abb. 2 zeigt den Prototyp einer Business-Anwendung. Kennzeichnend sind ein modernes und ansprechendes Design und eine gute UX.

Zukunftsaussichten und Vergleich mit anderen Technologien

WinUI 3 ist die aktuelle Desktop-UI-Technologie für Windows-Anwendungen. Sie wurde entwickelt, um moderne Windows-Anwendungen mit einer leistungsfähigen und flexiblen Oberfläche auszustatten. Doch wie wird sich WinUI 3 in den kommenden Jahren weiterentwickeln? Welche Rolle spielt es im Vergleich zu anderen UI-Frameworks? Und was bedeutet das für Entwickler und Unternehmen? 

Der Versuch einer (persönlichen) Einschätzung: Microsoft hat deutlich gemacht, dass WinUI 3 langfristig die empfohlene UI-Technologie für neue Windows-Apps ist. Während WPF und WinForms weiterhin unterstützt werden, liegt der Fokus der Entwicklung eindeutig auf WinUI 3. Folgende Gründe sprechen für die Annahme: Entkopplung vom Windows-Betriebssystem; nahtlose Integration mit zukünftigen Windows-Versionen; erweiterte Unterstützung für Touch- und Stift-Eingaben und eine bessere Leistung und Speichernutzung. Tabelle 2 nimmt einen Vergleich mit anderen UI Frameworks vor.

Tabelle 2: Vergleich mit anderen UI-Frameworks

FrameworkTechnologie-BasisVorteileNachteile
WinUI 3DirectX 12, Windows App SDKmodern, performant, flexible UI, zukunftssichernoch nicht so ausgereift wie WPF für komplexe Business-Apps
WPFDirectX 9/10, .NETumfassende MVVM- Unterstützung, ausgereiftAnwendungen, schwächere Hardwarebeschleunigung, veraltete UI Controls
WinFormsGDI+, .NETsehr einfach zu erlernen, große Legacy-Unterstützungveraltet, wenig modern, schlechte Skalierung auf hohe DPI
MAUI.NET 6+, plattformübergreifendideal für Mobile und Desktop-Apps, eine Codebase für mehrere Plattformenkeine tiefe Windows-Integration wie WinUI 3
Electron/WebHTML, CSS, JavaScriptplattformübergreifend, einfache Web-Technologienhoher Speicherverbrauch, schlechte Performance für große Desktop-Apps

Obwohl WinUI 3 viele Vorteile bietet, gibt es einige Herausforderungen. Zu nennen sind:

  • Multi-Window: Bestimmte Funktionen wie die Multi-Window-Unterstützung sind noch nicht so ausgereift wie in WPF.
  • Ggf. längere Entwicklungszeiten für große Anwendungen: Da WinUI 3 relativ jung ist, fehlt eine große Bibliothek an Drittanbieter-Tools und -Steuerelementen.
  • Migrationsaufwand für bestehende WPF- und WinForms-Anwendungen: Wer von WPF oder WinForms umsteigen möchte, muss mit erheblichem Aufwand rechnen.

App-Entwicklung auf den diesjährigen IT-Tagen

Spannende Vorträge und Workshops zum Thema App-Entwicklung erwarten Euch auch auf den IT-Tagen, der Jahreskonferenz von Informatik Aktuell. Die IT-Konferenz findet jedes Jahr im Dezember in Frankfurt statt – dieses Jahr vom 08.-11.12.

Fazit

WinUI 3 ist nicht nur eine technologische Weiterentwicklung, sondern die Zukunft von Microsoft für Windows-Apps. Während ältere Technologien wie WPF und WinForms weiterhin existieren, liegt der Fokus klar auf WinUI 3 und dem Windows App SDK. WinUI 3 ist die beste Wahl, wenn moderne, performante Windows-Apps entwickelt werden sollen. Für bestehende WPF/WinForms-Anwendungen ist der Umstieg nicht immer notwendig, aber langfristig lohnt es sich, eine Migration in Betracht zu ziehen. Wer auch auf macOS, iOS und Android setzen möchte, sollte sich .NET MAUI anschauen. Apps für .NET MAUI werden ebenfalls mit XAML und C# programmiert werden.

Autor:innen
Das könnte Sie auch interessieren
Kommentare (0)

Neuen Kommentar schreiben