Überlegungen zu frameworkübergreifenden Apps

Möglicherweise kommen Sie von React Native Windows, Electron, Flutter oder .NET MAUI zu WinUI 3. Auf dieser Seite wird erläutert, was Sie bei der Zielbestimmung von WinUI 3 erwarten und wie Sie Ihren KI-Agent für den Erfolg einrichten.

Die wichtigste Entscheidung: Möchten Sie eine plattformübergreifende Shell beibehalten oder eine Windows-first-App erstellen? Geben Sie Ihrem KI-Agent eine klare Grenze – welche Geschäftslogik freigegeben bleibt und welche Benutzeroberfläche als systemeigene WinUI 3 neu geschrieben werden soll.

React Native für Windows

React Native für Windows verwendet eine WinUI-Renderingebene unter der Haube. Sie können systemeigene Windows-Steuerelemente über <WindowsXamlView> oder NativeModules integrieren.

Für eine vollständig systemeigene Windows Erfahrung bietet das Direkte Portieren zu WinUI 3 eine bessere Leistung und vollständigen Windows API-Zugriff. Behalten Sie Geschäftslogik und -dienste bei, schreiben Sie jedoch UI-Komponenten als XAML und C# um.

Startaufforderung:

I have a React Native for Windows component. Rewrite it as a WinUI 3 UserControl using C# and XAML.

Elektron

Electron-Apps sind in eine Hülle verpackte Webtechnologien; WinUI 3 ist natives Win32. Ein praktischer inkrementeller Pfad besteht darin, Ihre vorhandene Webbenutzeroberfläche in einem WinUI 3-Fenster mit WebView2 zu hosten und dann Features im Laufe der Zeit zu systemeigenen Steuerelementen zu migrieren.

Startaufforderung:

I have an Electron app. Create a WinUI 3 shell that hosts a WebView2, and show me how to call native Windows APIs from the web layer using window.chrome.webview.postMessage.

.NET MAUI

.NET MAUI zielt bereits auf Windows über WinUI 3 ab. Wenn Sie eine reine Windows-Umgebung mit vollständigem Zugriff auf die WinUI-3-Funktionen möchten, entfernen Sie MAUI und verwenden Sie WinUI 3 direkt als Zielplattform.

  • ViewModels und Dienste lassen sich nahtlos übertragen
  • MAUI XAML (Microsoft.Maui.Controls.*) muss in WinUI 3 XAML neu geschrieben werden (Microsoft.UI.Xaml.*)
  • Freigegebene .NET-Klassenbibliotheken unverändert beibehalten

Startaufforderung:

I have a .NET MAUI ViewModel and service layer. Reuse them in a WinUI 3 project targeting Windows only. Keep the ViewModel unchanged and update only the View.

Flutter

Flutter für Windows verwendet ein eigenes Renderingmodul, nicht WinUI 3. Plattformkanäle ermöglichen es Flutter, native Win32- oder WinRT-APIs aufzurufen, aber ein vollständiger Port ersetzt das Flutter-Rendering durch natives XAML.

Startaufforderung:

I have a Flutter screen with a list and a detail view. Rewrite it as a WinUI 3 page using NavigationView and a master/detail layout.

Gemeinsame Nutzung von Code auf allen Plattformen

  • Verwalten von Geschäftslogik in einer separaten .NET Klassenbibliothek – plattformagnostisch
  • Freigeben dieser Bibliothek zwischen WinUI 3, MAUI, Blazor oder einem anderen .NET Ziel
  • Wiederverwenden von Modellen, Diensten und ViewModels vor dem Umschreiben der Benutzeroberfläche
  • Verwenden der #if WINDOWS bedingten Kompilierung nur als letztes Mittel