Programavimas

Suprasti .NET MAUI ir „Xamarin“ ateitį

2000 m. „Microsoft“ profesionalių kūrėjų konferencijoje buvo siekiama sukurti .NET sceną ir pristatyti daugelį technologijų, kurias naudojome per pastaruosius du dešimtmečius. Praėjus dvidešimčiai metų, teisinga sakyti, kad „Microsoft“ paspaudė naujo nustatymo mygtuką .NET išplėtime ir daugelyje jo kūrėjų sistemų. „Build 2020“ kompanija, remdamasi pranešimu apie „Project Reunion“, pateikė savo ateinančių dvidešimties metų planą.

Ateitis yra viena .NET

Galima pažvelgti į maždaug šešerių metų praeitį ir pamatyti šiandienos šaknis atvirame .NET apsirūpinime ir .NET fondo kūrime. Platformai reikėjo nepriklausomo organo, kuris ją ganytų perėjęs iš senosios .NET Framework į naują, be palikimo, modulinį .NET Core. Šis perėjimas turėjo apimti daugiau nei „Windows“; ji turėjo pritraukti „Xamarin“ mobiliuosius klientus ir „Unity“ 3-D žaidimų platformas, taip pat siekti išplėsti .NET pasiekiamumą iki „MacOS“ ir „Linux“.

Tai atves mus į 2020-uosius ir artėjantį senėjimo .NET Framework 4 perėjimą prie naujo .NET 5, kito didelio „.NET Core“ leidimo su dauguma žinomų .NET Framework API ir vardų srities. Šios pertvarkos metu prasidės dideli „Microsoft“ mobiliųjų ir daugiaplatformių „Xamarin“ kūrimo įrankių pokyčiai, kai „Microsoft“ perkelia inžinerijos pastangas nuo „Xamarin“ „Mono“ prie .NET 5.

„Mono“ ir .NET suvedimas į .NET 6

Aišku viena: „Microsoft“ nemeta ir savo, ir jūsų investicijų į „Xamarin“. Mono dar niekur nedings. Daugybė didelių projektų priklauso nuo „Mono“, ir pamatysime, kad „Xamarin“ toliau vystysis „Mono“, kad palaikytų naujus „Android“ ir „iOS“ leidimus. Bet jei norite naujų funkcijų ir naujų API bei platesnio įvairių platformų kūrimo modelio, jūsų būsima plėtros strategija bus pagrįsta .NET 5 ir nuolatiniu kasmetiniu .NET išleidimo grafiku. Visapusiškas, vieningas .NET vis dar yra toli, ir, nors „.NET 5“ bus reikšmingas žingsnis į priekį, pamatysime suvienodinimą tik 2021 metų pabaigoje ir planuojamą kito ilgalaikio palaikymo leidimo „.NET 6“ išleidimą.

Siekiama ne visiškai pakeisti „Mono“, bet turėti vieną bendrą bibliotekų rinkinį ir vieną „.NET Core“ ir „Mono“ įrankių grandinę, remiantis darbu, kuris jau vyksta platformos lygio funkcijose, tokiose kaip .NET Standard bibliotekos. Tai palieka intriguojantį klausimą: kaip atrodo platformų sąsaja konvergencijoje ateityje? Nors „Uno Platform“ „WinUI 3“ uoste yra kelių platformų parinktis, kartu su „WebAssembly“ ir „MacOS“ palaikoma mobiliųjų įrenginių valdymas, valdikliai, kuriuos „Microsoft“ teikia „WinUI“, yra „Windows“ darbalaukio valdikliai ir jie geriausiai veikia darbalaukio ir planšetinio kompiuterio programose.

Kelių platformų vartotojo sąsajos, skirtos .NET, plėtra

„Xamarin“ siūlo „WinUI“ alternatyvą kuriant įvairias platformas. Kryžminio platformos strategija yra pagrįsta XAML palaikymu, skirtu vietiniams „iOS“ ir „Android“ valdymams, kartu su savo „cross-platform Xamarin Forms“. „Xamarin Forms“ yra savarankiška MVVM (model-view-viewmodel) kūrimo platforma, turinti savo valdymo išvaizdą ir jausmą, pagrįstą „Android“ medžiagos dizaino kalba. „Xamarin Forms“ suteikia „iOS“ ir „Android“ programoms nuoseklų išvaizdą ir jausmą, tuo pačiu suteikdamas joms prieigą prie vietinių funkcijų ir paslaugų.

