nejčastější dotazy k vývoji aplikace pro Windows

Tyto nejčastější dotazy poskytují odpovědi na běžné otázky týkající se vývoje Windows aplikací, včetně pokynů k výběru správné architektury pro vaše projekty. Probíraná témata zahrnují:

  • Začínáme a prostředí vývoje aplikací pro Windows.
  • Nativní vývoj aplikací jen pro Windows pomocí WinUI 3, Windows Presentation Foundation (WPF (Windows Presentation Foundation)) a model Windows Forms (WinForms).
  • Windows Software Development Kit (SDK) a Windows App SDK.
  • Cílení Windows jako součást strategie vývoje pro různé platformy.
  • Vývoj hybridních a webových aplikací s využitím .NET MAUI, Blazoru a ASP.NET Core
  • Jak zvolit přístup při pochopení investic do Microsoft

Vývoj aplikací pro Windows

Kdy najdu jednoduchý přehled vývojových technologií Windows?

Chcete-li získat přehled o dnešních možnostech pro vývojáře pro Windows, podívejte se na epizodu Windows Dev Chat Jak si vybrat ideální vývojovou platformu, ve které se probírají WinUI 3, .NET MAUI, React Native, Blazor a progresivní webové aplikace (PWA). Další epizody najdete v seznamu Windows dev chatu.

Můžete se také podívat na přehled možností vývoje aplikací pro vývojáře Windows.

Proč je vývoj klientských aplikací stále zásadní pro moderní digitální transformaci v éře cloudových služeb?

Ve věku cloudových služeb zůstává vývoj klientských aplikací důležitý pro zajištění responzivních a smysluplných interakcí na uživatelských zařízeních.

Tady je důvod, proč na klientských aplikacích záleží:

  • Dosah zařízení: Klientské aplikace umožňují přenést aplikaci přímo uživatelům na jejich zařízeních podle vlastního výběru.
  • Brána k inteligentním službám: klientské aplikace jsou často první interakce, kterou uživatelé mají s vašimi službami. Nabízejí bohaté interaktivní rozhraní, které umožňuje prezentovat inteligentní funkce a odlišit váš produkt od ostatních.
  • Scalability with Cloud Integration: Dobře integrovaná klientská aplikace se může snadno synchronizovat s back-endovými cloud services, což umožňuje access dat v reálném čase a bezproblémovou škálovatelnost při růstu uživatelské základny.
  • vyšší produktivita a věrnost uživatelů: promyšleně navržená aplikace může zvýšit produktivitu a udržet uživatele v zapojení do vašeho produktu nebo služby v průběhu času.

Vývoj nativních aplikací jen pro Windows

Co je Windows App SDK?

Windows App SDK poskytuje nezávisle obsluhované komponenty pro desktopové aplikace Windows, včetně WinUI 3, životního cyklu aplikací, oken, oznámení, prostředků a textových rozhraní API. Podporuje aplikace, které běží na Windows 10, verzi 1809 a novějších, v závislosti na životním cyklu podpory verze Windows a Windows App SDK verze.

Co je rozdíl mezi Windows App SDK a sadou SDK Windows?

Obě jsou sady SDK (software development kit), které umožňují vytvářet Windows aplikace.

Windows App SDK poskytuje komponenty, které se dodávají nezávisle na Windows a fungují napříč podporovanými verzemi Windows až do Windows 10 verze 1809. Zahrnuje winui 3 a rozhraní API pro životní cyklus aplikací, okna, oznámení, prostředky, text a další funkce.

Sada Windows SDK poskytuje hlavičky, knihovny, metadata a nástroje pro rozhraní API operačního systému, jako jsou Win32, WinRT, COM, DirectX, zařízení a možnosti prostředí.

Windows App SDK nenahrazuje sadu Windows SDK. Aplikace, které přecházejí na Windows App SDK, můžou dál používat rozhraní API sady Windows SDK a aplikace WinUI 3 běžně používají obojí.

Vytvářím nový tým pro vývoj aplikace jen pro Windows. Proč se mám rozhodnout vyvíjet s nativní architekturou Windows, jako je WinUI 3, WPF (Windows Presentation Foundation) nebo WinForms?

Tady je několik důvodů, proč zvolit nativní architekturu Windows pro aplikaci jen pro Windows:

  • Performance: Nativní architektury Windows jsou optimalizované tak, aby využívaly moderní hardware Windows a poskytovaly rychlé a responzivní uživatelské prostředí.
  • Integration: Windows se dodává s širokou škálou rozhraní API, která umožňují sofistikovaná prostředí dostupná jenom na Windows. Nativní architektury poskytují hlubokou integraci s těmito funkcemi a rozhraními API.
  • Native user experience: Native frameworks poskytují konzistentní prostředí napříč zařízeními Windows a zajišťují, aby vaše aplikace vypadala a fungovala skvěle všude.
  • Podpora offline: Nativní architektury podporují offline scénáře, které aplikacím umožňují fungovat i bez připojení k internetu.
  • Podpora a nástroje: Microsoft udržuje nativní architektury a poskytuje aktuální sady SDK, dokumentaci, nástroje pro ladění a ukázky.
**
Který framework mám použít, abych využil nejnovější investice Microsoftu do vývoje aplikací pro Windows?

Pokud vytváříte novou desktopovou aplikaci pro obecné účely Windows, doporučujeme použít WinUI 3. WinUI 3 je nativní architektura uživatelského rozhraní dodávaná s Windows App SDK. Podporuje Windows desktopové aplikace a poskytuje přístup k aktuálním ovládacím prvkům Fluent a možnostem platformy Windows.

