Šiandien skelbiame, kad kitas leidimas po ".NET Core 3.0" bus ".NET 5". Tai bus kitas didelis .NET serijos leidimas.
Ateityje bus tik vienas .NET , su kuriuo galėsite kurti "Windows", "Linux", "macOS", "iOS", "Android", "tvOS", "watchOS" ir "WebAssembly".
Pristatome naujas .NET API, vykdymo laiko funkcijas ir kalbos funkcijas .NET 5.
Pradedant nuo ".NET Core" projekto, į platformą įtraukėme apie penkiasdešimt tūkstančių ".NET Framework" API. ".NET Core 3.0" užpildo didžiąją dalį likusių ".NET Framework 4.8" funkcijų spragų, palaikančių "Windows Forms", WPF ir "Entity Framework 6". ".NET 5" remiasi šiuo darbu, naudodama geriausias ".NET Core" ir "Mono" funkcijas, kad sukurtų platformą. Jį galite naudoti visam šiuolaikiniam .NET kodui.
Ketiname išleisti .NET 5 2020 m. lapkritį, o pirmąją peržiūrą paleisti 2020 m. pirmoje pusėje. Jis bus palaikomas būsimuose "Visual Studio 2019", "Visual Studio for Mac" ir "Visual Studio Code" naujinimuose.
.NET 5 = .NET Core vNext
.NET 5 yra kitas ".NET Core" žingsnis. Projekto tikslas – pagerinti . GRYNASIS:
- Sukurkite .NET vykdyklę ir sistemą, kurią galima naudoti bet kur, naudodami vieningą vykdymo laiką ir kūrėjo patirtį.
- Naudodamiesi visais .NET Core privalumais, . "NET Framework", "Xamarin" ir "Mono", kad išplėstų .NET galimybes.
- Kurdami produktą iš vienos kodų bazės, kūrėjai ("Microsoft" ir bendruomenė) gali dirbti kartu ir plėstis kartu, kad patobulintų visus scenarijus.
Šis naujas projektas ir kryptis yra pagrindinis .NET lūžio taškas. Naudojant .NET 5, jūsų kodas ir projekto failai bus vienodi, nesvarbu, kokio tipo programą kuriate. Kiekviena programa turi prieigą prie tų pačių vykdyklės, API ir kalbos funkcijų. Taip pat apima "CoreFX" našumo patobulinimus, kurie atliekami beveik kasdien.
Viskas, kas jums patinka ".NET Core", išliks ir toliau:
- Atvirojo kodo ir bendruomenės orientuota "GitHub".
- Kelių platformų diegimas.
- Palaikykite konkrečios platformos funkcijas, tokias kaip "Windows" formos ir WPF sistemoje "Windows", ir vietinius susiejimus kiekvienai vietinei platformai iš "Xamarin".
- Didelis našumas.
- Įdiekite vienas šalia kito.
- Maži projekto failai (SDK stilius).
- Suderinamas su komandinės eilutės sąsajomis (CLI).
- "Visual Studio", "Visual Studio for Mac" ir "Visual Studio Code" integracija.
Taip pat yra keletas naujų dalykų:
- Turėsite daugiau vykdymo laiko parinkčių (daugiau apie tai toliau).
- "Java" sąveika bus prieinama visose platformose.
- Kelios operacinės sistemos palaikys "Objective-C" ir "Swift" sąveikumą.
- "CoreFX" bus išplėstas, kad palaikytų "ahead-of-time" (AOT) .NET, mažesnį pėdsaką ir palaikytų daugiau operacinių sistemų.
Šių metų rugsėjį išleisime .NET Core 3.0, 2020 m. lapkritį – .NET 5, o tada ketiname išleisti pagrindinę versiją. GRYNASIS:
Praleidome 4 versiją, nes tai suklaidintų vartotojus, kurie yra susipažinę su .NET Framework, kuri jau seniai egzistuoja su 4.x serija. Be to, norime aiškiai pranešti, kad .NET 5 yra .NET platformos ateitis. Pavadinus jį .NET 5, tai yra aukščiausia versija, kurią kada nors išleidome.
Taip pat pasinaudojame šia galimybe supaprastinti pavadinimų suteikimą. Manome, kad jei tik vienas .NET yra geriausias, mums nereikia aiškinamojo termino, pvz., "Core". Trumpesnis pavadinimas yra supaprastinimas ir taip pat perduoda žinią, kad .NET 5 turi vienodą funkcionalumą ir veikimą. Žinoma, jei norite, galite ir toliau naudoti pavadinimą ".NET Core".
Vykdymo laiko patirtis
"Mono" yra originalus kelių platformų ".NET" įgyvendinimas. Jis prasidėjo kaip atvirojo kodo alternatyva .NET Framework ir perėjo prie mobiliųjų įrenginių, populiarėjant iPhone/iOS ir Android įrenginiams. "Mono" yra vykdymo laikas, naudojamas kaip "Xamarin" dalis.
"CoreCLR" yra vykdymo laikas, naudojamas kaip ".NET Core" dalis. Jis pirmiausia naudojamas debesies programoms, įskaitant didžiausią "Microsoft" paslaugą, palaikyti, o dabar taip pat naudojamas "Windows" darbalaukyje, daiktų internete ir mašininio mokymosi programose.
Apibendrinant galima pasakyti, kad .NET Core ir Mono vykdymo laikai turi daug panašumų (juk jie abu yra .NE vykdymo laikai), tačiau jie taip pat turi vertingų unikalių savybių. Labai prasminga, kad būtų galima pasirinkti norimą vykdymo patirtį. Mes darome "CoreCLR" ir "Mono" keičiamus tarpusavyje. Padarysime tai taip paprasta, kaip sukurti jungiklį, kad galėtumėte pasirinkti iš skirtingų vykdymo laiko parinkčių.
Tolesniuose skyriuose aprašomas pagrindinis dėmesys, kurį planuojame naudoti .NET 5. Jie suteikia aiškią perspektyvą, kaip planuojame plėtoti šiuos du vykdymo laikus atskirai ir kartu.
Didelis našumas ir didelis produktyvumas
Nuo pat pradžių .NET rėmėsi "just-in-time" kompiliatoriais (JIT), kad konvertuotų tarpinės kalbos (IL) kodą į optimizuotą mašininį kodą. Nuo to laiko sukūrėme pramonėje pirmaujantį JIT pagrįstą valdomą vykdymo laiką, kuris pasižymi labai dideliu pralaidumu ir pagerina kūrėjų patirtį, todėl programavimas yra greitas ir paprastas.
JIT idealiai tinka ilgalaikiams debesies ir klientų scenarijams. Jie gali generuoti kodą, sukonfigūruotą konkrečioms mašinoms, įskaitant konkrečias procesoriaus instrukcijas. JIT taip pat gali atkurti metodus vykdymo metu, o tai pagreitina JIT, tačiau vis tiek turi galimybę generuoti labai optimizuotas kodo versijas, jei tai tampa dažnai naudojamu metodu.
Mūsų pastangos, kad "ASP.NET Core" veiktų greičiau pagal "Techpower" etaloną, yra puikus JIT galios ir mūsų investicijų į "CoreCLR" pavyzdys. Mūsų pastangos sustiprinti .NET Core konteineriams taip pat liudija vykdymo laiko gebėjimą dinamiškai prisitaikyti prie ribotos aplinkos.
Kūrėjų įrankiai yra dar vienas puikus pavyzdys, kaip JIT yra tikrai puikus, pavyzdžiui, dotnet žiūrėti įrankius arba redaguoti ir tęsti. Įrankiai dažnai turi kompiliuoti ir įkelti kodą kelis kartus per vieną procesą be paleidimo iš naujo, ir tai turi padaryti labai greitai.
Kūrėjai, naudojantys .NET Core arba .NET Framework, pirmiausia pasikliauja JIT. Todėl patirtis turėtų būti pažįstama.
Numatytoji daugumos .NET 5 darbo scenarijų patirtis naudos JIT pagrįstą "CoreCLR" vykdymo laiką. Dvi svarbios išimtys yra "iOS" ir klientas "Blazor" (žiniatinklio surinkimas), nes jiems abiem reikalingas išankstinis (AOT) kompiliavimas.
Greitas paleidimas, mažas plotas ir mažas atminties naudojimas
Didžioji dalis "Mono" projekto buvo sutelkta į mobiliuosius telefonus ir konsoles. Pagrindinis projekto bruožas ir rezultatas yra .NET AOT kompiliatorius, pagrįstas pirmaujančiu LLVM kompiliatoriaus projektu. Mono AOT kompiliatorius leidžia .NET kodą integruoti į vietinį kodo vykdomąjį failą, kuris gali veikti kompiuteryje, kaip ir C++ kodas. AOT kompiliuotos programos gali efektyviai veikti mažesnėse vietose ir prireikus keistis pralaidumu paleidimui.
Blazor projektas jau naudoja Mono AOT. Tai bus vienas iš pirmųjų projektų, pereinančių prie .NET 5. Mes naudojame jį kaip vieną iš galimybių įrodyti šį planą.
Yra dviejų tipų AOT sprendimai:
- Reikalingas sprendimas, kuris yra 100% AOT kompiliuotas.
- Dauguma kodo yra AOT kompiliuotas sprendimas, tačiau JIT arba interpretatoriai gali būti naudojami kodo modeliams, kurie nėra tinkami AOT (pvz., generiniams vaistams). Mono AOT palaiko abu atvejus. "Apple" saugumo sumetimais reikalauja pirmojo AOT, skirto "iOS" ir kai kurioms konsolėms. Antrasis metodas yra geresnis pasirinkimas, nes jis siūlo AOT privalumus ir išvengia kai kurių trūkumų.
.NET Native yra mūsų AOT kompiliatorius, skirtas Windows UWP programoms, taip pat yra pirmojo aukščiau išvardyto AOT tipo pavyzdys. Šiame konkrečiame diegime ribojame .NET API ir funkcijas, kurias galite naudoti. Iš šios patirties sužinojome, kad AOT sprendimai turi apimti visus .NET API ir šablonų aspektus.
AOT kompiliacija vis dar reikalinga "iOS", žiniatinklio surinkime ir kai kuriose konsolėse. Programoms, kurioms reikalingas greitesnis paleidimas arba mažas plotas, AOT kompiliaciją padarysime galimybe.
Projekto gimimas
Šį projektą pradėjome 2018 m. gruodį su technine komanda Bostone. .NET komandos (Mono/Xamarin ir .NET Core) ir Unity dizaino lyderiai pristatė įvairias technines galimybes ir architektūrines kryptis.
Dabar šį projektą judame į priekį kaip komanda su rezultatų rinkiniu. Nuo gruodžio mėnesio padarėme didelę pažangą įgyvendindami kelis projektus:
- Apibrėžiamas minimalus sluoksnis, apibrėžiantis <-> valdomo kodo sluoksnio vykdymo laiką, siekiant pasiekti >99% CoreFX viešojo kodo.
- MonoVM dabar gali naudoti CoreFX ir jo klasių bibliotekas.
- Paleiskite visus "CoreFX" testus "MonoVM" naudodami "CoreFX" diegimą.
- Paleiskite ASP.NET Core 3.0 programas su MonoVM.
- Paleiskite "MonoDevelop" "CoreCLR", tada paleiskite "Visual Studio for Mac".
Perkelti į vieną . .NET diegimas kelia keletą svarbių klausimų: Kokia bus tikslinė sistema? Ar "NuGet" paketo suderinamumo taisyklės yra vienodos? Kokius darbo krūvius turėtų palaikyti .NET 5 SDK? Kaip koduoti konkrečią architektūrą? Ar mums vis dar reikia .NET standarto? Šiuo metu sprendžiame šiuos klausimus ir netrukus pasidalinsime dizaino dokumentu, kad galėtumėte perskaityti ir pateikti atsiliepimus.
Epilogas
.NET 5 projektas yra svarbi ir įdomi nauja .NET kryptis. Pamatysite, kad .NET taps paprastesnis, bet taip pat su platesniu funkcijų ir naudingumo spektru. Visi nauji patobulinimai ir funkcijos bus .NET 5 dalis, įskaitant naujas C# versijas.
Matome šviesią ateitį, kai galėsite naudoti tas pačias .NET API ir kalbas, kad nukreiptumėte į įvairius programų tipus, operacines sistemas ir silicio architektūras. "Visual Studio", "Visual Studio for Mac", "Visual Studio Code", "Azure DevOps" arba komandinėje eilutėje lengva pakeisti kūrimo konfigūraciją, kad būtų galima kurti skirtingas programas.
Originali nuoroda:Hipersaito prisijungimas matomas.
|