Programiranje

Razumevanje Microsoft .NET 5

Ena ključnih tem Microsoftove strategije za razvijalce 2020 je morda najbolje mišljena kot premik med generacijami. Gre za razmeroma gladko primopredajo, oblikovano kot poenotenje starih in novih načinov dela. Toda na koncu, ne glede na to, ali gre za Project Reunion, WinUI 3 ali zagon .NET 5, nova tehnologija napreduje, stara pa pušča za seboj.

To ni slabo. Iz več razlogov razvijamo nove načine početja, vendar se pogosto združijo okoli ene ključne točke: nov način je boljši. Rešuje težave, ki jih stara orodja niso mogla, in odgovarja na nova vprašanja, ki jih ob postavitvi prvotne rešitve niso postavili.

Nov .NET za nov svet

Vsi ti razlogi se združujejo pri prehodu iz .NET Framework v .NET 5. Pred dvajsetimi leti, ko je bil definiran prvotni .NET Framework, smo v natančno določenih IT okoljih gradili monolitne odjemalsko-strežniške aplikacije. Zdaj gradimo mešanico lahkih porazdeljenih mikro storitev in mobilnih aplikacij na več platformah z uporabo hitro spreminjajoče se infrastrukture. Kljub klišejem gre za povsem nov svet.

.NET Core je bil zasnovan za tak način dela; večplastna platforma že od začetka svojega življenja in namenjena podpori novih mobilnih aplikacij, ki so najprej v oblaku, pa tudi tradicionalne vzorce in prakse .NET razvoja. V treh glavnih izdajah je pobral vse več API-jev, in ko so knjižnice .NET Standard začele ponujati skupni cilj za kodo, ki je olajšalo skupno rabo projektov, .NET Framework in Xamarin.

.NET 5: Pot za prihodnji razvoj

Tehnično naj bi bila ta nova izdaja .NET Core 4, vendar Microsoft preskakuje številko različice, da se ne bi zamenjal s trenutno različico .NET Framework. Hkrati premik na višjo številko različice in spuščanje Core iz imena pomeni, da je to naslednji korak za ves razvoj .NET-a. Dva projekta še vedno ohranjata jedrno ime: ASP.NET Core 5.0 in Entity Framework Core 5, saj zapuščeni projekti z enakimi številkami različic še vedno obstajajo.

To je pomemben mejnik, ki označuje točko, ko morate razmisliti o zagonu vseh novih projektov v .NET 5 in prestavitvi katere koli obstoječe kode iz .NET Framework. Čeprav Microsoft ne odstranjuje podpore iz .NET Framework, je v načinu vzdrževanja in v prihodnjih izdajah točk ne bo dobil nobene nove funkcije. Vsi novi API-ji in razvoj skupnosti bodo v .NET 5 (in dolgoročna podpora .NET 6 za leto 2021).

Nekatere znane tehnologije, kot so spletni obrazci in Windows Communication Foundation, so v .NET 5. zastarele. Če jih še vedno uporabljate, je za zdaj najbolje, da ostanete v .NET Framework 4 in načrtujete selitev na novejše, podprte tehnologije, kot je kot ASP.NET's Razor Pages ali gRPC. Obstajajo načrti za podporo skupnosti za alternativne okvire, ki bodo ponujali podobne API-je, vendar bo delo z novejšimi pristopi pomagalo kodi, ki bo odporna na prihodnost, in olajšalo delo na več platformah.

Nekoliko zmeden vidik .NET 5 je, kako deluje s knjižnicami .NET Standard. Ne bodo izginili, vendar jim kode .NET 5 ni treba neposredno sklicevati, saj so zdaj podmnožica ciljnega ogrodja .NET 5 (TFM). Ta novi TFM nadomešča starega netcoreapp in netstandard TFM-ji, če pa pišete kodo, ki jo je treba deliti med okviri, lahko še vedno uporabljate TFM .NET Standard 2.0 za namene združljivosti. V večini primerov pa verjetno delate samo v okolju .NET 5, da se lahko varno držite neto5,0 Izjava TFM.

Uvod v .NET 5

