Möödunud kuul jõudis viimaks ametliku väljalaskeni Microsofti .NET 7. Nii nagu iga varasemgi .NETi versioon, muudab uus väljalase arenduskogemuse mugavamaks ja kiiremaks, loodud teenused vastupidavamaks ja väledamaks ning annab arendajate käsutusse laia hulga uusi tööriistu ning võimalusi.
Uptime’i .NET arhitekt ja vanemarendaja Tanel Hiob märkis, et suure tõenäosusega möödubki 2023. aasta .NETi arendajate jaoks uue versiooni tähe all, mil üritatakse uute võimalustega lähemalt tutvust teha ning neid praktikas rakendada. Kuigi uut on palju, siis on Hiobi sõnul viieks kõige huvitavamaks ja olulisemaks uueks võimaluseks just alljärgnev.
Blazor Custom Elements
Nüüd saab Blazori abil loodud komponente kasutada laiemalt, näiteks Reacti või Angulari projektide puhul. Hiob märkis, et hetkel on veel vara öelda, kui hea mõte see on, kuid viitas siiski, et samm on sisse juhatamas huvitavat etappi front-end arendustes, eemaldades senised piirangud ja muutes arendusprotsessi märgatavalt kiiremaks ja mugavamaks.
Uuenduse kohta saab täpsemalt lugeda siit.
New Orleans 7
New Orleans on raamistik, mis toetab virtual actor model arhitektuuri, lubades ärirakendustes seni mikroteenuste puhul kogetud puudujääke vältida. Raamistikus on kasutusel silo ja grain mõisted, kus ühes silos võib olla mitmeid graine ja grainid sisaldavad äriloogikat. Raamistiku efektiivsus tuleneb sellest, et see oskab graine silode vahel täpselt jagada, et rakenduse koormus ja suhtlus teiste silodega oleks minimaalne.
Hiob märkis, et kuna .NET 7 uuendusega parandati oluliselt raamistiku üldist jõudlust ja muudeti selle kasutamine arendajale mugavamaks, seega on just nüüd aeg paras see proovile panna.
Uuenduse kohta saab lähemalt lugeda siit.
Dapr
Dapr on oma olemuselt sarnane New Orleansile ning ka selle peamine eesmärk on mikroteenuste puudujääke kompenseerida. Erinevalt eelmisest raamistikust töötab Dapr aga Dockeri konteineritega, pakkudes seeläbi konteinerite häid omadusi – tehnoloogiline agnostilisus, lihtsam legacy rakenduste migreerimine ja isoleeritud runtime keskkond. Dapri mikroteenused suhtlevad otse Dapri sidecar mooduliga, jättes routringu ja turvadeemed täielikult Dapri hooleks.
Hiob märkis, et kui New Orleans toetab keeltena vaid C# ja F#, siis Dapr on märksa paindlikum. Samas on New Orleansi eeliseks selle efektiivsus, mis on kasulik juhtudel, kui ressursside kokkuhoidmine on kriitilise tähtsusega.
Dapri kohta saad lähemalt lugeda siit.
Dynamic PGO ja Native AOT optimeerimine
.NET 7 paneb aluse rakenduste paremale optimeerimisele, seda osaliselttänu Dynamic Profile Guided Optimizationile (PGO). Kui juba varem oli saadaval PGO staatiline versioon, mis võimaldas deploy’itud rakendusi pärast teste ümber kompileerida ja uuesti avalikkuse ette tuua, siis PGO dünaamiline versioon muudab asjad oluliselt lihtsamaks.
Hiob selgitas, et nüüd suudab .NET runtime ise oma kasutustmõõta ja end töö ajal ümber kompileerida, kaotama seejuures pea midagi jõudluse vaatest. See tähendab, et edaspidi peaks .NETi toel loodud rakendused olema tuntaval kiiremad.
.NET 7 juurest leiab ka Native AOT (Ahead Of Time) funktsionaalsuse, mis kompileerib rakenduse täpselt serveri operatsioonisüsteemi kujule. Hiob tõdes, et seeläbi jäädakse küll ilma PGO tagatavast kiirendusest, kuid samas peaks rakenduse käivitumise aeg lühenema ja mälukasutus vähenema, kuna rakendus töötab ilma .NETi runtime abita. Native AOT töötab hästi ka Blazoriga, eemaldades koodist segmente, mida tegelikult rakenduse tööks vaja ei lähe.
Uuenduse kohta saad täpselt lugeda siit.
JIT Intrinsics
JIT Intrinsics võimaldab .NETil seadme riistvaraga oluliselt täpsemalt suhelda, muutes seeläbi teatud protsessid kiiremaks ja lihtsamaks. Hiob märkis, et näiteks saab kood protsessorilt küsida, kas sel on spetsiaalne meetod kõige suurema numbri leidmiseks. Kui protsessor ütleb ei, töötavad algoritmid vanamoodi, kui aga vastuseks on jah, on võimalik protsesse kiirendada. Niimoodi optimeeriti näiteks paljud LINQ meetodid suurusjärgu võrra kiiremaks.