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 multiplatformní aplikace pomocí jediného 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 prostředí pro vývojáře s jedním spuštěním a navíc poskytuje přímý 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. V systému Windows poskytuje .NET CoreCLR spouštěcí prostředí.
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í kompilace .NET MAUI z jazyka C# do zprostředkujícího jazyka (IL), který se při spuštění aplikace zkompiluje do nativního sestavení (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 Knihovna 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í bohatých navigačních typů, jako jsou zásuvky.
- 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í.
- Rozhraní API pro různé platformy 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 najdete v tématu Rozhraní 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 tématu .NET MAUI Single project.
- Opětovné načítání .NET za provozu, abyste mohli během spuštění aplikace upravit kód XAML i spravovaný zdrojový kód a pak sledovat výsledky úprav bez opětovného sestavení aplikace. Další informace najdete v tématu opětovné načítání za provozu .NET.
Rozhraní API pro různé platformy 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 toky ověřování na základě prohlížeče, které naslouchají zpětnému volání na konkrétní zaregistrovanou adresu 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 spouš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.
Jeden projekt .NET MAUI je povolený pomocí cílení na více verzí a použití projektů ve stylu sady SDK. Další informace o jednom projektu .NET MAUI najdete v tématu jeden projekt .NET MAUI.
Opětovné načítání za provozu
.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.