Co je .NET MAUI?
.NET Multi-platform App UI (.NET MAUI) je multiplatformní rozhraní pro vytváření nativních mobilních a desktopových aplikací pomocí C# a XAML.
Pomocí rozhraní .NET MAUI můžete vyvíjet aplikace, které můžou běžet v systémech Android, iOS, macOS a Windows z jediného sdíleného základu kódu.
.NET MAUI je opensourcový a je vývoj Xamarin.Forms rozšířený z mobilních až desktopových scénářů s ovládacími prvky uživatelského rozhraní nově vytvořenými od základů pro výkon a rozšiřitelnost. Pokud jste dříve pomocí Xamarin.Forms vytvořili uživatelská rozhraní pro různé platformy, všimnete si mnoha podobností s rozhraním .NET MAUI. Existují však také některé rozdíly. Pomocí rozhraní .NET MAUI můžete vytvářet aplikace pro více platforem pomocí jednoho projektu, ale v případě potřeby můžete přidat zdrojový kód a prostředky specifické pro danou platformu. Jedním z klíčových cílů rozhraní .NET MAUI je umožnit implementaci co největší části logiky aplikace a rozložení uživatelského rozhraní v jediném základu kódu.
Kdo je .NET MAUI určený
.NET MAUI je určená pro vývojáře, kteří chtějí:
- Psaní multiplatformních aplikací v XAML a C# z jediného sdíleného základu kódu v sadě Visual Studio
- Sdílení rozložení uživatelského rozhraní a návrhu napříč platformami
- Sdílejte kód, testy a obchodní logiku napříč platformami.
Jak funguje .NET MAUI
.NET MAUI sjednocuje rozhraní API pro Android, iOS, macOS a Windows do jednoho rozhraní API, které umožňuje zkušenost vývojáře ve stylu 'jednou napiš, spouštějte kdekoli', a navíc poskytuje hluboký přístup ke všem aspektům každé nativní platformy.
.NET 6 nebo novější poskytuje řadu architektur specifických pro platformu pro vytváření aplikací: .NET pro Android, .NET pro iOS, .NET for Mac Catalyst a Windows UI 3 (WinUI 3). Všechny tyto architektury mají přístup ke stejné knihovně základních tříd .NET (BCL). Tato knihovna abstrahuje podrobnosti podkladové platformy od kódu. Seznam BCL závisí na modulu runtime .NET, aby poskytoval spouštěcí prostředí pro váš kód. V případě Androidu, iOSu a macOS se prostředí implementuje pomocí Mono, implementace modulu runtime .NET. Ve Windows poskytuje spouštěcí prostředí .NET Core Common Language Runtime (CLR).
Přestože seznam BCL umožňuje aplikacím běžícím na různých platformách sdílet společnou obchodní logiku, různé platformy mají různé způsoby definování uživatelského rozhraní pro aplikaci a poskytují různé modely pro určení způsobu komunikace a spolupráce prvků uživatelského rozhraní. Uživatelské rozhraní pro každou platformu můžete vytvořit samostatně pomocí příslušné architektury specifické pro platformu (.NET pro Android, .NET pro iOS, .NET for Mac Catalyst nebo WinUI 3), ale tento přístup vyžaduje, abyste si zachovali základ kódu pro každou řadu zařízení.
.NET MAUI poskytuje jedno rozhraní pro vytváření uživatelských rozhraní pro mobilní a desktopové aplikace. Následující diagram znázorňuje základní pohled na architekturu aplikace .NET MAUI:
V aplikaci .NET MAUI napíšete kód, který primárně komunikuje s ovládacími prvky .NET MAUI a vrstvou rozhraní API (1). Tato vrstva pak přímo využívá rozhraní API nativní platformy (3). Kód aplikace může navíc v případě potřeby přímo provádět rozhraní API platformy (2).
Aplikace .NET MAUI se dají napsat na PC nebo Mac a kompilovat do nativních balíčků aplikací:
- Aplikace pro Android vytvořené pomocí .NET MAUI se kompilují z jazyka C# do zprostředkujícího jazyka (IL), který je pak při spuštění aplikace zkompilován do nativního sestavení pomocí kompilace just-in-time (JIT).
- Aplikace pro iOS vytvořené pomocí .NET MAUI jsou plně předem zkompilované z jazyka C# do nativního kódu sestavení ARM.
- Aplikace pro macOS vytvořené pomocí rozhraní .NET MAUI používají Mac Catalyst, řešení od Společnosti Apple, které přináší aplikaci pro iOS vytvořenou pomocí uiKitu na plochu a podle potřeby ji rozšiřuje o další rozhraní API sady AppKit a platformy.
- Aplikace pro Windows vytvořené pomocí rozhraní .NET MAUI používají knihovnu Windows UI 3 (WinUI 3) k vytváření nativních aplikací, které cílí na plochu Windows. Další informace o WinUI 3 naleznete v tématu Knihovny uživatelského rozhraní systému Windows.
Poznámka
Vytváření aplikací pro iOS a macOS vyžaduje Mac.
Co poskytuje .NET MAUI
.NET MAUI poskytuje kolekci ovládacích prvků, které lze použít k zobrazení dat, inicializaci akcí, indikaci aktivit, zobrazování kolekcí, výběru dat a další. Kromě kolekce ovládacích prvků poskytuje rozhraní .NET MAUI také:
- Propracovaný modul rozložení pro navrhování stránek.
- Více typů stránek pro vytváření různorodých navigačních prvků, jako jsou navigační panely.
- Podpora datových vazeb pro elegantnější a udržovatelné vývojové vzory
- Možnost přizpůsobit obslužné rutiny tak, aby se zlepšil způsob, jakým jsou prezentovány prvky uživatelského rozhraní.
- Platformově nezávislá rozhraní API pro přístup k nativním funkcím zařízení. Tato rozhraní API umožňují aplikacím přístup k funkcím zařízení, jako je GPS, akcelerometr a stav baterie a sítě. Další informace viz API pro různé platformy pro funkce zařízení.
- Funkce grafiky pro různé platformy, která poskytuje kreslicí plátno, které podporuje kreslení a malování obrazců a obrázků, kompozitační operace a transformace grafických objektů.
- Jeden projektový systém, který používá více cílení na Android, iOS, macOS a Windows. Další informace najdete v projektu .NET MAUI Single .
- .NET hot reload vám umožní upravit XAML a spravovaný zdrojový kód během běhu aplikace a sledovat důsledek vašich úprav bez nutnosti opětovného sestavení aplikace. Další informace naleznete v tématu .NET hot reload.
Víceplatformní rozhraní API pro funkce zařízení
Rozhraní .NET MAUI poskytuje rozhraní API pro různé platformy pro nativní funkce zařízení. Mezi příklady funkcí poskytovaných rozhraním .NET MAUI pro přístup k funkcím zařízení patří:
- Přístup k senzorům, jako je akcelerometr, kompas a gyroskop na zařízeních.
- Možnost zkontrolovat stav síťového připojení zařízení a detekovat změny
- Zadejte informace o zařízení, na kterém je aplikace spuštěná.
- Zkopírujte a vložte text do systémové schránky mezi aplikacemi.
- Vyberte jeden nebo více souborů ze zařízení.
- Bezpečně ukládejte data jako páry klíč/hodnota.
- Využijte integrované moduly pro převod textu na řeč ke čtení textu ze zařízení.
- Zahajte prohlížečové ověřovací toky, které poslouchají na zpětnou vazbu na specifickou registrovanou URL aplikace.
Jeden projekt
Jeden projekt .NET MAUI přebírá prostředí pro vývoj specifické pro platformu, se kterými se obvykle setkáte při vývoji aplikací, a abstrahuje je do jednoho sdíleného projektu, který může cílit na Android, iOS, macOS a Windows.
Jeden projekt .NET MAUI poskytuje zjednodušené a konzistentní prostředí pro vývoj pro různé platformy bez ohledu na cílové platformy. Jeden projekt .NET MAUI poskytuje následující funkce:
- Jeden sdílený projekt, který může cílit na Android, iOS, macOS a Windows.
- Zjednodušený výběr cíle ladění pro spuštění aplikací .NET MAUI.
- Sdílené soubory zdrojů v rámci jednoho projektu.
- Jeden manifest aplikace, který určuje název, ID a verzi aplikace.
- Přístup k rozhraním API a nástrojům pro konkrétní platformu v případě potřeby
- Vstupní bod jedné multiplatformní aplikace.
Projekt .NET MAUI pro jeden projekt je umožněn díky cílení na více platforem a použití projektů ve stylu SDK. Další informace o jediném projektu .NET MAUI naleznete v tématu .NET MAUI jediný projekt.
Aktualizace za běhu
.NET MAUI zahrnuje podporu opětovného načítání .NET za provozu, která umožňuje upravovat spravovaný zdrojový kód během běhu aplikace, aniž byste museli ručně pozastavit nebo stisknout zarážku. Úpravy kódu se pak dají použít pro spuštěnou aplikaci bez rekompilace.
.NET MAUI také zahrnuje podporu opětovného načítání XAML za provozu, která umožňuje uložit soubory XAML a zobrazit změny, které se projeví ve spuštěné aplikaci bez opětovného kompilace. Kromě toho se zachová stav navigace a data, což vám umožní rychle iterovat v uživatelském rozhraní bez ztráty místa v aplikaci.