Můžu v existující aplikaci Windows používat Windows App SDK / WinUI 3?

Mějte na paměti, že WinUI 3 (architektura uživatelského rozhraní) se dodává s Windows App SDK (architektura pro vývoj platformy Windows).

Uživatelské rozhraní aplikace můžete migrovat na WinUI 3 nebo můžete k hostování ovládacích prvků Windows App SDK v podporovaném stávajícím hostiteli plochy použít ostrovy WinUI XAML. Starší systém XAML Islands obsahuje ovládací prvky UWP XAML a používá různá rozhraní API.

Prvky Windows App SDK lze často používat v desktopových aplikacích v závislosti na tom, jak byla existující aplikace vytvořena. Aplikace pro UPW nejsou podporovány Windows App SDK.

To znamená, že aplikace WPF (Windows Presentation Foundation)/ MFC/WinForms můžou používat Windows App SDK rozhraní API, která nesouvisejí s WinUI 3. Mezi příklady patří životní cyklus aplikace, okna a oznámení aplikací.

Další informace najdete v tématu Použití Windows App SDK v existujícím projektu.

Musím k vytváření aplikací WinUI 3 používat Visual Studio?

Ne. Sestavení WinUI 3 XAML používají nástroj MSBuild, ale můžete sestavovat pomocí sady .NET SDK a aktuálních šablon WinUI 3 z příkazového řádku v jiném editoru. Podívejte se na rychlý start příkazového řádku.

Visual Studio 2026 poskytuje nejkomplexnější integrované prostředí pro úpravy kódu, ladění, profilování a XAML Opětovné načítání za provozu. Použijte pracovní postup, který odpovídá vašim požadavkům na nástroje.

Při spuštění aplikace se zobrazí chyba Nejde načíst knihovnu DLL Microsoft.ui.xaml.dll. Jak to opravit?

K této chybě obvykle dochází ve scénářích aplikace unpackaged, ve kterých se na počítači nenainstaloval modul runtime Windows App SDK. Vyzkoušejte následující kroky:

  • Pokud používáte balenou aplikaci (doporučenou výchozí hodnotu), ujistěte se, že ji spouštíte prostřednictvím Visual Studio s vybraným profilem spuštění MsixPackage (nikoli s profilovým spustitelným souborem). Krok balení MSIX nainstaluje požadované součásti modulu runtime.
  • Pokud používáte nebalenou aplikaci závislá na rozhraní, nainstalujte odpovídající Windows App SDK runtime. Samostatně nasazovaná aplikace zahrnuje své závislosti na sadě Windows App SDK.
  • Ověřte, že váš projekt odpovídá vašemu modelu nasazení. U běžné nebalené aplikace .NET nastavení <WindowsPackageType>None</WindowsPackageType> umožňuje automatickou inicializaci modulu runtime sady Windows App SDK. Rozhraní API bootstrapperu používejte přímo pouze v případě, že potřebujete explicitní kontrolu nad dynamickou inicializací závislostí.

Další podrobnosti o požadavcích na nasazení najdete v tématu Nasazení aplikací, které používají Windows App SDK.

Jaký je rozdíl mezi WinUI 3 a WinUI 2 pro UPW?

WinUI 3 je Microsoft aktuální nativní architektura uživatelského rozhraní pro desktopové aplikace Windows a dodává se jako součást Windows App SDK.

WinUI 2, označovaný také jako WinUI pro UPW, je knihovna ovládacích prvků a stylů pro aplikace pro UPW. WinUI 2 a WinUI 3 používají různé obory názvů XAML a nejsou binární kompatibilní.

Když vytvářím aplikaci pomocí Windows App SDK a WinUI 3, vytvářím aplikaci WinUI?

Ano. Aplikace WinUI 3 je nejjasnější termín pro aplikaci, jejíž uživatelské rozhraní používá WinUI 3 a Windows App SDK. Aplikace WinUI se také běžně používá v případech, kdy je kontext jednoznačný.

Můžu postupně aktualizovat aplikaci pro UPW pomocí WinUI pro ovládací prvky UPW na WinUI 3 postupným nahrazením ovládacích prvků?

Ne. Windows App SDK nejde použít v aplikacích pro UPW a WinUI pro UPW nejde kombinovat s WinUI 3. Viz Migrace z UPW do Windows App SDK.

Jak těžké je migrovat aplikaci pro UPW na WinUI 3?

UWP a WinUI 3 sdílejí mnoho konceptů XAML, ale migrace není jen přímou změnou jmenného prostoru. Náklady závisí především na:

  1. Projektový soubor a přizpůsobení nástroje MSBuild: Migrace se může lišit v závislosti na pokročilém použití nástroje MSBuild.
  2. migrace rozhraní API .NET: Aplikace pro UPW, které používají .NET Native, se můžou přesunout do aktuálně podporované verze .NET s nativní AOT. Tato modernizace je oddělená od migrace uživatelského rozhraní na WinUI 3.
  3. Knihovny komponent uživatelského rozhraní: Knihovny musí mít verze určené pro WinUI 3.
  4. Rozhraní API pro práci s okny a aplikační model: Rozhraní API UWP svázaná s koncepty, jako jsou CoreWindow, ApplicationView nebo GetForCurrentView, vyžadují náhrady v sadě Windows App SDK nebo jiný desktopový přístup.
  5. Projekce jazyka C++: Pokud aplikace pro UPW používá nahrazenou projekci C++/CX, portujte tento kód do C++/WinRT.

Další informace najdete v tématu Migrace z UWP do Windows App SDK a v článku Mapování rozhraní API z UWP na Windows App SDK.

