Sdílet prostřednictvím


Přehled možností architektury

Tento článek obsahuje informace, které potřebujete, abyste mohli začít vytvářet aplikace pro Windows.

Windows nabízí širokou škálu jazyků, architektur a nástrojů pro vytváření aplikací, včetně WinUI, React Native for Desktop, WPF, C++, C#, .NET a různých platforem. Tady vám poskytneme informace, které vám pomůžou rozhodnout, která možnost je pro vás nejvhodnější.

WinUI

.

Doporučujeme WinUI a sadu Windows App SDK k vytváření aplikací, které vypadají skvěle a využívají nejnovější verze Windows. Pokud s vývojem pro Windows teprve začínáte nebo začínáte pracovat na nové aplikaci pro Windows, Poskytuje WinUI prostředky, které potřebujete k vytvoření skvělých aplikací pro Windows 11.

WinUI je vrstva uživatelského rozhraní založená na značkách XAML, která obsahuje moderní ovládací prvky a styly pro vytváření aplikací pro Windows. Jako nativní vrstva uživatelského rozhraní pro Sadu Windows App SDK zahrnuje Fluent Designa poskytuje každé aplikaci pro Windows elegantní vzhled, který zákazníci očekávají.

Poznámka

Sada Windows App SDK je sada nových vývojářských komponent a nástrojů, které představují nejnovější vývoj v platformě pro vývoj aplikací pro Windows. Sada Windows App SDK poskytuje jednotnou sadu rozhraní API a nástrojů, které lze používat konzistentním způsobem desktopovými aplikacemi ve Windows 11 a nižší úrovní až po Windows 10 verze 1809.

I když je WinUI nativní vrstvou uživatelského rozhraní, můžete použít sadu Windows App SDK s aplikacemi WPF, WinForms nebo Win32. Pokud jste dříve vyvinuli aplikace pro Windows, ale chcete začít se sadou Windows App SDK v existující aplikaci, přečtěte si příručky specifické pro architekturu.

React Native for Desktop

React Native je vývojová platforma, která umožňuje vytvářet multiplatformní aplikace. React Native for Desktop zahrnuje React Native pro Windows a macOS a přináší podporu React Native do sady Windows SDK. React Native for Desktop umožňuje používat JavaScript k vytváření nativních aplikací pro Windows pro všechna zařízení podporovaná windows 10 a Windows 11. To zahrnuje počítače, tablety, 2 in-1s, Xbox, zařízení hybridní reality atd.

Při použití React Native pro Desktop napíšete většinu kódu aplikace nebo veškerý kód aplikace v JavaScriptu (neboli TypeScriptu) a architektura vytvoří nativní aplikaci UPW XAML. Pokud vaše aplikace potřebuje volat rozhraní API platformy, můžete to obvykle provést prostřednictvím některého z mnoha modulů komunity nebo pokud modul ještě neexistuje, můžete snadno napsat nativní modul, který ho zpřístupní.

Tady je několik důvodů, proč si vybrat React Native for Desktop:

  • Chcete co nejvíce sdílet kód napříč platformami nebo máte webové vlastnosti, se kterými chcete sdílet kód.
  • Vylepšená produktivita vývojářů a vnitřní smyčka díky rychlé aktualizaci.
  • Základy vaší aplikace (výkon, přístupnost, internacionalizace) jsou stejně dobré jako nativní aplikace pro UPW.
  • Máte zkušenosti s JavaScriptem nebo TypeScriptem a dáváte přednost jednomu z nich.
  • V npmjs.combyste chtěli využít knihovny jen pro JavaScript a také mnoho nativních knihoven.
  • Vaše aplikace bude používat nativní ovládací prvky, vzhled vizuálu, animace a barvy, a proto se bude cítit integrovaná do jazyka návrhu používaného ve Windows. Kromě toho aplikace React Native pro desktop nemusí dělat kompromisy v sadě rozhraní API, která mohou volat, protože framework umožňuje volat platformová API i psát vlastní správce zobrazení a nativní moduly.
  • Velká a rostoucí komunitní dynamika, s mnoha komunitními moduly.

