Çerçeveler arası uygulamayla ilgili dikkat edilmesi gerekenler

React Native Windows, Electron, Flutter veya .NET MAUI'dan WinUI 3'e geliyor olabilirsiniz. Bu sayfada WinUI 3'e özel olarak hedeflendiğinde neler bekleyebileceğiniz ve yapay zeka aracınızı başarı için nasıl ayarlayacağınız açıklandı.

Kilit karar: platformlar arası bir kabuğu korumak mı, yoksa Windows öncelikli bir uygulama geliştirmek mi istiyorsunuz? Yapay zekâ aracınıza net bir sınır çizin: hangi iş mantığının ortak kalacağını ve hangi kullanıcı arabiriminin yerel WinUI 3 ile yeniden yazılması gerektiğini belirleyin.

Windows için React Native

Windows için React Native, arka planda bir WinUI işleme katmanı kullanır. yerel Windows denetimlerini <WindowsXamlView> veya NativeModules aracılığıyla tümleştirebilirsiniz.

Tamamen yerel Windows deneyimi için, doğrudan WinUI 3'e taşıma daha iyi performans ve tam Windows API erişimi sağlar. İş mantığını ve hizmetlerini koruyun, ancak kullanıcı arabirimi bileşenlerini XAML ve C# olarak yeniden yazın.

Başlangıç istemi:

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

Elektron

Electron uygulamaları, bir kabuk içine sarılmış web teknolojileridir; WinUI 3, yerel Win32'dir. Pratik bir artımlı yol, WebView2 kullanarak mevcut web kullanıcı arabiriminizi WinUI 3 penceresinde barındırmak ve ardından zaman içinde özellikleri yerel denetimlere geçirmektir.

Başlangıç istemi:

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 zaten WinUI 3 aracılığıyla Windows hedeflemektedir. WinUI 3 özelliklerine tam erişimle yalnızca Windows bir deneyim istiyorsanız MAUI'yi kaldırın ve winUI 3'i doğrudan hedefleyin.

  • ViewModel'ler ve hizmetler sorunsuzca taşınır
  • MAUI XAML (Microsoft.Maui.Controls.*), WinUI 3 XAML'ye (Microsoft.UI.Xaml.*) yeniden yazılması gerekiyor
  • Paylaşılan .NET sınıf kitaplıklarını olduğu gibi bırakın

Başlangıç istemi:

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 for Windows, WinUI 3 değil kendi işleme altyapısını kullanır. Platform kanalları Flutter'ın yerel Win32 veya WinRT API'lerini çağırmasına izin verir, ancak tam bağlantı noktası Flutter işlemesini yerel XAML ile değiştirir.

Başlangıç istemi:

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.

Platformlar arasında kod paylaşma

  • İş mantığını ayrı bir .NET sınıf kitaplığında tutun; platformdan bağımsızdır
  • Bu kitaplığı WinUI 3, MAUI, Blazor veya başka bir .NET hedefi arasında paylaşın
  • Kullanıcı arabirimini yeniden yazmadan önce modelleri, hizmetleri ve ViewModel'leri yeniden kullanma
  • Koşullu derlemeyi yalnızca son çare olarak kullanma #if WINDOWS