.NET 5.0 še naprej gosti isti znani nabor jezikov, vključno z novimi različicami C # in F #. Ti dodajo številne nove funkcije in so del Visual Studio 16.8 ali posodobljene razširitve C # Visual Studio Code. Microsoft je ogrodje in vse njegove izvedbe, tako kot večino Mono, preselil v eno shrambo GitHub, ki je utrdil razvoj in zagotovil, da imajo vse različice enake osnovne funkcije. Ko se Microsoft preseli na .NET 6, bo prinesel še druge izvedbe na višji ravni, vključno z Xamarinom.

Novi .NET še naprej temelji na tehnikah pravočasnega prevajanja, razvitih za izvirno izvajalno okolje Common Language. Novi CoreCLR še naprej izboljšuje zmogljivost, hkrati pa deluje v več arhitekturah procesorjev. S prihodom Applovih procesorjev, ki temeljijo na M1 ARM, bo koda, napisana v .NET za macOS, delovala kot izvorni binarni program na strojni opremi, ki temelji na Intel in ARM, zato kodi ne bo treba iti skozi drugo plast emulacije. Podpora za ARM64 bo omogočila, da se aplikacije .NET 5 samodejno zaženejo v sistemu Windows na strojni opremi ARM in izkoristijo funkcije Microsoftovih lastnih procesorjev SQ1 in SQ2.

Nekateri scenariji, na primer Web Assembly in mobilni operacijski sistemi, zahtevajo vnaprej prevedeno kodo. NET 5 poleg orodja JIT ponuja tudi predčasni prevajalnik. Prevajalnik AOT je zdaj na voljo v katerem koli razvojnem okolju, ekipa Uno Platform pa že opaža znatno povečanje hitrosti za podporo spletnim zborom, in sicer od 7 do 15-krat več kot v prejšnjem tolmaču jezikov spletnega zbora.

Načrtuje se, da bo prevajalnik AOT na voljo kot možnost za aplikacije, ki potrebujejo hiter zagon in manjše odtise pomnilnika, na primer na pametnih urah z omejeno količino virov in strojni opremi IoT. Druga možnost so razmestitve posameznih datotek. Vse, kar je potrebno za aplikacijo (vključno z izvajanjem), je združeno v en paket, kar olajša razmestitev aplikacij .NET v vsebnikih ali v sistemih, ki niso Windows.

Novega .NET-a ne bi smeli videti ločeno. Pomembni so tudi dodatni dogodki v zvezi s spletnim zbiranjem z Blazorjem in razvojem uporabniškega vmesnika na več platformah z MAUI (multiplatform app UI). Z uporabo kombinacije teh tehnologij z .NET 5 ni mogoče ciljati zelo malo, od strojne opreme razreda Raspberry Pi do telefonov Android do vsebnikov, ki jih gosti Kubernetes in se izvajajo na AWS in Azure.

Na .NET 6 leta 2021

Pomembno je, da je to le še en korak v procesu. .NET 5 je ključna tehnologija za ločevanje API-jev Windows od operacijskega sistema, združitev Project Reunion API-jev WinRT in Win32 ter prehod na WinUI 3 in MAUI kot sloja uporabniškega vmesnika. Večina tega dela se nadaljuje z izdajo .NET 6, ki je bila za mnoge od teh projektov leta 2021. Za začetek selitve vam ni treba čakati na .NET 6. Prej ko začnete, tem bolje imate čas, da se spoprimete z morebitnimi težavami.

.NET 5 bi morali videti kot prvi korak v naslednjem delu poti .NET, kjer bi morali začeti jemati vso to staro kodo in se odločiti, kaj je treba prenesti naprej s prenosom in posodabljanjem ter kaj je treba v celoti nadomestiti . Ko se bo leto 2020 končalo, boste verjetno načrtovali svoj razvojni urnik za leto 2021. S tem v mislih bi moral biti .NET 5 leča, ki vam pomaga, da se osredotočite na to, kaj je treba storiti, da bo vaša programska oprema pripravljena na veliko hitrejšo prihodnost, ki ni več vezana na izdaje sistema Windows ali na sistem Windows.

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