Další informace o React Native for Desktop najdete na následujících odkazech:

WPF

WPF je dobře zavedená architektura pro desktopové aplikace Windows s přístupem k .NET nebo rozhraní .NET Framework. Podobně jako WinUI používá kód XAML také k oddělení uživatelského rozhraní od kódu. WPF poskytuje komplexní sadu funkcí vývoje aplikací, které zahrnují ovládací prvky, datové vazby, rozložení, 2D a 3D grafiku, animaci, styly, šablony, dokumenty, média, text a typografii. WPF je součástí .NET, takže můžete vytvářet aplikace, které obsahují další prvky rozhraní .NET API.

Kromě toho teď můžete integrovat prostředí sandboxu do zabalených aplikací WPF a poskytnout další vrstvu zabezpečení. Díky nové bezpečnostní funkci izolace aplikací Win32 tato vylepšení nevyžadují žádné změny vašeho kódu.

Spropitné

Pokud jste už investovali do WPF, můžete ho dál používat a využívat možnosti modernizace v .NET 9. Můžete vytvářet aplikace s vědomím, že Microsoft nadále investuje do WPF. Další informace najdete v nejčastějších dotazech pro vývojáře pro Windows.

Pokud máte aplikaci WPF .NET, máte také přístup k moderním funkcím a rozhraním API platformy Windows poskytovaným Windows App SDK. Další informace najdete v tématu Použití sady Windows App SDK v aplikaci WPF a Modernizace desktopových aplikací.

Spropitné

Pokud potřebujete další pomoc s rozhodováním, která architektura je pro vaši aplikaci nejlepší volbou, podívejte se na Zvolit nejlepší aplikační architekturu pro vývojový projekt Windows trénovací modul.

Další možnosti nativní platformy

Mnoho aplikací pro Windows se píše pomocí Win32, Windows Formsnebo UPW. Každý z těchto rámců je podporován a bude nadále dostávat opravy chyb, spolehlivosti a zabezpečení, ale s různou úrovní investic do nových funkcí a stylů. Další informace o těchto typech aplikací najdete na následujících kartách.

Desktopové aplikace Win32 (někdy označované také jako klasické desktopové aplikace) jsou původním typem aplikace pro nativní aplikace pro Windows, které vyžadují přímý přístup k Windows a hardwaru. Díky tomu je Win32 preferovaným typem aplikace pro aplikace, které potřebují nejvyšší úroveň výkonu a přímý přístup k systémovému hardwaru.

Použití rozhraní API Win32 s C++ umožňuje dosáhnout nejvyšší úrovně výkonu a efektivity tím, že převezmete větší kontrolu nad cílovou platformou s nespravovaným kódem, než je možné v prostředí spravovaného runtime, jako jsou WinRT a .NET. Uplatnění takové úrovně kontroly nad prováděním vaší aplikace však vyžaduje větší péči a pozornost, aby bylo správně, a vyměňuje produktivitu vývoje za výkon za běhu.

Tady je několik hlavních informací o tom, co nabízí rozhraní API Win32 a C++, které vám umožní vytvářet vysoce výkonné aplikace.

  • Optimalizace na úrovni hardwaru, včetně těsné kontroly nad přidělováním prostředků, životností objektů, rozložením dat, zarovnáním, balením bajtů a dalšími prostředky.
  • Přístup k sadám instrukcí orientovaným na výkon, jako je SSE a AVX, prostřednictvím vnitřních funkcí.
  • Efektivní, typově bezpečné obecné programování pomocí šablon.
  • Efektivní a bezpečné kontejnery a algoritmy.
  • DirectX, zejména Direct3D a DirectCompute.
  • Pomocí C++/WinRT můžete vytvářet moderní desktopové aplikace Win32 s prvotřídním přístupem k rozhraním API prostředí Windows Runtime (WinRT).

Kromě toho teď můžete integrovat prostředí sandboxu do aplikací Win32 a zajistit tak další vrstvu zabezpečení. Díky nové funkci zabezpečení izolace aplikací Win32 tato vylepšení vyžadují malé až žádné změny ve vašem kódu.