Pokud mám existující aplikaci pro UPW ve Storu, můžu publikovat novou zabalenou aplikaci WinUI 3 pomocí stejných identifikátorů?

Ano, upgradované aplikace je možné publikovat bez aktualizace identity aplikace. Uživatelé staré verze se aktualizují na novou verzi. To platí jenom pro desktopové aplikace. aplikace Xbox, HoloLens a standardní aplikace Surface Hub se nedají migrovat na WinUI 3.

Jak zabalím nebo distribuuji aplikaci WinUI 3?

Viz přehled nasazení .

Kde najdu pokyny k migraci Windows App SDK?

Viz Migrace z UPW do Windows App SDK.

Musím použít kód XAML, pokud chci použít WinUI 3?

Ne. Ovládací prvky uživatelského rozhraní lze vytvořit v kódu. Reprezentace uživatelského rozhraní v deklarativním kódu XAML ale nabízí mnoho výhod, včetně vylepšeného vývojářského prostředí.

  • Migrace z UPW na WinUI 3: Mnoho konceptů XAML a uživatelského rozhraní se přenáší, ale obory názvů, projektový model a některá rozhraní API se liší.
  • Migrace z WPF (Windows Presentation Foundation) na WinUI 3: Mnoho konceptů se přenáší, ale sada ovládacích prvků a rozhraní API se liší.
Má Visual Studio návrhovou plochu nebo návrhář uživatelského rozhraní pro WinUI 3?

V současné době ne. Pomocí Opětovné načítání za provozu XAML, dynamického vizuálního stromu, Průzkumníka živých vlastností a souvisejících nástrojů modulu runtime můžete kontrolovat a aktualizovat XAML během spuštění aplikace.

Kompletní návod k nástrojům pro návrh modulu runtime dostupným pro WinUI 3 najdete v tématu Nástroje pro návrh modulu runtime XAML pro WinUI 3.

Zahrnuje Windows App SDK WinUI 3?

Ano. WinUI 3 se dodává jako součást sady Windows App SDK.

Zahrnuje Windows App SDK WinUI pro UWP?

Ne. WinUI pro UPW je součástí platformy UPW.

Jsou WinUI pro UPW a WinUI 3 postavené na stejné technologii?

Ani ne. Ačkoli WinUI 3 vychází z kódové základny WinUI pro UWP, jde o odlišné technologie. Oba jsou architektury uživatelského rozhraní založené na XAML, které fungují napříč .NET a C++, ale WinUI pro UPW a WinUI 3 nejsou vzájemně kompatibilní.

Můžu používat WinUI 3 bez použití Windows App SDK?

Ne. WinUI 3 se dodává jako součást sady Windows App SDK.

Můžu použít WinUI 3 v rozbalené aplikaci?

Ano. WinUI 3 a mnoho rozhraní API sady Windows App SDK funguje v nezabalených aplikacích. Některé funkce Windows však vyžadují identitu balíčku a nebalené aplikace závislé na rozhraní musí inicializovat běhové prostředí sady Windows App SDK. Porovnejte možnosti v přehledu balíčků a funkcích, které vyžadují identitu balíčku.

Jaký je rozdíl mezi ostrovy XAML a WinUI 3?

WinUI 3 je architektura uživatelského rozhraní zahrnutá v Windows App SDK. Ostrovy XAML jsou technika hostování, která umožňuje stávající desktopové aplikaci umístit obsah XAML spolu s uživatelským rozhraním z jiné architektury.

Termín může označovat starší systémové komponenty XAML Islands, které hostují ovládací prvky UWP XAML, nebo komponenty WinUI XAML Islands, které hostují ovládací prvky Windows App SDK v podporovaných desktopových hostitelích. Rozhraní API, obory názvů a požadavky na hostitele se liší.

Pokud vytvořím aplikaci WinUI 3, bude vypadat moderně na Windows 11 i Windows 10?

Ovládací prvky WinUI 3 používají styling Fluent v podporovaných verzích Windows 10 a Windows 11 v zabalených i rozbalených aplikacích. Některé účinky a chování operačního systému se liší podle verze Windows. Mica je například k dispozici na Windows 11 a vrací se k plné barvě na Windows 10.

Mohou se v aplikacích vytvořených pomocí Windows App SDK používat pozadí Mica nebo Acrylic?

Ano. Desktop Akryl je podporován na Windows 10, verze 1809 a novější. Mica vyžaduje Windows 11 a ve Windows 10 použije jednolitou barvu motivu. Za běhu zavolejte MicaController.IsSupported nebo DesktopAcrylicController.IsSupported před použitím pozadí. Viz Použití materiálů Mica nebo Acrylic v desktopových aplikacích pro Windows 11.

Kde najdu ukázky WinUI 3?

Viz Ukázky a prostředky. Některá použitelná úložiště:

Pokud jsem již investoval do WPF (Windows Presentation Foundation), mám dál používat WPF (Windows Presentation Foundation) nebo zvážit migraci na WinUI 3?

Pokud jste už investovali do WPF (Windows Presentation Foundation), můžete ho dál používat pro stávající aplikace. WPF (Windows Presentation Foundation) je vyspělá stabilní architektura, která se běžně používá k vytváření Windows desktopových aplikací.

K posouzení a upgradu aplikace WPF (Windows Presentation Foundation) pro .NET Framework na moderní .NET použijte funkci GitHub Copilot Upgrade. Zkontrolujte vygenerovaný plán a ověřte každou změnu v aplikaci.

Pokud vytvořím novou aplikaci WPF (Windows Presentation Foundation), bude vypadat zastarale v porovnání s jinými novými aplikacemi Windows?

