Programiranje

Razumevanje .NET MAUI in prihodnosti Xamarina

Leta 2000 je bila Microsoftova konferenca strokovnih razvijalcev namenjena postavljanju prizorišča za .NET in uvajanju številnih tehnologij, ki jih uporabljamo v zadnjih dveh desetletjih. Po dvajsetih letih je pošteno reči, da je Microsoft pritisnil gumb za ponastavitev na razširitvi .NET-a in številnih okvirov za razvijalce. Na Build 2020 je podjetje postavilo svoj načrt za naslednjih dvajset let, ki je temeljilo na napovedi o združitvi projekta.

Prihodnost je ena .NET

Mogoče se je ozreti šest let nazaj, da bi videli današnje korenine v odprtih virih .NET in ustanovitvi .NET Foundation. Platforma je potrebovala neodvisno telo, ki bi jo prenašalo skozi prehod iz starega .NET Framework v novo modularno .NET jedro, ki ni podedovano. Ta prehod je moral vključevati več kot Windows; povezovati je moral mobilne odjemalce Xamarin in 3D-igralne platforme Unity ter si prizadevati razširiti doseg .NET-a na macOS in Linux.

To nas pripelje do leta 2020 in prihajajočega prehoda s starajočega se .NET Framework 4 na novega .NET 5, naslednjo veliko izdajo .NET Core z večino znanih API-jev .NET Framework in imenskih prostorov. S to preobrazbo se bodo začele velike spremembe za Microsoftova mobilna in večplastna razvojna orodja Xamarin, saj Microsoft preusmeri inženirska prizadevanja s Xamarin's Mono na .NET 5.

Povezovanje Mono in .NET v .NET 6

Jasno je eno: Microsoft ne zavrže svojih in vaših naložb v Xamarin. Mono še ne bo šel nikamor. Veliko velikih projektov je odvisno od Mono-a, videli bomo, da bo Xamarin še naprej razvijal Mono, da bi podpiral nove izdaje Androida in iOS-a. Če pa želite nove funkcije in nove API-je ter širši razvojni model med platformami, bo vaša prihodnja razvojna strategija temeljila na .NET 5 in tekočem letnem urniku izdaje .NET-a. Popolna, poenotena .NET je še vedno oddaljena in čeprav bo .NET 5 pomemben korak naprej, poenotenja bomo videli šele konec leta 2021 in načrtovano izdajo naslednje dolgoročne podporne izdaje .NET 6.

Namen ni v celoti nadomestiti Mono, temveč imeti en skup knjižnic razredov in eno orodno verigo za .NET Core in Mono, ki nadgrajuje delo, ki že poteka v funkcijah na ravni platforme, kot je .NET Standard knjižnice. To pušča zanimivo vprašanje: kako je videti uporabniški vmesnik med različnimi platformami v konvergirani prihodnosti? Čeprav v pristanišču WinUI 3 platforme Uno obstaja možnost več platform, s podporo za mobilne naprave poleg WebAssembly in macOS, so kontrolniki, ki jih Microsoft pošilja v WinUI, nadzorniki za namizje sistema Windows in najbolje delujejo v namiznih in tabličnih aplikacijah.

Razvoj ogrodja uporabniškega vmesnika za .NET za več platform

Xamarin ponuja alternativo WinUI za razvoj več platform. Njegova strategija za več platform temelji na mešanici podpore XAML za izvorne kontrole za iOS in Android, skupaj z lastnimi Xamarin obrazci za več platform. Xamarin Forms je samostojna razvojna platforma MVVM (model-view-viewmodel) z lastnim videzom in občutkom nadzora, ki temelji na Androidovem jeziku Material Design. Xamarin Forms daje aplikacijam iOS in Android dosleden videz in občutek, hkrati pa jim omogoča dostop do domačih funkcij in storitev.

Ker je .NET 6 namenjen poenotenju različnih .NET platform, je Xamarin Forms logična podlaga za nov nabor orodij za mobilni uporabniški vmesnik in novo ogrodje uporabniškega vmesnika za več platform .NET. Microsoft je ta novi pristop predstavil na Build 2020 in ga imenoval .NET Multiplatform App UI (MAUI).

.NET MAUI je naslednja generacija obrazcev Xamarin, namenjena razvijalcem, da lahko enkrat izdelajo aplikacijo v enem projektu Visual Studio z eno kodno bazo in ciljajo na katero koli podprto napravo. Cilj je zagotoviti poenostavljeno strukturo projekta. Namesto ene rešitve z ločenimi projekti za vsako platformo, na katero ciljate, bo MAUI en projekt vseboval vire, potrebne za ciljanje na določene platforme. Če potrebujete izvorne API-je za dostop do storitev, specifičnih za napravo, jih je mogoče združiti v pogled platform in uporabiti v času prevajanja pri ciljanju zgradb za vsako platformo. Poleg kode platforme lahko združite vire, ki jih bo uporabljal vaš XAML, vključno s slikami in pisavami, tako da boste dobili eno mesto za upravljanje vseh elementov vaše aplikacije.

Novi projektni model, ki je priložen .NET 6, je ključnega pomena za ta pristop, saj uporablja bolj logično razvrščanje v skupine modulov, ki se uporabljajo v aplikacijah med različnimi platformami, in glede tega, kako je koda zgrajena in uvedena. Kljub strukturnim spremembam projektov pa mora biti koda, ki jo napišete jutri, zelo podobna današnji, vendar jo je lažje uvesti na več platformah in posodobiti s spremembami API-jev platforme in virov za načrtovanje aplikacij.

Pot do .NET MAUI

Še nekaj mesecev nas čaka, da bi videli uporabno kodo .NET MAUI, saj je to odvisno od funkcij .NET 6 SDK, čeprav je skladišče GitHub že odprto z nekaterimi začetnimi izvedbami. Ko bo predogled prispel proti koncu leta 2020, bi morali biti podobni obstoječim obrazcem Xamarin, ki se bodo še naprej razvijali vzporedno z .NET MAUI. Ključne spremembe bodo v tem, kako strukturirate projekte, pri čemer se bo novi imenski prostor preselil iz lastnega imenskega prostora Xamarin v sistem .NET.

Objavljeni načrt za .NET MAUI predlaga, da bomo sprva dobili predogled, ki temelji na preimenovanju trenutne izdaje obrazcev Xamarin, z nekaj poenostavitvami in novimi funkcijami, ki prihajajo iz novih funkcij .NET 6. Več sprememb bo prišlo med letom 2021, ko se bosta razvijala .NET MAUI in .NET 6, krmilniki macOS in Windows pa se bodo Androidu in iOSu pridružili do poletja 2021. Enotne aplikacije bi morali imeti na voljo do predvidene izdaje novembra 2021, kandidat za izdajo pa naj bi bil September 2021.

Microsoft načrtuje druge spremembe Xamarina v časovnem okviru .NET 6, selitev drugih knjižnic Xamarin v sistem in preimenovanje Xamarin.iOS in Xamarin.Android v .NET za iOS in .NET za Android. To je logična poteza, če že nekoliko žalostna za tiste, ki smo spremljali razvoj Xamarina že od prvih Monovih dni.

Morda bolj pozitiven način razmišljanja je, da s prehodom na .NET Core med platformami kot temelj vseh stvari .NET Microsoft ne absorbira toliko Xamarin kot Xamarin, ki postaja srce odprtokodne prihodnosti .NET-a. . To je dobra zapuščina za projekt Mono.

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