Máte také přístup k moderním funkcím a rozhraním API platformy Windows, které poskytuje sada Windows App SDK. Další informace najdete v tématu Použití sady Windows App SDK v existujícím projektu a Modernizace desktopových aplikací.

Další možnosti pro různé platformy

Pokud potřebujete, aby vaše aplikace byla multiplatformní, měli byste kromě aplikace React Native for Desktop zvážit .NET MAUI neboprogresivní webové aplikace (PWA). Existuje mnoho dalších možností (zde je seznam oblíbených možností), ale toto jsou některé dobré výchozí body.

.NET MAUI využívá výkon WinUI ve Windows a zároveň umožňuje spouštění v jiných operačních systémech. Další multiplatformní možností, Progresivní webové aplikace (PWA) jsou weby, které fungují jako nainstalované, nativní aplikace ve Windows a na jiných podporovaných platformách a fungují jako běžné weby v prohlížečích.

Další informace najdete na následujících kartách.

.NET Multi-platform App UI (MAUI) je opensourcová multiplatformní architektura pro vytváření aplikací pro Android, iOS, macOS a Windows, které využívají nativní uživatelské rozhraní a služby jednotlivých platforem z jediného základu kódu .NET. Vzhledem k tomu, že .NET MAUI upřednostňuje nativní prostředí platformy, používá WinUI a sadu Windows App SDK, aby aplikace získaly nejnovější uživatelské prostředí ve Windows. Díky tomu budou mít vaše aplikace přístup ke všemu, co získáte s WinUI, a také k možnostem přístupu k jiným platformám.

.NET MAUI pro Windows je skvělou volbou v následujících případech:

  • Chcete sdílet co nejvíce kódu .NET napříč mobilními a desktopovými aplikacemi.
  • Chcete rozšířit svou aplikaci z Windows na další desktopové a mobilní platformy s nativními prostředími.
  • Chcete použít jazyk C# nebo XAML k vytváření multiplatformních aplikací.
  • Používáte Blazor pro vývoj webů a chcete zahrnout všechny nebo jeho část do mobilní nebo desktopové aplikace.

Další informace o rozhraní .NET MAUI najdete na následujících odkazech:

Porovnání funkcí architektury vývoje aplikací

Existuje široká škála možností pro vývoj aplikací pro Windows. Nejlepší možnost pro vás závisí na požadavcích vaší aplikace, na vašem stávajícím kódu a na znalostech technologie. Následující tabulka uvádí nejoblíbenější architektury pro vývoj aplikací dostupné ve Windows a funkce podporované jednotlivými architekturami.

Funkce .NET MAUI Blazor Hybrid React Native for Desktop UWP XAML (Windows.UI.Xaml) Win32 (MFC nebo ATL) Windows Forms WinUI 3 WPF
Jazyk C# C# JavaScript, TypeScript C#, C++, Visual Basic C++, Rust C#, Visual Basic C#, C++ C#, Visual Basic
jazyk uživatelského rozhraní XAML nebo kód Břitva JSX XAML Kód Kód XAML XAML
návrhář uživatelského rozhraní
(přetáhnout & a pustit)
ladění uživatelského rozhraní opětovné načítání za provozu opětovné načítání během běhu Rychlé obnovení Automatické přenačtení - Rychlé načtení opětovné načítání za provozu Rychlé načítání
Fluent Design ✅ (prostřednictvím WinUI 2)
.NET .NET .NET Není k dispozici .NET Core & .NET Native Není k dispozici .NET & rozhraní .NET Framework .NET .NET & rozhraní .NET Framework
Windows App SDK ✅ (více informací) přes MAUI ✅ (více informací) ✅ (více informací) ✅ (více informací)
Skvělé pro dotykové obrazovky
platformově nezávislý
aplikace Xbox/HoloLens
Sandboxování (AppContainer)
aktuálně podporované
Příjem aktualizací ✅ (oprava chyby & zabezpečení)
Plán GitHub GitHub GitHub není k dispozici není k dispozici GitHub GitHub GitHub

Přečtěte si další informace o každé z těchto možností:

Další kroky