Při vývoji WPF (Windows Presentation Foundation) aplikace s .NET 9 nebo novějším můžete zajistit, aby vaše aplikace odpovídala elegantnímu a modernímu vzhledu Windows 11. Nový motiv Fluent pro WPF (Windows Presentation Foundation) představuje moderní estetiku Windows 11 s integrovaným světlým/tmavým režimem a podporou systémových barev zvýraznění. Tím se modernizuje vzhled vaší aplikace a přináší elegantní a soudržné uživatelské prostředí.

Můj tým si dobře rozumí s vývojem aplikací ve WinForms a tento přístup vyhovuje našim potřebám. Měli bychom zvážit migraci na WinUI 3 nebo jiný framework?

Pokud WinForms splňuje vaše potřeby a váš tým je s ním obeznámený, můžete i nadále používat WinForms pro stávající aplikace. WinForms je vyspělá a stabilní architektura široce používaná pro vývoj Windows desktopů.

Tým WinForms nadále investuje do platformy. Mezi poslední a probíhající práce patří:

  • Asynchronní rozhraní API formuláře a dialogových oken
  • Podpora tmavého režimu a vizuálního stylu
  • Vylepšení přístupnosti, vysokého DPI, rozložení a návrháře
  • Schránka a DataObject modernizace

Vývoj nativních aplikací pro různé platformy

Co jsou některé důvody pro vytváření multiplatformních nativních aplikací, které cílí na Windows?

Pokud cílíte na uživatele na více platforem operačního systému, vytváření multiplatformních aplikací pomocí .NET MAUI nebo React Native může přinést několik výhod:

  • Dosáhnout: Multiplatformní aplikace se dostanou k většímu publiku napříč různými zařízeními a operačními systémy.
  • Opakované použití kódu: Opětovné spuštění kódu napříč platformami zkracuje čas a náklady na vývoj. Vytváření samostatných aplikací pro Windows, Android, iOS a macOS může být příliš nákladné.
  • Konzistentní uživatelské prostředí: Multiplatformní architektury pomáhají zajistit konzistentní vzhled a chování napříč platformami.
  • Integrace: Multiplatformní aplikace se stále můžou integrovat se službami specifickými pro danou platformu, aby poskytovaly komplexní prostředí.
Mohu si být jistý, že aplikace .NET MAUI budou dobře fungovat ve Windows?

Když sestavíte .NET MAUI aplikaci pro Windows, výstup použije WinUI 3. Během vývoje nabízí .NET MAUI jediné .NET prostředí napříč platformami, ale generuje kód specifický pro platformu pod kapotou.

W může .NET MAUI poskytovat nativní rozhraní API zařízení na všech platformách?

.NET MAUI poskytuje jednotné prostředí .NET napříč Windows, iOSem, Androidem a macOS. Nabízí rozhraní API pro různé platformy pro běžné funkce, jako jsou úložiště, sítě a senzory zařízení. Můžete také volat rozhraní API specifická pro danou platformu nebo poskytovat specializované implementace pro každou platformu.

Můžu začít s WinUI 3 a později integrovat .NET MAUI, pokud chci nakonec cílit na scénáře pro různé platformy?

V tuto chvíli ne. I když .NET MAUI při spuštění na Windows používá WinUI 3, týmy, které očekávají cílení na více platforem, by měly začít s .NET MAUI nebo React Native for Desktop.

Náš tým má silné webové front-endové vývojové dovednosti. Měli bychom zvážit použití React Native pro Desktop?

Týmy se silným vývojovým prostředím pro web můžou chtít zvážit React Native for Desktop. Zahrnuje React Native pro Windows a macOS. Díky přístupu "Learn once, write anywhere" (Jednou naučte se psát kdekoli), stávající dovednosti JavaScriptu, TypeScriptu a Reactu se dají použít k vytváření nativních Windows a aplikací pro macOS.

React Native for Desktop vykresluje uživatelské rozhraní přímo na nativní primitivy a poskytuje nativní výkon a možnosti platformy.

Informace o get started najdete v dokumentaci k React Native for Desktop.

Jsou nějaká další zařízení Windows podporována React Native for Desktop?

React Native pro Windows podporuje verze Windows uvedené v dokumentaci k kompatibilitě. Ověřte podporu rodiny zařízení pro verzi React Native pro Windows, na kterou cílíte, a ne za předpokladu, že je podporováno každé Windows zařízení.

Co mám použít, pokud chci vytvářet aplikace, které pracují na Windows a Xbox?

Pro aplikaci pro Xbox použijte UWP a zohledněte omezení UWP specifická pro Xbox. Pro vývoj her použijte Herní vývojová sada Microsoft.

Co mám použít, pokud chci vytvářet aplikace, které pracují na Windows a Surface Hub?

Pro centrum Surface, na kterém běží standardní prostředí Teams Rooms nebo Surface Hub, použijte aplikaci pro UPW, která splňuje požadavky aplikace Surface Hub. Surface Hub 3 nakonfigurovaný s Windows 11 Pro nebo Enterprise může spouštět podporované technologie desktopových aplikací, takže UPW není jedinou možností v této konfiguraci.

Vývoj hybridního a webového prostředí

Co jsou hybridní aplikace a proč bych měl zvážit jeho vytvoření?

Hybridní aplikace kombinuje to nejlepší z vývoje webových a nativních aplikací. Jejich jádro je vytvořené pomocí webových technologií, jako jsou HTML, CSS a JavaScript, a zabalené do nativního kontejneru, který poskytuje access určitým funkcím a hardwaru nativní platformy. Dají se také distribuovat prostřednictvím obchodů s aplikacemi.

