Sie sind hier: Wissen
Begriff Windows UI Library 3
Abkürzung WinUI3
Eintrag zuletzt aktualisiert am 19.02.2025

 Zur Stichwortliste unseres Lexikons

Was ist Windows UI Library 3 ?

Die GUI-Bibliothek "WinUI 3" ist der Nachfolger der Universal Windows Platform (UWP), der in Windows 10 eingeführte neue Name für die "Modern Apps". Während UWP allein auf dem WinRT-API aufsetzt und daher nicht alle Funktionen des Betriebssystems und alle lokalen Ressourcen verwenden kann, kann der eine WinUI3-basierte Anwendung wahlweise das UWP Application Model auf Basis des WinRT-API und/oder das klassische Windows Application Model auf Basis der Win32-API nutzen. Damit stehen ihr alle Möglichkeiten des Windows-Betriebssystems zur Verfügung. Während in UWP die Weiterentwicklung der Steuerelemente mit neuen Betriebssystemversionen erfolgte, sind die komplett in C++ als Open Source auf GitHub [https://github.com/microsoft/microsoft-ui-xaml] geschriebenen WinUI 3-Steuerelemente von dem Betriebssystem entkoppelt; eine WinUI 3-Anwendung läuft daher auf allen Windows 10-Versionen ab dem Creators Update aus dem Frühjahr 2017 und allen Windows 11-Versionen.

Details zu WinUI3

Die Windows UI Library 3 ist, wie die Drei schon ausdrückt, nicht die erste Version von Windows UI. Die Entwicklung der Windows UI Library begann im Jahr 2012, ohne das sie dort schon so geheißen hätte. Mit Windows 8 führte Microsoft eine neue Windows-Oberfläche mit zugehörigen "Metro-Apps" ein – bis die deutsche Firma Metro AG sich gegen den Namen wehrte: http://arstechnica.com/information-technology/2012/08/microsoft-metro-out-windows-8-style-ui-in-amid-rumors-of-a-trademark-dispute/. Danach sprach Microsoft von Apps im "Windows 8 UI-Style" und von "Modern Apps".

Technisch basierten diese Apps auf dem in Windows 8 als Alternative zum funktionsbasierten Win32-API neu eingeführten, objektorientierten Window Runtime API (WinRT-API) des Windows-Betriebssystems. Ab Windows 10 im Jahr 2015 sprach Microsoft dann von Universal Windows Platform (UWP) Apps und dem UWP XAML Framework und den UWP XAML Controls, womit auch klar ist, dass auch diese Anwendungen wie WPF auf der xEtensible Application Markup Language (XAML) basieren, aber auf einem anderen Dialekt. Die Abweichungen zwischen XAML1 und XAML2 sind aber gering.

Den Namen Windows UI Library (WinUI) hat Microsoft dann erst im Jahr 2018 eingeführt als Microsoft die UWP XAML Controls von dem an das Windows-Betriebssystem gebundenen UWP entkoppelte und damit auch eine Down-Level-Nutzung neuerer Steuerelemente in älteren Win10-Versionen erlaubte.

Die Windows UI Library 3 (WinUI3) gibt es seit dem Jahr 2021. WinUI3 ist - anders als Windows Forms und WPF - nicht Teil des .NET Frameworks bzw. des .NET SDKs, sondern ein wesentlicher Teil des Windows App SDKs. Der .NET-Namensraum für WinUI3 ist Microsoft.UI (bei UWP war es Windows.UI).

UWP-Apps mit WinUI2 gibt es auch immer noch für .NET 9.0 https://devblogs.microsoft.com/ifdef-windows/preview-uwp-support-for-dotnet-9-native-aot/. Microsoft sieht dies aber nicht als eine Lösung für neue Anwendungen an, sondern will damit nur den Umstieg auf WinUI3 erleichtern. Daher werden UWP-Apps mit WinUI2 hier nicht weiter thematisiert.

Microsoft versteht WinUI3 nun als "vollständiges UX Framework" https://learn.microsoft.com/en-us/windows/apps/desktop/visual-studio-templates. WinUI3-Anwendungen laufen nun nicht mehr allein auf den WinRT-APIs, sondern können alle Win32-API-Funktionen ebenfalls nutzen. Damit gibt es auch nicht mehr die obligatorische Sandbox (App Container), welche die Verbreitung von UWP-Anwendungen im geschäftlichen Umfeld stark einschränkte. Eine WinUI 3-Anwendung läuft auf allen Windows 10-Versionen, ab dem Creators Update aus dem Frühjahr 2017 und allen Windows 11-Versionen. Der App Container ist bei WinUI3 möglich, aber keine Pflicht.

WinUI3-Oberflächen sind schneller als WPF-Oberflächen, denn WinUI3 ist im Kern mit C++ implementiert und nicht in .NET-Code. Zudem nutzt WinUI3 die DirectX-Version 12, während WPF im Wesentlichen auf DirectX 9 basiert. Im modernen .NET kommt in WPF teilweise DirectX 11 zum Einsatz.

Einen zusätzlichen Vorteil hat WinUI3 seit September 2024: Seit WinUI3-Version 1.6 (Microsoft zählt nicht mehr die "3" hoch, sondern vergibt eine Unterversionsnummer) lassen sich WinUI3-Anwendungen mit dem NativeAOT-Compiler bereits zur Entwicklungszeit direkt in Maschinencode übersetzen. Das verkleinert die Anwendungspakete und beschleunigt den Anwendungsstart, auch wenn es kleinere Leistungseinbußen bei der Ausführungsgeschwindigkeit der Anwendung geben kann, weil es dann keinen Just-in-Time-Compiler (JIT) mehr gibt, der bei der Übersetzung Intermediate Language (IL) zu Maschinencode zur Laufzeit auf den Zielprozessor optimiert. Weder Windows Forms noch WPF können AOT-Kompilierung und es steht in den Sternen, ob und wann Microsoft das in den beiden älteren GUI-Frameworks ermöglichen wird.

WinUI3 beherrscht grundsätzlich alle Features von WPF (außer 3D-Rendering) und auch der Lernaufwand ist gleich. Im Detail gibt es aber Unterschiede zwischen WinUI3 und WPF, nicht nur in der XAML-Syntax, sondern auch bei der verfügbaren Steuerelementen. WinUI3 liefert im Standard mehr Steuerelemente mit als WPF. Wie bei WPF gibt es auch hier eine Gallery-Anwendung im Microsoft Store https://apps.microsoft.com/detail/9p3jfpwwdzrc.

Zahlreiche weitere Steuerelemente liefert Microsoft kostenfrei im Windows Community Toolkit https://github.com/CommunityToolkit/Windows; dazu gibt es nochmals eine eigene Gallery App (siehe https://apps.microsoft.com/detail/9nblggh4tlcq); viele der Steuerelemente sind aber im "Labs"-Stadium, was heißt: noch nicht fertig. Vergeblich sucht man in Microsofts WinUI3-Steuerelemnenten eine klassische Dateneingabetabelle. Im Community Toolkit in der aktuellen Version 8.0 gibt es nur eine nicht veränderbare Datentabelle. Es gab ein editierbares DataGrid-Steuerelement im Windows Community Toolkit 7.1 für UWP, siehe https://learn.microsoft.com/en-us/windows/communitytoolkit/controls/datagrid. Auch für Diagramme, Berichte, Docking Manager u.v.m. Auch bei WinUI3 ist man also auf kommerzielle Drittanbietersteuerelementbibliotheken angewiesen. Dabei gibt es aber nicht so viele Optionen wie bei Windows Forms und WPF. Developer Express hat seine WinUI3-Steuerelemente vom Markt genommen https://www.devexpress.com/winui/. Infragistics hat es nicht mehr als eine Preview geschafft https://www.infragistics.com/community/blogs/b/infragistics/posts/introducing-the-ultimate-ui-for-winui-preview. Actipro Software hat eine Portierung der bestehenden UWP-Steuerelemente abgekündigt https://www.actiprosoftware.com/community/thread/25476/winui-3-and-dotnet-maui. Das ist ein klarer Nachteil von WinUI3.

Schmerzlich ist, dass WinUI3 bis heute die in WPF verfügbaren Features zur komfortablen Eingabevalidierung mit der Schnittstelle INotifyDataErrorInfo fehlen [https://github.com/microsoft/microsoft-ui-xaml/issues/179]. Anders als in WPF, wo Validierungsfehler automatisch ins UI übernommen werden können, müssen Entwicklerinnen und Entwickler in WinUI3 den Validierungszustand und die entsprechende visuelle Rückmeldung selbst steuern.

Ein weiterer wesentlicher Nachteil von WinUI3 ist, dass es keinen grafischen Designer gibt; Entwicklerinnen und Entwickler müssen also die Tags immer manuell eingeben. Der XAML Live Preview innerhalb von Visual Studio und Hot Reloading funktioniert aber in WinUI3-Oberflächen.

Die Trennung von Benutzerschnittstelle und Code via MVVM-Pattern funktioniert mit WinUI3 genauso gut wie mit WPF. Das Look and Feel von WinUI3 ist moderner als bei WPF, auch wenn man bei WPF das Fluent Design seit .NET 9.0 per eingebautem Resource Dictionary aktivieren kann. Die WinUI3-Steuerelemente sind alle bereits auf Basis des Fluent Designs entwickelt worden und bieten auch entsprechende Animationen.

Bei der Datenbindung bietet WinUI3 sogar mehr als WPF, denn die Datenbindungen können zur Entwicklungszeit bereits kompiliert werden (das macht man dort mit x:Bind) und müssen nicht zur Laufzeit erst übersetzt werden wie in WPF. Das macht WinUI3-Anwendungen robuster und schafft die Voraussetzung für NativeAOT-Kompilierung. Auch für WinUI3 gelten die Installationsverfahren wie bei Windows Forms und WPF. Bei WinUI3-Anwendungen sieht die Projektvorlage bereits das Verbreiten als MSIX-Paket vor (Packaged App).

Anlässlich der BUILD-Konferenz 2024 gab Microsoft am 21. Mai 2024 eine hilfreiche Stellungnahme heraus, welches Verständnis Microsoft selbst aktuell von WinUI3 und WPF hat. "WinUI 3 gehört neben Windows Presentation Foundation (WPF) zu den beiden empfohlenen nativen UI-Plattformen für Entwickler. Microsoft beschleunigt die Einführung von WinUI 3 und Windows App SDK in seinen eigenen Windows-Apps, darunter Fotos, Datei-Explorer, Dev Home, PowerToys, Phone Link und andere … Gemeinsam stellen WinUI 3, Windows App SDK und WPF den besten Weg nach vorne für Entwickler dar zum Erstellen moderner nativer Desktop-Apps unter Windows. WinUI 3 wird verwendet, wenn der Funktionsumfang den Anforderungen der App entspricht, insbesondere für Grafik-, Medien- und Verbraucherszenarien. WPF wird verwendet, um das große Ökosystem verfügbarer Steuerelemente und Bibliotheken von Drittanbietern zu nutzen, insbesondere solche für Branchenanwendungen.“ (übersetzt von https://news.microsoft.com/build-2024-book-of-news/).

Obwohl WinUI3 die aktuellste Desktop-Benutzeroberfläche für Windows bietet und es ständig Innovationen für WinUI3 gibt, ist die Nachfrage nach WinUI3 bei www.IT-Visions.de bisher gering, das eben auch an der von Microsoft in obiger Aussage dokumentierten Fokussierung von WinUI3 auf "Grafik-, Medien- und Verbraucherszenarien" liegt.

Vorgänger

Zeitplan

September 2019: Alpha 1
Feb 2020: Alpha 2
19.5.2020: Preview 1
Juli 2020: Preview 2
Nov 2020: Preview 3
April 2021: erste Produktionsreife Version, noch mit Versionsnummer 0.5
Version 1.0: Die Version 1.0 von WinUI3 ist am 16. November 2021 erschienen.
Seitdem Releases mit Updates 1.x zweimal jährlich.

Fakten zu WinUI3

Ausgewählte GUI-Komponentenanbieter für WinUI3
Microsoft
Windows Community
Toolkit https://github.com/CommunityToolkit/WindowsCommunityToolkit


Syncfusion
WinUI Controls
https://syncfusion.com/winui-controls


Telerik
UI for WinUI
https://www.telerik.com/winui


MESCIUS (vormals GrapeCity)
ComponentOne WinUI Edition
https://developer.mescius.com/componentone/winui-controls

Details von Microsoft

"At the Microsoft Build conference in May 2019 we shared our plans for WinUI 3.0, which will greatly expand the scope of WinUI to include the full native Windows UI platform."
[https://github.com/Microsoft/microsoft-ui-xaml]

"This means that the Xaml framework will now be developed on GitHub and ship out of band as NuGet packages. The existing UWP Xaml APIs that ship as part of the OS will no longer receive new feature updates. They will still receive security updates and critical fixes according to the Windows 10 support lifecycle.

The Universal Windows Platform contains more than just the Xaml framework (e.g. application and security model, media pipeline, Xbox and Windows 10 shell integrations, broad device support) and will continue to evolve. All new Xaml features will just be developed and ship as part of WinUI instead.

Language: .NET (C#, Visual Basic), Standard C++
App model: UWP, Win32
Packaging: MSIX, AppX for the Microsoft Store, unpackaged
Interop: use WinUI 3 to extend existing WPF, WinForms and MFC apps with modern Fluent UI

WinUI 3.0 should be backward-compatible to Creators Update (15063) on Windows 10, plus limited support on Windows 8.1"
[https://github.com/microsoft/microsoft-ui-xaml/blob/master/docs/roadmap.md]

Beratung & Support

Schulungen zu diesem Thema

 Anfrage für eine individuelle Schulung zum Thema Windows UI Library 3 WinUI3  Gesamter Schulungsthemenkatalog