Zuordnen von UWP-Features zum Windows App SDK
In diesem Thema werden wichtige Featurebereiche in den verschiedenen Formen verglichen, in denen sie in UWP und im Windows App SDK angezeigt werden. Der Inhalt dieses Migrationsleitfadens unterstützt den Wechsel von UWP XAML zu Windows App SDK XAML. Der Wechsel zu einem anderen UI-Framework wie Windows Presentation Foundation (WPF) liegt außerhalb des Anwendungsbereichs dieses Leitfadens.
Funktion | UWP | Windows App SDK (gepackte Anwendungen) | Migrationshinweise |
---|---|---|---|
Verpackung | MSIX App hat Identität |
MSIX App hat Identität |
UWP-Apps, die auf das Windows App SDK migrieren, sollten auf MSIX bleiben, um eine vertrauenswürdige, saubere Installation und Deinstallation sowie den Zugriff auf alle APIs zu gewährleisten, einschließlich derer, die eine Identität erfordern. |
Container | App-Container: - security = LowIL – der Zugriff auf das Dateisystem wird vermittelt – kein Zugriff auf die Registry |
MSIX-Container: – Sicherheit = MediumIL – Zugriff auf das Dateisystem wie der Benutzer, AppData schreibt virtualisiert – HKCU-Registrierung wird virtualisiert |
Der Wechsel zu einer höheren Integritätsstufe mit dem Windows App SDK ermöglicht Ihrer Anwendung eine größere Funktionalität. Achten Sie jedoch auf die Virtualisierung, wenn Sie die Möglichkeiten Ihrer migrierten Anwendung erweitern möchten, um in HKCU oder AppData zu schreiben. |
Aktivierung und Instanzerstellung | Paket-Identität + CoreApplication-Aktivierung, standardmäßig einzeln installiert | Paketidentität, Main/WinMain + Windows App SDK-Aktivierung, standardmäßig mehrstufig | Stellen Sie sicher, dass Ihre Anwendung mit mehreren Instanzen umgehen kann, oder verwenden Sie AppInstance zur Verwaltung Ihrer Instanzen. |
Lebenszyklus-verwaltet | Aussetzen/Wiederaufnahme | Benachrichtigungen zu Energieversorgung/Zustand | Sie können Benachrichtigungen über Energie-/Statusänderungen verwenden, um die Systembelastung zu verringern. |
Hintergrundaufgaben | InProc- und OOP-Hintergrundaufgaben | Inproc COM und OOP Hintergrundaufgaben | Sie können Ihre OOP-Hintergrundaufgaben weiter verwenden. Wenn die Anwendung eine Kommunikation mit Ihrem Hauptprozess erfordert, dann evaluieren Sie Ihren IPC-Mechanismus, da die OOP-Hintergrundaufgabe in LowIL läuft und Ihr Windows App SDK-Hauptprozess in MediumIL läuft. Alle inproc-Hintergrundaufgaben müssen in COM-Hintergrundaufgaben migriert werden - siehe Erstellen und Registrieren einer winmain COM-Hintergrundaufgabe. Für C# OOP-Hintergrundaufgaben, siehe Author Windows Runtime components with C#/WinRT und das Background task sample. |
Windowing | CoreWindow, AppWindow (Vorschau) | HWND, AppWindow v2 | Das Fensterverhalten hat sich im Windows App SDK erheblich geändert. Siehe Migration der Fensterfunktionalität. |
Messaging | CoreDispatcher und DispatcherQueue | DispatcherQueue, WndProc | DispatcherQueue unterstützt Win32-Anwendungen. Weitere Details zur Umstellung von CoreDispatcher auf DispatcherQueue finden Sie unter Migration der Threading-Funktionalität. |
UI-Plattform | System XAML, WebView, DirectX und andere | WinUI 3, Webview2, DirectX und andere | Weitere Informationen finden Sie unter WinUI-Migration. |
Text-Rendering | DirectWrite | DWriteCore | Ermöglicht Anwendungen den Zugriff auf die neuesten DWrite-Funktionen und den Empfang neuer DWrite-Updates unabhängig vom Betriebssystem-Releaseplan. Weitere Informationen finden Sie unter DirectWrite zu DWriteCore Migration. |
Ressourcen | MRT | MRTCore | Weitere Informationen finden Sie unter MRT to MRTCore migration. |
.NET Runtime | .NET Nativ/C# 7 | .NET 6+/C# 9 | Das Windows App SDK bietet Zugang zur modernen .NET-Laufzeitumgebung und zu neuen Sprachfunktionen. Die .NET ReadyToRun-Kompilierung ist jedoch nicht mit der .NET Native-Kompilierung identisch, so dass Sie die Leistungseinbußen abwägen sollten. |
2D Graphics | Win2D | Win2D für WinUI 3 | Wir arbeiten derzeit an einer Version von Win2D, die mit dem Windows App SDK zusammenarbeitet (in Arbeit). Weitere Informationen finden Sie in der Dokumentation. |
Komponenten für Windows-Runtime | Windows-Laufzeitkomponenten-Projektvorlagen für UWP | - C++: Verwenden Sie die Projektvorlage Windows Runtime Component (WinUI 3) . - C#: Verwenden Sie C#/WinRT, um Windows-Laufzeitkomponenten in einer .NET-Klassenbibliothek zu erstellen. |
Wir arbeiten derzeit an der Unterstützung für Author Windows Runtime Components mit C#/WinRT für die Verwendung im Windows App SDK und WinUI 3. |
Weitere Informationen
Zusammenarbeit auf GitHub
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.
Windows developer