Hlavní výhodou je, že hybridní aplikace umožňují vytvořit jednu aplikaci, která může běžet na několika nativních platformách a na webu, což zkracuje čas a náklady na vývoj. Mezi příklady platforem pro vývoj hybridních aplikací patří:

  • Elektron pro desktopové aplikace
  • Ionic pro mobilní aplikace
  • .NET MAUI Blazor Hybrid pro multiplatformní aplikace
Jak vytvářet nativně působící progresivní webové aplikace (PWA) na Windows?

Viz Webový vývoj na Windows a Přehled progresivních webových aplikací.

Co je hybridní aplikace .NET MAUI Blazor?

S .NET MAUI můžou aplikace Blazor běžet nativně na Windows, iOS, Androidu a macOS. Díky tomu můžete vytvářet hybridní klientské aplikace, které kombinují komponenty Blazor a .NET MAUI v jedné nativní klientské aplikaci s úplným přístupem k možnostem nativní platformy.

Další informace najdete v ASP.NET Core Blazor Hybrid.

Je nutné vytvářet webové komponenty hybridní aplikace .NET MAUI pomocí Blazor?

Ne. Počínaje .NET 9 obsahuje .NET MAUI ovládací prvek HybridWebView, který umožňuje hostování dalších uživatelských rozhraní založených na JavaScriptu v nativní aplikaci.

To vám umožní hostovat Angular, React, Vue nebo jiné aplikace HTML/JavaScript v aplikaci .NET MAUI. Hybridní ovládací prvek poskytuje interoperabilitu mezi C# a JavaScriptem, takže kód jazyka C# může volat funkce JavaScriptu a naopak.

Mohou některé jiné nativní typy aplikací hostovat hybridní komponenty Blazor?

Ano. aplikace WPF (Windows Presentation Foundation) a WinForms můžou také hostovat hybridní komponenty Blazor, což umožňuje přidání moderního webového uživatelského rozhraní do stávajících aplikací. To se nepodporuje pro aplikace WPF (Windows Presentation Foundation) ani WinForms založené na .NET Frameworku.

Musí být celá moje aplikace hybridní nebo můžu kombinovat nativní a hybridní komponenty?

Nativní a hybridní komponenty je možné kombinovat v rámci aplikace. Například jádro aplikace může být sestaveno s komponentami .NET MAUI, zatímco hybridní komponenty poskytují další funkce. To umožňuje kombinovat výkon a možnosti nativních komponent s flexibilitou a nákladovou efektivitou hybridních komponent.

Co jsou moje volby pro vytváření webových aplikací založených na .NET, které vypadají skvěle v moderních prohlížečích na Windows?

Web apps nabízejí nejširší dosah libovolné platformy klientských aplikací. Mezi možnosti vytváření krásných .NET webových aplikací patří:

  • ASP.NET Core aplikace s Razor Pages
  • aplikace ASP.NET Core MVC
  • Aplikace ASP.NET Core Blazor s možnostmi hostovacího modelu:
    • Blazor WebAssembly
    • Blazor Server

Modely hostování Blazor je teď možné nakonfigurovat na úrovni komponent, což umožňuje scénáře, jako je hostování komponenty Blazor WebAssembly v aplikaci Blazor Server.

Další podrobnosti najdete v dokumentaci k ASP.NET Core.

Volba přístupu a pochopení investic do Microsoft

Další možnosti architektury pro vytváření aplikací, které cílí na Windows! Jak se mám rozhodnout?

Windows je otevřená platforma, která podporuje mnoho technologií. Tady jsou některá kritéria, která vám můžou pomoct vybrat platformu:

  • Vyvíjíte přednostně pro Windows nebo multiplatformně?
  • Jaké jazyky nebo dovednosti už máte – .NET, JavaScript, něco jiného?
  • Potřebujete přístup k rozhraním API pro konkrétní Windows?
  • Které možnosti architektury nejlépe odpovídají požadavkům vaší aplikace?
  • Další srovnávací faktory najdete v této tabulce .

Pro mnoho obchodních aplikací týmy často volí na základě stávajících dovedností a toho, co je pro tým nejpohodlnější.

Jak zvolím nejlepší přístup k vývoji mé webové aplikace?

Při výběru vývojového přístupu pro webovou aplikaci zvažte následující skutečnosti:

  • Blazor se doporučuje pro vytváření front-endových webových aplikací s .NET. Umožňuje vytvářet front-end i back-end pomocí .NET, šetřit čas a náklady a je to zvláště vhodné pro podnikové aplikace.
  • JavaScript web apps stále dávají smysl, pokud chcete využít stávající dovednosti JavaScriptu nebo potřebujete integrovat se zavedenými JS knihovnami nebo frameworky.
  • Stávající aplikace využívající starší architektury, jako jsou webové formuláře, MVC nebo Razor Pages, zůstávají podporované a můžou se dál vyvíjet a udržovat.
Kdo dnes vytváří aplikace s WinUI 3?

Microsoft Photos je jedním ze zdokumentovaných příkladů. Aplikace migrovala z UPW do Windows App SDK a nadále používá WinUI 3. Podrobnosti o architektuře a migraci najdete v tématu Microsoft Fotky: Migrace z UPW na Windows App SDK.

Who dnes vytváří aplikace .NET MAUI?

Organizace používají .NET MAUI k vytváření multiplatformních aplikací pro Android, iOS, macOS a Windows. Příklady najdete v prezentaci .NET zákazníka.

Who dnes vytváří aplikace WPF (Windows Presentation Foundation)?

