Wählen Sie Ihren Migrationspfad aus.

Wenn Sie über eine vorhandene WPF-, WinForms- oder Win32-Desktop-App verfügen, haben Sie drei allgemeine Optionen, um sie vorwärts zu bringen. Dieser Leitfaden hilft Ihnen zu entscheiden, welcher Pfad zu Ihrem Projekt passt.

Important

Sie müssen nicht zu WinUI 3 migrieren. WPF und WinForms werden in modernen .NET vollständig unterstützt und erhalten weiterhin Funktionsupdates. Viele Apps werden am besten durch ein Upgrade auf moderne .NET und das inkrementelle Hinzufügen von Windows App SDK Features bereitgestellt, ohne das Benutzeroberflächenframework zu ändern.

Definitionen der auf dieser Seite verwendeten Begriffe finden Sie unter Migrationsterminologie.

Tip

Bevor Sie Code ändern, verwenden Sie Planen Sie Ihre Modernisierung mit einem KI-Assistenten, damit ein KI-Programmierassistent Ihr Projekt analysiert und einen inkrementellen Plan entwirft, der auf dieser Dokumentation basiert.

Entscheidungsübersicht

Entscheidungsstrukturflussdiagramm mit drei Migrationspfaden: Upgrade auf moderne .NET, Modernisieren an Ort und Stelle oder Wechseln zu WinUI 3.

Drei Pfade

Pfad Was ändert sich? Am besten geeignet für: Risikostufe
Upgrade im laufenden Betrieb Runtime (.NET Framework → modernes .NET), Projektdateiformat, einige NuGet-Pakete Apps, die heute gut funktionieren und langfristige .NET Unterstützung, Leistungsverbesserungen oder Zugriff auf moderne .NET-APIs benötigen Niedrig bis Mittel
Direkt in der bestehenden Umgebung modernisieren Nichts – Sie fügen Ihrer vorhandenen App Windows App SDK, WinRT-APIs oder MSIX-Verpackungen hinzu. Apps, die bestimmte Plattformfeatures (Benachrichtigungen, Widgets, KI) benötigen, ohne das Benutzeroberflächenframework zu ändern Niedrig
Zu WinUI 3 wechseln Benutzeroberflächenframework, Namespaces, Steuerelemente, App-Lebenszyklusmodell Apps, für die die UI-Ebene eine Aktualisierung benötigt – unabhängig davon, ob Sie Ansichten inkrementell portieren oder ein neues Projekt starten Mittel-Hoch

Note

Diese Pfade schließen sich nicht gegenseitig aus. Eine häufige Sequenz ist: Upgrade von .NET Framework auf moderne .NET, dann modernisieren, indem sie Windows App SDK Features hinzufügen und später einzelne Ansichten zu WinUI 3 migrieren.

Entscheidungskriterien

Verwenden Sie diese Tabelle, um zu bewerten, welcher Pfad zu Ihrem Projekt passt. Bewerten Sie jede Zeile und sehen Sie, welche Spalte die meisten günstigen Antworten hat.

Kriterium In-Place-Upgrade Modernisierung In-Place Zu WinUI 3 wechseln
Projektgröße (Lösungen mit 10+ Projekten) ✅ Automatisierte Tools behandeln Multiprojektlösungen ✅ Keine Projektumstrukturierung erforderlich ⚠️ Erfordert eine Migrationsplanung für jedes Projekt
.NET Framework-Abhängigkeiten ✅Das primäre Ziel ist es, vom .NET Framework wegzukommen. N/A — Die App bleibt auf der aktuellen Runtime ⚠️ Muss zuerst auf das moderne .NET aktualisiert werden
WCF- oder ASMX-Dienste ⚠️ Erfordert Migration zu CoreWCF ✅ Keine Auswirkungen auf die Dienstebene ⚠– Gleiche WCF-Migration erforderlich
COM-Interoperabilität ⚠️ Gründlich testen — die meisten COM-Interop-Funktionen funktionieren unter modernem .NET ✅ Keine Änderungen erforderlich ⚠️ COM-Interop funktioniert größtenteils; einige WinRT-APIs erfordern eine HWND-Initialisierung
Ui-Steuerelemente von Drittanbietern (Telerik, DevExpress, Syncfusion) ✅Die meisten Anbieter unterstützen moderne .NET ✅ Keine Ui-Änderungen ❌ Anbieter müssen WinUI 3-Versionen anbieten – Kompatibilität überprüfen
Teamkapazität Low-Medium – GitHub Copilot Upgrade kann hilfreich sein, Sie müssen jedoch Abhängigkeiten überprüfen und das Ergebnis überprüfen. Niedrig – inkrementell, keine Frist Hoch – erfordert Ui-Entwicklung und Tests
Visual Studio XAML-Designer ✅ Unterstützung für WPF unter modernem .NET ✅ Unterstützt Für WinUI 3 noch nicht verfügbar
Langfristige .NET-Unterstützung ✅ Gewinnt LTS-Unterstützung und -Leistung ⚠– .NET Framework 4.8 wird unterstützt, empfängt aber nur Sicherheitsupdates. ✅WinUI 3 wird auf modernen .NET ausgeführt (.NET 6 oder höher)

Pfad 1 – Upgrade In-Place (.NET Framework → modernes .NET)

Dieser Pfad behält Ihr Benutzeroberflächenframework (WPF oder WinForms) bei und verschiebt die Laufzeit von .NET Framework in moderne .NET (derzeit .NET 10 LTS). Dies ist die Option mit dem niedrigsten Risiko für die meisten Unternehmens-Apps.

