Aspekty aplikací napříč architekturami

Možná přicházíte do WinUI 3 z React Native Windows, Elektron, Flutter nebo .NET MAUI. Tato stránka popisuje, co očekávat při cílení na WinUI 3 konkrétně a jak nastavit agenta AI pro úspěch.

Klíčové rozhodnutí: chcete si ponechat multiplatformní shell, nebo vytvořit aplikaci primárně pro Windows? Dejte svému AI agentovi jasně vymezené hranice — která část obchodní logiky zůstane sdílená a které uživatelské rozhraní by mělo být přepsáno do nativního WinUI 3.

React Native pro Windows

React Native pro Windows používá na pozadí vykreslovací vrstvu WinUI. Nativní ovládací prvky Windows můžete integrovat prostřednictvím <WindowsXamlView> nebo NativeModules.

Pro plně nativní prostředí Windows poskytuje přenos přímo do WinUI 3 lepší výkon a úplný přístup k rozhraní API Windows. Udržujte obchodní logiku a služby, ale přepište komponenty uživatelského rozhraní jako XAML a C#.

Úvodní výzva:

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

Elektron

Aplikace Electron jsou webové technologie zabalené do shellu; WinUI 3 je nativní pro Win32. Praktickou přírůstkovou cestou je hostování stávajícího webového uživatelského rozhraní v okně WinUI 3 pomocí WebView2 a následná migrace funkcí do nativních ovládacích prvků v průběhu času.

Úvodní výzva:

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 již cílí na Windows prostřednictvím WinUI 3. Pokud chcete prostředí pouze pro Windows s plným přístupem k funkcím WinUI 3, odeberte MAUI a zaměřte se přímo na WinUI 3.

  • ViewModely a služby lze snadno přenášet
  • MAUI XAML (Microsoft.Maui.Controls.*) potřebuje přepis na WinUI 3 XAML (Microsoft.UI.Xaml.*)
  • Ponechte sdílené knihovny tříd .NET beze změny

Úvodní výzva:

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.

Třepetat

Flutter pro Windows používá vlastní vykreslovací modul, nikoli WinUI 3. Kanály platformy umožňují Flutteru volat nativní rozhraní API Win32 nebo WinRT, ale plnohodnotný port nahrazuje vykreslování Flutteru nativním XAMLem.

Úvodní výzva:

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.

Sdílení kódu napříč platformami

  • Zachování obchodní logiky v samostatné knihovně tříd .NET – je nezávislá na platformě
  • Sdílet knihovnu mezi WinUI 3, MAUI, Blazorem nebo jakýmkoli jiným cílem .NET
  • Opakované použití modelů, služeb a modelů ViewModel před přepsáním uživatelského rozhraní
  • Použití #if WINDOWS podmíněné kompilace pouze jako poslední možnost