Většina uživatelského rozhraní Microsoft Visual Studio je sestavená pomocí WPF (Windows Presentation Foundation). Samotné integrované vývojové prostředí (IDE) Visual Studio je hlavním příkladem komplexní aplikace s vysokým výkonem WPF (Windows Presentation Foundation).

Kdo dnes vytváří aplikace Blazor?

Systém letecké společnosti GE Digital FlightPulse používá Blazor pro back-endovou konfiguraci všeho, co piloti vidí, a přináší data snímačů a analýzy přímo pilotům, aby se zlepšila bezpečnost a efektivita.

Další informace Blazor customer stories na webu .NET.

Volba jazyka (.NET vs C++)

Mám pro svoji Windows aplikaci používat C# nebo C++?

Ve většině případů používejte jazyk C# (.NET). Jazyk C# nabízí rychlejší vývoj, bezpečnost paměti, bohaté knihovny a vynikající nástroje. Většina Windows aplikací, včetně aplikací WinUI 3, WPF (Windows Presentation Foundation), WinForms a .NET MAUI, je nejlépe sestavená pomocí jazyka C#.

Jazyk C++ použijte , pokud potřebujete přímý přístup k hardwaru, minimální režii za běhu nebo interoperabilitu s existujícími základy kódu C++. Mezi běžné scénáře jazyka C++ patří herní moduly (DirectX), ovladače, nástroje na úrovni systému a komponenty kritické pro výkon.

Faktor C# (.NET) C++
Rychlost vývoje ✅ Rychlejší – spravovaná paměť, bohatý ekosystém ⚠️ Pomalejší — ruční správa prostředků
Výkon modulu runtime ✅Skvěle funguje s moderním .NET (AOT, Span<T>) ✅ Co nejlíp – žádné pauzy GC
Bezpečnost paměti ✅ Uvolňování paměti ⚠️ Ruční – riziko úniku a ohrožení zabezpečení
přístup k rozhraní API Windows ✅ Prostřednictvím projekce C#/WinRT ✅ Pomocí projekce C++/WinRT
Podpora WinUI 3 ✅ Úplná podpora ✅ Úplná podpora prostřednictvím C++/WinRT
Multiplatformní ✅.NET běží na Windows, Linuxu, macOS ✅ S kódem specifický pro platformu
Nejvhodnější pro Obchodní aplikace, CRUD, služby, aplikace náročné na uživatelské rozhraní Hry, ovladače, systémové nástroje, nízká latence

Můžete také zkombinovat obojí: vytvořit aplikaci v C# a volat nativní kód kritický z hlediska výkonu prostřednictvím P/Invoke (CsWin32) nebo komponenty C++/WinRT.

Jak můžu volat rozhraní API Win32 z jazyka C#?

Použijte CsWin32, což je zdrojový generátor, který při sestavení vytváří typově bezpečné signatury P/Invoke. Přidáte Microsoft.Windows.CsWin32 balíček NuGet, zobrazíte seznam potřebných rozhraní API v NativeMethods.txt souboru a zavoláte je prostřednictvím vygenerované PInvoke třídy.

CsWin32 nahrazuje ruční [DllImport] deklarace a funguje v jakémkoli projektu C#, včetně WinUI 3, WPF (Windows Presentation Foundation), WinForms a konzolových aplikací. Podrobný návod najdete v tématu Volání rozhraní API Win32 z aplikace Windows jazyka C# (CsWin32).

Co je C++/WinRT a kdy se má použít?

C++/WinRT je standardní projekce jazyka C++17 pro rozhraní API prostředí Windows Runtime. Můžete ho použít při vytváření Windows aplikací v jazyce C++, které využívají nebo vytvářejí rozhraní API WinRT. Nahrazuje C++/CX a knihovnu šablon jazyka C++ prostředí Windows Runtime C++.

Zvolte C++/WinRT, když:

  • Vytváříte aplikaci C++ WinUI 3.
  • Potřebujete vytvářet komponenty prostředí Windows Runtime spotřebované jinými jazyky.
  • Portujete z C++/CX
Co je C#/WinRT a kdy ji potřebuji?

C#/WinRT poskytuje podporu projekce WinRT pro C#. Ve většině případů s ním nepřicházíte přímo do kontaktu — aplikace .NET cílené na Windows automaticky získávají přístup k rozhraním API WinRT prostřednictvím monikerů cílového frameworku (TFM). Při vytváření komponent prostředí Windows Runtime v jazyce C# nebo při generování propojovacích sestavení pro komponenty WinRT třetích stran musíte explicitně použít C#/WinRT.

Balení, nasazení a aktualizace

Jaký je rozdíl mezi aplikacemi, které jsou zabalené, rozbalené a zabalené s externím umístěním?

Zabalená aplikace obsahuje soubory, identitu a informace o nasazení v balíčku, jako je MSIX. Rozbalená aplikace používá instalační program nebo proces nasazení mimo systém balíčků Windows a ve výchozím nastavení nemá identitu balíčku. Aplikace zabalená s externím umístěním používá malý identitní balíček a zároveň zachovává binární soubory uložené externě i stávající instalační program a proces aktualizace.

Viz Přehled balení pro požadavky a kompromisy.

Potřebuji identitu balíčku?

Závisí na Windows funkcích, které vaše aplikace používá. Identita balíčku je vyžadována pro scénáře, jako jsou balíčkované úlohy na pozadí, cíle sdílení, spouštěcí úlohy, vlastní rozšíření balíčku pro kontextovou nabídku, přidružení typů souborů a protokolů založená na manifestu a mnoho rozhraní API Windows AI. Windows App SDK nabízená oznámení podporují omezené scénáře popředí bez identity, ale doručování na pozadí a aktivace modelu COM vyžadují identitu. Oznámení WinUI 3 a místní aplikace můžou fungovat bez identity balíčku.

