Pertimbangan aplikasi lintas kerangka kerja

Anda mungkin akan datang ke WinUI 3 dari React Native Windows, Electron, Flutter, atau .NET MAUI. Halaman ini membahas apa yang diharapkan saat menargetkan WinUI 3 secara khusus, dan cara menyiapkan agen AI Anda agar sukses.

Keputusan utama: apakah Anda ingin menyimpan shell lintas platform, atau membangun aplikasi Windows-first? Beri agen AI Anda batas yang jelas — logika bisnis mana yang tetap dibagikan, dan UI mana yang harus ditulis ulang sebagai WinUI 3 asli.

React Native untuk Windows

React Native untuk Windows menggunakan lapisan rendering WinUI di balik layar. Anda dapat mengintegrasikan kontrol Windows asli melalui <WindowsXamlView> atau NativeModules.

Untuk pengalaman Windows yang sepenuhnya asli, porting langsung ke WinUI 3 memberikan performa yang lebih baik dan akses API Windows penuh. Pertahankan logika dan layanan bisnis, tetapi tulis ulang komponen UI sebagai XAML dan C#.

Prompt awal:

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

Elektron

Aplikasi elektron adalah teknologi web yang dibungkus dalam shell; WinUI 3 adalah Win32 asli. Pendekatan bertahap yang praktis adalah menjalankan UI web Anda yang sudah ada dalam jendela WinUI 3 menggunakan WebView2, lalu memigrasikan fitur ke kontrol native secara bertahap.

Prompt awal:

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 sudah menargetkan Windows melalui WinUI 3. Jika Anda menginginkan pengalaman khusus Windows dengan akses penuh ke kemampuan WinUI 3, hapus MAUI dan target WinUI 3 secara langsung.

  • ViewModels dan layanan dapat dipindahkan dengan mulus
  • MAUI XAML (Microsoft.Maui.Controls.*) perlu ditulis ulang ke WinUI 3 XAML (Microsoft.UI.Xaml.*)
  • Pertahankan pustaka kelas .NET bersama sebagaimana adanya

Prompt awal:

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 untuk Windows menggunakan mesin rendering sendiri, bukan WinUI 3. Saluran platform memungkinkan Flutter memanggil API Win32 atau WinRT asli, tetapi port lengkap menggantikan rendering Flutter dengan XAML asli.

Prompt awal:

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.

Berbagi kode di seluruh platform

  • Simpan logika bisnis dalam pustaka kelas .NET terpisah — tidak bergantung pada platform
  • Bagikan pustaka tersebut antara WinUI 3, MAUI, Blazor, atau target .NET lainnya
  • Menggunakan kembali model, layanan, dan ViewModels sebelum menulis ulang UI
  • Gunakan #if WINDOWS kompilasi bersyarat hanya sebagai pilihan terakhir