Turėdamas .NET 6, skirtą suvienodinti įvairias .NET platformas, „Xamarin Forms“ yra logiškas pagrindas naujam mobiliųjų vartotojo sąsajų įrankių rinkiniui ir naujai .NET platformų sąsajos sistemai. „Microsoft“ pristatė šį naują požiūrį „Build 2020“, pavadindama jį .NET Multiplatform App UI (MAUI).

.NET MAUI yra naujos kartos „Xamarin Forms“, skirta kūrėjams sukurti programą vieną kartą per vieną „Visual Studio“ projektą su viena kodų baze, nukreipiančią į bet kurį palaikomą įrenginį. Tikslas yra supaprastinta projekto struktūra. Vietoj vieno sprendimo su atskirais projektais kiekvienai platformai, pagal kurią taikote, su MAUI viename projekte bus išteklių, reikalingų konkrečioms platformoms taikyti. Jei jums reikia vietinių API, kad galėtumėte pasiekti konkrečiam įrenginiui skirtas paslaugas, jas galima susieti platformos rodinyje ir naudoti kompiliavimo metu, kai taikoma kiekvienos platformos versijoms. Kartu su platformos kodu galite susieti išteklius, kuriuos naudos jūsų XAML, įskaitant vaizdus ir šriftus, suteikiant jums vieną vietą visiems programos elementams tvarkyti.

Naujas projekto modelis, pateiktas kartu su .NET 6, yra raktas į šį požiūrį, nes jis taiko logiškesnį grupavimą moduliams, naudojamiems įvairių platformų programose, ir kodo kūrimui bei diegimui. Nepaisant struktūrinių projektų pakeitimų, rytoj parašytas kodas turėtų būti panašus į šiandieninį, tačiau jį lengviau įdiegti keliose platformose ir nuolat atnaujinti keičiantis platformos API ir programų projektavimo išteklius.

Kelias į .NET MAUI

Mums vis dar trūksta laiko, kol pamatysime tinkamą .NET MAUI kodą, nes tai priklauso nuo .NET 6 SDK funkcijų, nors „GitHub“ saugykla jau atidaryta su kai kuriais pradiniais diegimais. Kai peržiūra bus pristatyta 2020 m. Pabaigoje, tai, ką gausime, turėtų būti gana panaši į esamas „Xamarin“ formas, kurios ir toliau bus kuriamos kartu su .NET MAUI. Pagrindiniai pokyčiai bus susiję su projektų struktūrizavimu - nauja vardų sritis bus perkelta iš paties „Xamarin“ vardų į .NET sistemą.

Paskelbtas .NET MAUI planas rodo, kad iš pradžių gausime peržiūros versiją, pagrįstą dabartinio „Xamarin Forms“ leidimo pervadinimu, su tam tikrais supaprastinimais ir naujomis funkcijomis, gautomis iš naujų .NET 6 funkcijų. Daugiau pakeitimų bus 2021 m., Kai vystysis .NET MAUI ir .NET 6, o „MacOS“ ir „Windows“ valdikliai prisijungs prie „Android“ ir „iOS“ iki 2021 m. Vasaros. Turėtumėte galėti pateikti vieningas programas iki numatyto 2021 m. 2021 m. Rugsėjis.

„Microsoft“ planuoja kitus „Xamarin“ pakeitimus .NET 6 laikotarpyje, kitas „Xamarin“ bibliotekas perkeldama į „System“ ir pervadindama „Xamarin.iOS“ ir „Xamarin.Android“ į „.NET“, skirtą „iOS“, ir „.NET“, skirtą „Android“. Tai logiškas žingsnis, jei šiek tiek liūdna tiems iš mūsų, kurie stebėjo Xamarin vystymąsi nuo pat pirmųjų Mono dienų.

Galbūt pozityvesnis būdas tai galvoti yra tas, kad pereinant prie daugiaplatformės „.NET Core“ kaip visų dalykų .NET pagrindo, ne tiek „Microsoft“ sugeria „Xamarin“, kiek „Xamarin“ tampa „.NET“ atvirojo kodo ateitimi. . Tai geras „Mono“ projekto palikimas.

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