Viz funkce které vyžadují identitu balíčku. Pokud potřebujete identitu, ale musíte zachovat existující instalační program, zvažte balení s externím umístěním.

Jaký je rozdíl mezi nasazením závislým na rozhraní a vlastním nasazením?

Aplikace závislá na rozhraní používá Windows App SDK balíčky modulu runtime nainstalované samostatně na zařízení. Tím se zmenšuje velikost nasazení aplikace a umožňuje nainstalované rozhraní přijímat aktualizace údržby. Samostatná aplikace nese s sebou Windows App SDK závislosti, což zvyšuje velikost nasazení a vydavatele aplikace zodpovídá za distribuci Windows App SDK servisních aktualizací s novými verzemi aplikací.

API, která závisejí na dalších balíčcích MSIX, například na balíčku Singleton, mohou vyžadovat samostatné kontroly podpory nasazení nebo za běhu i u samostatně distribuované aplikace. Balení a nasazení modulu runtime jsou samostatná rozhodnutí. Viz přehled nasazení sady Windows App SDK .

Bude se moje aplikace WinUI 3 automaticky aktualizovat pro koncové uživatele?

Aplikaci WinUI 3 je možné doručovat prostřednictvím Microsoft Store, .appinstaller souboru nebo spustitelného souboru MSI nebo instalačního souboru. Balíčky úložiště je možné aktualizovat prostřednictvím údržby Microsoft Store, a to v závislosti na nastavení úložiště a organizace. Nasazení .appinstaller podporuje automatické aktualizace pouze v případech, kdy UpdateSettings konfiguruje kontrolu doby spuštění nebo pozadí. Nasazení MSI a nastavení musí poskytovat nebo integrovat vlastní mechanismus aktualizace.

Užiju Windows App SDK bez použití nástroje MSBuild?

Ano, v některých scénářích. Projekty WinUI 3 XAML v současné době vyžadují NÁSTROJ MSBuild, i když Visual Studio není vyžadován a dotnet build může vyvolat NÁSTROJ MSBuild z příkazového řádku. Rozhraní API sady Windows App SDK, která nejsou založená na XAML, můžete v projektech C++ a CMake používat prostřednictvím preview aplikace pro Windows Development CLI nebo runtime integrovat ručně.

Windows AI (umělá inteligence)

Jak si vyberu mezi Windows rozhraními API AI, Místním prostředím Foundry a Windows ML?

První tři technologie jsou součástí Microsoft Foundry na Windows. Můžete je zkombinovat mezi sebou a s cloudovými modely ve stejné aplikaci:

  • Pomocí Windows rozhraní API AI můžete využít možnosti připravené k použití, jejichž modely a hardwarová akcelerace Windows spravuje.
  • Pomocí Foundry Local můžete vyhledat, stáhnout a spustit podporované opensourcové jazykové a řečové modely místně.
  • Pomocí Windows ML můžete spouštět vlastní modely ONNX s poskytovateli spouštění pro dostupný hardware procesoru, GPU a NPU.
  • Použijte Microsoft Foundry, samostatnou cloudovou platformu AI, pokud potřebujete modely hostované v cloudu, načítání, centralizované zásady správného řízení nebo funkce, které nejsou dostupné na cílovém zařízení.

Porovnejte možnosti v části Vyberte své řešení Windows AI. Zvažte možnosti modelu, ochranu osobních údajů, možnosti připojení, latenci, pokrytí hardwaru, velikost nasazení a provozní náklady.

Vyžadují funkce umělé inteligence Windows Copilot+ PC?

Ne všechny. Mnoho Windows rozhraní API pro AI vyžaduje Copilot+ PC, některá rozhraní API ale podporují také konkrétní gpu nebo procesory. Foundry Local a Windows ML podporují širší hardwarové konfigurace, které podléhají aktuálním požadavkům na operační systém, model, modul runtime a poskytovatele spouštění.

Projděte si hardwarovou tabulku rozhraní API AI Windows a požadavky na konkrétní rozhraní API nebo model. Za běhu zjistěte podporu a připravenost modelu a pokud funkce není k dispozici, použijte záložní řešení bez AI, s místním modelem nebo v cloudu.

Můžou Windows funkce umělé inteligence běžet místně a offline?

Ano. Windows rozhraní API AI, Foundry Local a Windows ML můžou na zařízení uživatele spouštět odvozování, což může snížit latenci a zachovat místní vstupní data. Některé modely nebo poskytovatelé spouštění musí být nejprve staženi nebo zřízeni a můžou během instalace nebo údržby vyžadovat připojení k internetu. Cloudové služby AI vyžadují připojení a odesílají data do služby podle podmínek jejich zpracování dat.

Informujte uživatele, kdy se vyžaduje stažení modelu a kdy data opustí zařízení. Nepopisujte funkci jako schopnou fungovat offline, dokud neotestujete celý průběh jejího prvního spuštění, aktualizace a záložního režimu.

Můžou mi nástroje AI pomoct sestavovat nebo modernizovat aplikaci Windows?

Ano. Agenti pro kódování AI můžou pomoct s generováním projektů, vysvětlit rozhraní API, migrovat kód, generovat testy a diagnostikovat problémy s sestavením. Pro GitHub Copilot, modul plug-in agenta WinUI, server MCP Microsoft Learn, pracovní postupy migrace a testování s asistencí umělé inteligence použijte pokyny k vývoji s asistencí Windows AI.

