Programiranje

Razvoj aplikacij .NET za prihodnost s platformo Uno

Če boste čas poslušali in se pogovarjali z razvijalci sistema Windows, boste vedeli, da je glede smeri platforme veliko zmede in razočaranja, zlasti okoli .NET in UWP (Universal Windows Platform). Microsoft poskuša potegniti črto med razlikami med UWP in starejšimi SDK-ji za Windows, medtem ko poskuša z napovedjo Build 2020 za Project Reunion vgraditi vse v prihodnost .NET 5, vendar bo še vedno potreben čas, da se zagotovi enotna platforma.

Veliko tega je bilo odvisno od tega, kako so bile v preteklosti dostavljene posodobitve platforme Windows: skupaj z izdajami operacijskega sistema. Project Reunion temelji na delu s komponentami uporabniškega vmesnika WinUI, ki jih ločuje od osnovnih operacijskih sistemov in omogoča, da se razvijalska platforma razvija veliko hitreje kot prej.

Nadgrajevanje odprtokodnega pristopa k platformi ponuja več priložnosti za razvoj razvojnega modela .NET (in vaše kode) na čim več platform. Eden od primerov, kako bo to delovalo, je izvedba WinUI platforme Uno, ki je pred kratkim izdala svojo tretjo večjo izdajo.

Predstavljamo platformo Uno 3.0

Če platforme Uno še niste gledali, jo je morda najlažje predstavljati kot alternativo Xamarinu, ki vam omogoča izdelavo kode .NET, ki deluje na iOS, Android, macOS in spletu. O Unu sem že pisal kot o načinu dostavljanja znanih uporabniških vmesnikov prek spleta z uporabo WinUI z WebAssembly in Microsoftovim razvojnim okvirom Blazor.

Uno Platform 3.0 se razvija za podporo WinUI 3.0 skupaj z WinUI 2.0. Na ta način lahko kombinirate in ujemate nove in trenutne kontrole, pristop, ki bi moral dobro delovati poleg postopnega uvajanja tako WinUI 3.0 kot API-jev Project Reunion na ravni sistema.

V Unu je marsikaj všeč, še posebej, da je učna krivulja malo ali nič. Kodo lahko vgradite v svoj najljubši IDE in uporabite obstoječa orodja in ogrodja, ki zagotavljajo skupno plast uporabniškega vmesnika za vse vaše različice kode. Svoje C # in XAML morate napisati samo enkrat, pri čemer se koda WinUI izvaja neposredno v sistemu Windows in prek Uno na drugih platformah, pri tem pa nadgradite domača orodja Xamarin za iOS, macOS in Android ter uporabite Mono-WASM implementacijo na Splet.

Uporaba Uno za prenos aplikacij .NET v macOS

Pod pokrovom Unoova izvedba macOS temelji na podobnostih med AppCit macOS in UIKit iOS. To omogoča razvojni skupini, da objavi svoje obstoječe izvedbe nadzora sistema iOS. Čeprav to deluje, imajo nekateri kontrolniki še vedno težave, zato je vredno poskusiti, preden uvedete katero koli kodo za svoje uporabnike. Kljub temu je učinkovit način za prenos obstoječih aplikacij .NET iz sistema Windows v macOS. Uno bi moral z nadgradnjo jedrnih knjižnic macOS omogočiti, da se vaša koda izvaja na nedavno objavljenem Apple siliciju, ki temelji na ARM.

Podpora za Mac v Unu je razmeroma nova, začela se je maja 2020 s ponovno implementacijo aplikacije Windows Kalkulator v macOS in objavljena v Appleovi trgovini macOS. Izdelava izdaje macOS obstoječe kode zahteva uporabo nabora novih predlog Uno in orodja za ukazno vrstico Windows .NET. Ko namestite nove predloge za Uno 2.3 ali 3.0, lahko ustvarite programski oder za aplikacijo macOS z istim imenom kot projekt, na katerega želite ciljati.

Nato lahko ta projekt premaknete v isto mapo kot ostale aplikacije in dodate nov projekt v obstoječo rešitev Visual Studio. Sestavite kodo za macOS z Visual Studio za Mac in konfigurirajte nastavitve simulatorja iPhone, da ciljajo na vašo razvojno napravo macOS.

Ker Visual Studio za Mac ne morete uporabljati za delo v aplikacijah Windows WinUI, je za celotno rešitev dobro uporabiti Git ali podobno platformo za nadzor izvorne kode, da lahko upravljate spremembe kode za macOS in Windows. Če delate na različici aplikacije WebAssembly, jo uporabite s kodo Visual Studio, da jo sestavite z razširitvami napak C # in JavaScript. Podpora za MacOS je na voljo v različicah Uno 2.4 in 3.0, najnovejša različica pa prikazuje platformo za predvajalnike video predvajalnikov na osnovi WinUI, ki je na voljo v vseh glavnih trgovinah z aplikacijami.

Uporaba WinUI 3.0 v Uno

Če nameravate delati z WinUI 3.0, morate uporabiti nedavno izdajo Uno 3.0. Ponovno uporabite predloge .NET za platformo Uno za nastavitev odra za svojo kodo. Če premikate obstoječo kodo v WinUI 3.0, morate spremeniti imenski prostor, ki ga uporabljate, tako za Microsoftove kontrolnike kot za kodo Uno - kar je enostavno narediti z orodji za refaktoring, vgrajenimi v Visual Studio.

Zanimiv vidik platforme Uno je podpora za naprave z dvojnim zaslonom. Če v Uno prenesete obstoječo kodo in dodate nadzorne elemente z dvojnim zaslonom, bi morali z minimalnimi spremembami prenesti aplikacije iz sistema Windows v prihajajoči Android Surface Duo. Ker Microsoft daje prednost mobilnim aplikacijam z dvojnim zaslonom in sodeluje z Googlom za izboljšanje podpore prihajajočih izdajah za Android, bodo orodja, kot je Uno, pomemben način za prevzem obstoječih izkušenj velikega zaslona in tabličnih računalnikov iz sistema Windows ter njihovo zložljivo in dvozaslonsko Android opremo. .

Uno Platform in prihodnost razvoja aplikacij .NET

Jasno je, da si Microsoft prizadeva odpraviti zmedo o tem, kako zgraditi aplikacije v .NET ekosistemu, in sicer z WinUI in Project Reunion, da bi zagotovil prepotrebno jasnost o prihodnosti. Toda takoj, ko Microsoft obljubi, da bodo dostavljeni, bodo za številne razvijalce še vedno verjetno prepočasni. Tako platforma Uno kot Xamarinov MAUI sta način za hitrejši dostop do teh tehnologij, poleg obstoječe .NET kode.

Z dodajanjem podpore macOS in spletnega uporabniškega vmesnika .NET je platforma Uno boljša izbira za ciljanje na čim več uporabnikov z najmanjšo količino spremembe kode; to je pot v prihodnost .NET, ki bi morala prihraniti veliko razvojnega časa in zmanjšati obremenitev podpore na minimum.

Uporaba Uno bi morala vašo obstoječo kodo .NET zaščititi v prihodnosti tudi na druge načine. Aplikacije v brskalniku WebAssembly in samostojne aplikacije WASI (WebAssembly System Interface) bi morale poenostaviti postopek približevanja vaše kode novi generaciji robne strojne opreme, zlasti majhnih faktorjev in naprav z majhnim zaslonom, ki temeljijo na ARM in drugih procesorjih z majhno porabo energije.

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