Programování

Porozumění .NET MAUI a budoucnost Xamarin

V roce 2000 proběhla konference Microsoft Developer Developers Conference o nastavení prostředí pro .NET a představila mnoho technologií, které jsme používali za poslední dvě desetiletí. Po dvaceti letech je třeba říci, že Microsoft stiskl resetovací tlačítko na rozrůstání .NET a jeho mnoha vývojářských frameworků. Na výstavě Build 2020 společnost stanovila svůj plán pro příštích dvacet let, přičemž vychází ze svého oznámení Project Reunion.

Budoucnost je jeden .NET

Je možné ohlédnout se zhruba o šest let zpět, abychom viděli kořeny dneška v otevřeném získávání .NET a vytváření .NET Foundation. Platforma potřebovala nezávislé tělo, které by ji řídilo přechodem ze starého .NET Framework na nový, starší, modulární .NET Core. Tento přechod musel zahrnovat více než Windows; Muselo to přinést mobilní klienty Xamarin a 3-D herní platformy Unity, stejně jako cíl rozšířit dosah .NET na MacOS a Linux.

To nás přivádí k roku 2020 a nadcházejícímu přechodu ze stárnoucího .NET Framework 4 na nový .NET 5, další velké vydání .NET Core s většinou známých rozhraní .NET Framework a jmenných prostorů. Tato transformace povede k zahájení velkých změn pro mobilní a multiplatformní vývojové nástroje Xamarin od společnosti Microsoft, protože Microsoft přesouvá technické úsilí z Xamarin's Mono na .NET 5.

Spojení Mono a .NET v .NET 6

Jedna věc je jasná: Microsoft nezahazuje své i vaše investice do Xamarin. Mono ještě nikam nepůjde. Spousta velkých projektů závisí na Mono a uvidíme, že Xamarin bude i nadále vyvíjet Mono tak, aby podporovalo nová vydání Android a iOS. Ale pokud chcete nové funkce a nová rozhraní API a širší model vývoje napříč platformami, pak bude vaše budoucí strategie rozvoje založena na .NET 5 a průběžném ročním harmonogramu vydávání .NET. Plné a sjednocené rozhraní .NET je stále ještě trochu pryč, a ačkoli bude .NET 5 významným krokem vpřed, sjednocení se dočkáme až koncem roku 2021 a plánovaným vydáním příští verze dlouhodobé podpory .NET 6.

Záměrem není úplně nahradit Mono, ale mít jednu společnou sadu knihoven tříd a jeden nástrojový řetězec pro .NET Core a pro Mono, stavět na práci, která se již děje ve funkcích na úrovni platformy, jako je .NET Standard knihovny. To zanechává zajímavou otázku: Jak vypadá multiplatformní uživatelské rozhraní v konvergované budoucnosti? Ačkoli v portu Uno Platform ve WinUI 3 existuje možnost pro různé platformy, s podporou mobilních zařízení spolu s WebAssembly a macOS jsou ovládacími prvky, které společnost Microsoft dodává ve WinUI, ovládací prvky pro Windows a fungují nejlépe v aplikacích pro stolní počítače a tablety.

Vývoj multiplatformního uživatelského rozhraní pro .NET

Xamarin nabízí alternativu k WinUI pro vývoj napříč platformami. Jeho strategie pro více platforem je založena na kombinaci podpory XAML pro nativní ovládací prvky pro iOS i Android spolu s vlastními platformami Xamarin Forms. Xamarin Forms je samostatná vývojová platforma MVVM (model-view-viewmodel) s vlastním vzhledem a ovládáním založeným na jazyku Material Design Androidu. Xamarin Forms poskytuje aplikacím pro iOS a Android konzistentní vzhled a chování, zatímco jim stále poskytuje přístup k nativním funkcím a službám.

S .NET 6 určeným k sjednocení různých platforem .NET je Xamarin Forms logickým základem pro novou sadu nástrojů pro mobilní uživatelské rozhraní a nový rámec pro různé platformy pro rozhraní .NET. Microsoft představil tento nový přístup na Build 2020 a nazval jej .NET Multiplatform App UI (MAUI).

.NET MAUI je nová generace formulářů Xamarin, která má vývojářům umožnit vytvořit aplikaci jednou v jediném projektu Visual Studio s jedinou základnou kódu a cílit na jakékoli podporované zařízení. Cílem je poskytnout zjednodušenou strukturu projektu. Spíše než jediné řešení se samostatnými projekty pro každou platformu, na kterou cílíte, s MAUI bude jediný projekt obsahovat zdroje potřebné k cílení na konkrétní platformy. Pokud potřebujete nativní rozhraní API pro přístup ke službám specifickým pro zařízení, lze je seskupit v zobrazení platforem a použít v době kompilace při cílení na sestavení pro každou platformu. Spolu s kódem platformy můžete seskupit prostředky, které budou použity vaším XAML, včetně obrázků a písem, což vám poskytne jedno místo pro správu všech prvků vaší aplikace.

Nový projektový model, který je dodáván s .NET 6, je klíčem k tomuto přístupu, protože aplikuje logičtější seskupení na moduly používané v aplikacích pro různé platformy a na to, jak je kód vytvořen a nasazen. Navzdory strukturálním změnám v projektech by však kód, který napíšete zítra, měl být velmi podobný dnešnímu, ale měl by se snadněji nasadit na více platforem a průběžně aktualizovat pomocí změn v API platformy a prostředcích pro návrh aplikací.

Cesta k .NET MAUI

Stále zbývá několik měsíců, než uvidíme použitelný kód .NET MAUI, protože to závisí na funkcích sady .NET 6 SDK, ačkoli úložiště GitHub je již u některých počátečních implementací otevřené. Když se náhled dodává na konci roku 2020, to, co získáme, by mělo být docela podobné existujícím Xamarin Forms, které se budou nadále vyvíjet paralelně s .NET MAUI. Klíčové změny budou kolem toho, jak strukturujete projekty, s novým jmenným prostorem přesunutým z vlastního jmenného prostoru Xamarin do systému .NET.

Publikovaný plán pro .NET MAUI naznačuje, že zpočátku dostaneme sestavení náhledu založené na přejmenování aktuální verze Xamarin Forms, s některými zjednodušeními a novými funkcemi pocházejícími z nových funkcí .NET 6. Další změny přijdou v průběhu roku 2021, kdy se vyvíjí .NET MAUI a .NET 6, přičemž ovládací prvky macOS a Windows se připojí k Androidu a iOS do léta 2021. Měli byste být schopni dodat sjednocené aplikace do zamýšleného vydání z listopadu 2021, přičemž kandidát na vydání by měl Září 2021.

Microsoft plánuje další změny Xamarin v časovém rámci .NET 6, přesunutí dalších knihoven Xamarin do systému a přejmenování Xamarin.iOS a Xamarin.Android na .NET pro iOS a .NET pro Android. Je to logický krok, i když trochu smutný pro ty z nás, kteří sledovali vývoj Xamarin od počátků Mono.

Možná pozitivnější způsob myšlení je, že s přechodem na platformu .NET Core jako základ všeho .NET není tolik Microsoftu, který absorbuje Xamarin, protože Xamarin se stal srdcem budoucnosti open source .NET. . To je dobré dědictví pro projekt Mono.

$config[zx-auto] not found$config[zx-overlay] not found