Zkontrolujte a otestujte vygenerovaný kód stejně jako jakýkoli jiný příspěvek. Konkrétně ověřte názvy a verze rozhraní API, možnosti balíčků, kód citlivý na zabezpečení, přístupnost a všechny náhrady pro UPW-to-WinUI 3.

Co mám zvážit před odesláním funkce s asistencí umělé inteligence?

Definujte zamýšlené použití a omezení funkce, vyhodnoťte kvalitu a bezpečnost pomocí reprezentativních dat, v případě potřeby předveďte chování umělé inteligence, chraňte uživatelská data a poskytněte náhradní řešení, pokud model nebo požadovaný hardware není k dispozici. Udržujte tajné klíče a přihlašovací údaje privilegovaných služeb mimo klientské aplikace a před provedením závažných nebo nevratných akcí vyžadujte potvrzení uživatele. Viz Zodpovědný vývoj generativní umělé inteligence ve Windows a Zabezpečení a zodpovědná AI pro vývoj ve Windows.

Výkon a optimalizace

Co můžu udělat, aby moje aplikace Windows poskytovala skvělý zážitek koncovým uživatelům?

Podívejte se na Windows vývoj aplikací – osvědčené postupy a Windows přehled výkonu a základů aplikací.

Compatibility

Budou moji uživatelé někdy muset aktualizovat Windows tak, aby používali moji aplikaci WinUI 3?

Windows App SDK má minimální kompatibilní operační systém Windows 10 verze 1809, build 17763. podpora Microsoft vyžaduje podporovanou verzi Windows App SDK s nejnovější aktualizací údržby a Windows edicí, verzí a kanálem údržby, který je stále podporovaný. Jednotlivá rozhraní API mohou vyžadovat novější Windows verzi nebo konkrétní hardware. Viz kanály podpory Windows App SDK a kanály vydaných verzí.

Můžu cílit na Arm64 pomocí aplikace WinUI 3?

Ano. Vytvořte nativní aplikaci Arm64 pro zajištění nejlepšího výkonu a efektivity. U velkého základu kódu C++ se závislostmi x64 umožňuje Arm64EC migrovat moduly přírůstkově. Windows 11 na Arm může také spouštět mnoho stávajících aplikací x86 a x64 prostřednictvím emulace Prism, ale měli byste otestovat výkon a kompatibilitu na reprezentativních zařízeních Arm.

Vyřazení a migrace

Jsou UPW / WinUI pro UPW zastaralé?

UpW a WinUI 2 nejsou formálně zastaralé. Visual Studio 2026 podporuje UPW s moderními .NET a nativními AOT, zatímco WinUI 2.8 zůstává nejnovější stabilní verzí WinUI pro UPW. Microsoft ale doporučuje WinUI 3 a Windows App SDK pro nové desktopové aplikace pro Windows obecné účely.

Podpora UPW pro moderní .NET s nativní AOT je obecně dostupná a je výchozím typem projektu UPW jazyka C# v Visual Studio 2026. Přesunutí existující aplikace pro UPW z .NET Native na moderní .NET je samostatný krok modernizace od migrace uživatelského rozhraní na WinUI 3. Podívejte se na modernizaci aplikace pro UPW pomocí .NET a nativní AOT.

Kdy mám převést aplikaci UWP / WinUI pro UWP na WinUI 3?

Vývojáři UPW by se neměli cítit tlak na migraci, pokud jsou spokojení s UPW a jeho sadou funkcí – pro mnoho aplikací může být správnou volbou zůstat u UPW.

Aplikace, které chtějí těžit z nejnovější platformy Windows a .NET investic, by měly zvážit přechod na WinUI 3 a Windows App SDK. Viz Migrace z UPW do Windows App SDK.

Kdy bych *neměl* migrovat aplikaci UWP + WinUI pro UWP na WinUI 3?

Pokud cílové zařízení nebo model aplikace vyžaduje, pokračujte v používání UPW, jako jsou aplikace Xbox, HoloLens 2D aplikace nebo aplikace pro standardní prostředí Surface Hubu. Windows IoT Enterprise podporuje technologie desktopových aplikací, včetně Windows App SDK, takže cílem IoT není sám o sobě důvod používat UPW.

Je WPF (Windows Presentation Foundation) zastaralé a odstraněné?

Ne. WPF (Windows Presentation Foundation) je podporováno a v moderním .NET nadále získává vylepšení funkcí, výkonu, přístupnosti a stylu Fluent. Zůstává dobrou volbou pro stávající aplikace WPF (Windows Presentation Foundation) a pro nové aplikace, jejichž požadavky odpovídají WPF (Windows Presentation Foundation). Pro nové desktopové aplikace pro obecné účely Windows Microsoft je hlavním doporučením WinUI 3 s Windows App SDK. Podívejte se na roadmap WPF (Windows Presentation Foundation) na GitHubu.

Je WinForms zastaralý?

Ne. WinForms se podporuje a nadále přijímá aktualizace funkcí. Podívejte se na model Windows Forms Roadmap na GitHubu.

Je prostředí Windows Runtime (WinRT) zastaralý?

Ne. WinRT je binární rozhraní aplikace (ABI), které umožňuje interoperabilitu napříč více jazyky. WinRT je vývoj modelu COM a Windows App SDK poskytuje většinu jeho funkcí prostřednictvím rozhraní API WinRT.

Poznámky k vydání

Kde mohu najít poznámky k vydání pro Windows App SDK?

Informace o stabilních verzích, verzi Preview a experimentálních verzích najdete v poznámkách k verzi Windows App SDK. Stránka Co je nového pro vývojáře Windows shrnuje nejnovější aktualizace sady Windows SDK, Windows App SDK, WinUI 3, nástrojů a platforem.