GUI-Anwendungsentwicklung: Windows App SDK 1.1 mit mehr Fenstern und Rechten

Verspätet ist Windows App SDK 1.1 nun erschienen. Es unterstützt u.a. mehrere Fenster im gleichen UI-Thread und die Anwendungsausführung mit erhöhten Rechten.

Lesezeit: 5 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 1 Beitrag

(Bild: pio3/Shutterstock.com)

Von
  • Dr. Holger Schwichtenberg

Das Windows App SDK, dessen Kernbaustein die Windows UI Library 3 ist, stellt aus der Sicht von Microsoft die Zukunft der GUI-Anwendungsentwicklung unter Windows dar. Nachdem es bereits mit der Versionsnummer 0.5 im April 2021 (ungewöhnlicherweise) eine "Go-Live"-Lizenz gab, kam die erste halbwegs praxisreife Version 1.0 am 16. November 2021 (siehe Review in iX 3/2002). Anders als die Vorgänger WinUI1 und WinUI2 läuft WinUI3 auf der Windows 32-API und nicht auf der immer per Sandbox beschränkten Universal Windows Platform (UWP) mit der Windows Runtime API (WinRT).

Die Windows UI Library 3 im Vergleich zu anderen Windows-GUI-Frameworks (Abb. 1).

Laut Dokumentation sollte die Version 1.1 des Windows App SDK am 24. Mai, also während der Microsoft Build-Konferenz 2022 erscheinen. Tatsächlich gibt es die Release-Version aber erst seit dem 3. Juni 2022 auf GitHub. Die neue Version ist mit .NET 5.0 (SDK-Versionen 5.0.213 und 5.0.407) und .NET 6.0 (SDK-Version 6.0.104 und 6.0.202) nutzbar.

Das SDK wird wie bisher für Entwicklerinnen und Entwickler in Form einer Erweiterung für Visual Studio ausgeliefert; zudem gibt es die Runtime auch einzeln zum Download. Für die Verbreitung der Runtime muss laut Release Notes auf den Zielsystemen weiterhin das Sideloading von Anwendungen (via Windows Developer Mode mit der Option "Install apps from any source, including loose files") aktiviert sein.

Versionsgeschichte des Windows App SDK in der Dokumentation (Abb. 2). []

(Bild: Microsoft)

Für die Umstellung einer bestehenden Anwendung von der bisherigen Version 1.0.x auf Version 1.1 ist, wie in Abbildung 3 zu sehen, das Ausführen eines NuGet-Updates erforderlich.

NuGet-Update von Windows App SDK Version 1.0 auf 1.1 (Abb. 3).

Mit der nun erschienen Version 1.1 will Microsoft einige der verblieben Lücken schließen. Eine auf Windows App SDK 1.1 aufsetzende Anwendung kann mehrere WinUI3-Fenster im gleichen UI-Thread starten. Das Feature war seit Version 1.0.1 enthalten, aber nicht als stabil freigegeben. WinUI3 unterstützt zudem die Design-Materialien Acrylic und Mica für Windows 11 mit Klassen im Namensraum Microsoft.UI.Composition.SystemBackdrops. Zudem können Entwickler die Überlagerung von Fenstern (Z-Order) direkt per WinRT-API steuern. Bisher war dafür die alte SetWindowPos-Funktion aus dem Win32-API notwendig. Darüber hinaus haben Entwicklerinnen und Entwickler nun mehr Einfluss auf die Größe der Titelleiste eines Fensters.

Desktop-Benachrichtigungen mit Rücksprungpunkten in die Anwendung sind nun auch in C++-basierten WinUI3-Anwendungen möglich; bisher war dies .NET-basierten Anwendungen vorbehalten, die dafür das Windows Community Toolkit (WCT) nutzen konnten (dieser Weg funktioniert in .NET auch weiterhin).

Neue APIs im Windows App SDK (s. Abb. 4) ermöglichen den Neustart von Anwendungen per Programmcode und die Veränderungen von Umgebungsvariablen zur Laufzeit. Letzteres ist laut Release Notes aber nur unter Windows 11 möglich. Auch die Performance des Windows App SDK will Microsoft in Version 1.1 gesteigert haben. Push-Nachrichten sind auch für Anwendungen möglich, die nicht über den Microsoft App Store verbreitet werden.

Vergleich von Windows App SDK 1.0 und 1.1 (Abb. 4).

(Bild: Microsoft)

Genau wie C++- können auch C#-Entwickler nun sogenannte "Windows Runtime Components" einschließlich selbstentwickelter Steuerelemente für WinUI3 schreiben. Diese Komponenten sind dann auch in C++ nutzbar.

Beim Verbreiten einer Anwendung können Entwickler nun alle notwendigen Teile von .NET-Laufzeitumgebung, Windows App SDK-Nuget-Pakete und der eigenen Anwendung in ein Verzeichnis bündeln, sodass eine "Self-contained App" ohne Installationsvoraussetzungen entsteht. Allerdings funktioniert [] das Verbreiten von Self-Contained Applications per MSIX laut Release Notes nicht.

Genau wie bei Windows-Anwendungen, die auf MFC, Windows Forms oder Windows Presentation Foundation (WPF) basieren, können Nutzer die Anwendung nun "als Administrator" (alias: "elevated") mit erhöhten Rechten für den Ressourcenzugriff starten. Voraussetzung dafür ist Microsoft zufolge ein Betriebssystemupdate KB5013943 für Windows 10 sowie Windows 11.

Die neuen Desktop-Benachrichtigungen funktionieren laut Release Notes aber nicht in Apps, die "als Administrator" gestartet wurden.

Lesen Sie auch

Im Windows App SDK 1.1 fehlen aber weiterhin für typische Geschäftsanwendungen wichtige Funktionen wie die Eingabevalidierung für Textfelder und Druckfunktionen. Drittanbieter füllen diese Lücken jedoch (s. Abb. 5). Der Hersteller Developer Express etwa bietet seine WinUI3-Steuerelemente bis zum 1.12.2022 kostenfrei an.

Eingabevalidierung mit den WinUI3-Steuerelementen von Developer Express (Abb. 5).

Auch Stifteingabe, Medienwiedergabe, Kameraaufnahmen und Kartendarstellungen fehlen, wie sich der Roadmap entnehmen lässt. Zudem kann man WinUI3-Steuerelemente bisher nur in Windows App SDK-basierten Anwendungen nutzen. Die Vorgänger in der Windows UI Library 2 kann man in ältere Anwendungsarten (MFC, WPF und Windows Forms) via "XAML Island" einbinden. Eine Parität zu WinUI2/UWP strebt Microsoft erst ab 2023 an.

WinUI3 will Microsoft – entgegen früherer Ankündigungen – nicht mehr auf der UWP-Platform anbieten. Der .NET Upgrade Assistant unterstützt nun auch bei der Umstellung von UWP/WinUI2 auf Windows App SDK/WinUI3.

Einzelne Funktionen rüstet Microsoft aber noch in UWP/WinUI2 nach. So wurde im Rahmen der Build-Konferenz angekündigt, dass "bald" die einsatzreife Version des auf dem Chromium-Edge-Browser basierenden WebView2-Steuerelements erscheinen wird. Dieses UWP-Steuerelement gibt es seit Mitte 2021 als Vorabversion.

(map)