Wann dieser Pfad ausgewählt werden soll

  • Ihre App funktioniert gut auf WPF oder WinForms, und Sie möchten sie auf diese Weise beibehalten.
  • Es besteht eine Anforderung an fortlaufende .NET-Unterstützung, Leistungsverbesserungen oder Zugriff auf moderne .NET-APIs (Span<T>, System.Text.Json, nullfähige Referenztypen).
  • Sie planen, später zu modernisieren, indem Sie Windows App SDK Features hinzufügen.

Wie man anfängt

  1. Verwenden Sie GitHub Copilot Upgrade, um Ihre Lösung zu bewerten und das Upgrade zu planen.
  2. Beheben von Abhängigkeitsproblemen – die meisten NuGet-Pakete verfügen über moderne .NET Versionen.
  3. Adressierung allgemeiner Migrationsblocker wie WCF oder System.Configuration.
  4. Testen Sie gründlich, insbesondere die COM-Interoperabilität und Steuerelemente von Drittanbietern.

KI-Werkzeuge

GitHub Copilot Upgrade kann bei der Bewertung, Planung, Codeänderungen und Validierung helfen. Überprüfen Sie ihre Empfehlungen, und überprüfen Sie jede Änderung in Ihrer App.

Pfad 2 — Vor Ort modernisieren

Dieser Pfad fügt Ihren vorhandenen WPF, WinForms oder Win32-Apps moderne Windows Features hinzu, ohne das Benutzeroberflächenframework zu ändern.

Wann dieser Pfad ausgewählt werden soll

  • Sie benötigen ein bestimmtes Windows-Feature (Benachrichtigungen, Widgets, Windows KI Foundry).
  • Sie möchten Ihr Installationsprogramm durch MSIX ersetzen, um eine saubere Deinstallation und automatische Updates zu ermöglichen.
  • Ihre App befindet sich auf .NET Framework, und Sie können derzeit kein Upgrade durchführen.

Wie man anfängt

Weitere Informationen finden Sie unter Modernisieren Ihrer Desktop-Apps für die drei Modernisierungsansätze (WinRT-APIs, Windows App SDK NuGet, MSIX-Verpackung).

Pfad 3 – Wechseln zu WinUI 3

Dieser Pfad verschiebt die UI-Ebene Ihrer App auf WinUI 3, das systemeigene Benutzeroberflächenframework für moderne Windows-Apps. Sie können vorhandene Ansichten inkrementell portieren oder ein neues WinUI 3-Projekt starten und Ihre Geschäftslogik überführen – entweder ist das Ziel identisch.

Wann dieser Pfad ausgewählt werden soll

  • Sie möchten eine moderne Benutzeroberfläche mit Fluent Design, dunklem Modus und moderner Eingabeunterstützung.
  • Die UI-Ebene Ihrer App ist für eine Aktualisierung fällig.
  • Sie können in die Entwicklung und Testzeit der Benutzeroberfläche investieren.

Wie man anfängt

Important

Eine C#WinUI 3-App erfordert moderne .NET und kann nicht auf .NET Framework abzielen. Wenn Sich Ihre C#-App auf .NET Framework befindet, müssen Sie zuerst ein Upgrade durchführen (Pfad 1), und dann die Benutzeroberfläche migrieren. Eine C++/WinRT WinUI 3-App erfordert keine .NET.

Allgemeine Migrationsblocker

Diese Probleme blockieren oder komplizieren häufig Upgrades und Migrationen. Jede davon erfordert eine spezifische Gegenmaßnahme.

Blocker Auswirkungen Abschwächung
WCF-Dienste WCF-Server ist auf modernen .NET nicht verfügbar. WCF-Client ist über System.ServiceModel-Pakete verfügbar. Migrieren Sie serverseitige WCF zu CoreWCF oder gRPC. Clientseitige WCF funktioniert auf modernen .NET.
ASMX-Webdienste ASMX ist auf modernen .NET nicht verfügbar. Ersetzen Sie durch ASP.NET Core Web-API oder minimale API-Endpunkte.
System.Configuration (app.config) ConfigurationManagerfunktioniert auf modernen .NET über ein Kompatibilitäts-NuGet-Paket, unterstützt jedoch nicht alle Features. Verwenden Sie für neuen Code das Optionsmuster mit appsettings.json. Migrieren Sie vorhandene Einstellungen inkrementell.
COM-Interoperabilität Die meiste COM-Interoperabilität funktioniert mit modernem .NET. Einige Szenarien, die Apartmentthreading oder registrierungsfreie COM umfassen, benötigen Tests. Testen Sie COM-abhängige Features frühzeitig. Verwenden Sie ComWrappers für neuen Interoperabilitätscode .
Ui-Steuerelemente von Drittanbietern Steuerelementanbieter unterstützen WinUI 3 möglicherweise noch nicht. Die meisten unterstützen moderne .NET für WPF und WinForms. Überprüfen Sie die Herstellerdokumentation auf moderne .NET- und WinUI 3-Unterstützung, bevor Sie beginnen. Telerik, DevExpress, Syncfusion und Infragistics veröffentlichen alle Kompatibilitätsmatrizen.
Visual Basic Projekte Visual Basic wird für WPF und WinForms auf modernen .NET unterstützt, der GitHub Copilot Upgradeworkflow unterstützt jedoch Visual Basic Projekte nicht vollständig. Befolgen Sie den manuellen WPF oder Windows Forms Upgradeleitfaden, und überprüfen Sie jedes Projekt.

Siehe auch