Täna teatame, et järgmine väljaanne pärast .NET Core 3.0 on .NET 5. See saab olema järgmine suur väljaanne .NET seerias.
Tulevikus on olemas ainult üks .NET, millega saad arendada Windowsi, Linuxit, macOS-i, iOS-i, Androidi, tvOS-i, watchOS-i ja WebAssemblyt, teiste seas.
Tutvustame uusi .NET API-sid, käitusaja funktsioone ja keelefunktsioone .NET 5-s.
Alustades .NET Core projektist, oleme lisanud platvormile umbes viiskümmend tuhat .NET Frameworki API-d. .NET Core 3.0 täidab suurema osa .NET Framework 4.8 järelejäänud funktsioonide lünkadest, toetades Windows Formsi, WPF-i ja Entity Framework 6-d. .NET 5 tugineb sellele tööle, kasutades .NET Core'i ja Mono parimaid funktsioone platvormi loomiseks. Seda saab kasutada kogu kaasaegse .NET koodi jaoks.
Plaanime .NET 5 välja anda 2020. aasta novembris ja esimese eelvaate käivitada 2020. aasta esimeses pooles. Seda toetatakse tulevastes uuendustes Visual Studio 2019, Visual Studio for Mac ja Visual Studio Code jaoks.
.NET 5 = .NET Core vNext
.NET 5 on järgmine samm .NET Core'is. Projekti eesmärk on parandada . NET:
- Loo .NET käitusaeg ja raamistik, mida saab kasutada igal pool, ühtse käitusaja käitumise ja arendajakogemusega.
- Kasutades .NET Core'i täielikult ära, . NET Framework, Xamarin ja Mono, et laiendada .NET võimalusi.
- Ehitades toote ühest koodibaasist, saavad arendajad (Microsoft ja kogukond) koos töötada ja laiendada, et parandada kõiki stsenaariume.
See uus projekt ja suund on .NET-i jaoks suur pöördepunkt. .NET 5 puhul on sinu kood ja projektifailid samad, ükskõik millist tüüpi rakendust sa ehitad. Igal rakendusel on ligipääs samadele käitusajale, API-le ja keelefunktsioonidele. Sisaldab ka jõudluse parandusi CoreFX-ile, mida tehakse peaaegu iga päev.
Kõik, mida sa .NET Core'i juures armastad, jääb eksisteerima:
- Avatud lähtekoodiga ja kogukonnale suunatud GitHubis.
- Platvormideülene rakendus.
- Toeta platvormispetsiifiliste funktsioonide kasutamist nagu Windowsi vormid ja WPF Windowsis ning iga platvormi natiivsed sidumised Xamarinilt.
- Kõrge jõudlusega.
- Paigalda kõrvuti.
- Väikesed projektifailid (SDK stiilis).
- Ühilduv käsurea liidestega (CLI).
- Visual Studio, Visual Studio for Mac ja Visual Studio Code integratsioon.
On ka mõned uued asjad:
- Sul on rohkem valikuid oma jooksuaegse kogemuse jaoks (sellest allpool lähemalt).
- Java koostalitlusvõime on saadaval kõigil platvormidel.
- Mitmed operatsioonisüsteemid toetavad Objective-C ja Swifti koostalitlusvõimet.
- CoreFX-i laiendatakse, et toetada .NET jaoks a-time-of-time (AOT), väiksemat jalajälge ja rohkem operatsioonisüsteeme.
Me avaldame .NET Core 3.0 selle aasta septembris, .NET 5 2020. aasta novembris ning seejärel plaanime välja anda suurema versiooni . NET:
Me jätsime versiooni 4 vahele, sest see segaks kasutajaid, kes tunnevad .NET raamistikku, mis on juba pikka aega olemas olnud 4.x seeriaga. Lisaks tahame selgelt kommunikeerida, et .NET 5 on .NET platvormi tulevik. Nimetades seda .NET 5-ks, teeb sellest kõrgeima versiooni, mida oleme kunagi välja andnud.
Kasutame seda võimalust ka nimetamise lihtsustamiseks. Me arvame, et kui ainult üks .NET on parim, siis pole vaja selgivat terminit nagu "Core". Lühem nimi on lihtsustus ja edastab ka sõnumi, et .NET 5-l on ühtne funktsionaalsus ja käitumine. Loomulikult võid soovi korral jätkata nime ".NET Core" kasutamist.
Jooksukogemus
Mono on .NET algne platvormideülene rakendus. See algas avatud lähtekoodiga alternatiivina .NET raamistikule ja liikus mobiilispetsiifiliseks iPhone/iOS ning Androidi seadmete populaarsuse kasvades. Mono on jooksuaeg, mida kasutatakse Xamarini osana.
CoreCLR on käitusaeg, mida kasutatakse .NET Core'i osana. Seda kasutatakse peamiselt pilverakenduste toetamiseks, sealhulgas Microsofti suurima teenuse jaoks, ning nüüd kasutatakse seda ka Windowsi töölaua-, IoT- ja masinõpperakendustes.
Kokkuvõttes jagavad .NET Core ja Mono runtime'id palju sarnasusi (lõppude lõpuks on mõlemad .NE runtime'id), kuid neil on ka väärtuslikud unikaalsed omadused. On väga loogiline, et saad valida soovitud jooksukogemuse. Teeme CoreCLR-i ja Mono omavahel vahetatavaks. Teeme selle nii lihtsaks kui lüliti ehitamine, et valida erinevate käitusaegsete valikute vahel.
Järgnevad jaotised kirjeldavad peamist fookust, mida plaanime .NET 5 jaoks kasutada. Need annavad selge ülevaate, kuidas plaanime neid kahte jooksuaega nii eraldi kui ka koos arendada.
Kõrge läbilaskevõime ja kõrge tootlikkus
Algusest peale tugines .NET just-in-time kompilaatoritele (JIT-id), et teisendada vahekeele (IL) kood optimeeritud masinkoodiks. Sellest ajast alates oleme loonud tööstusharu juhtiva JIT-põhise hallatud runtime'i, millel on väga kõrge läbilaskevõime ja mis parandab arendajakogemust, muutes programmeerimise kiireks ja lihtsaks.
JIT sobib ideaalselt pikaajalisteks pilve- ja kliendiolukordadeks. Nad suudavad genereerida koodi, mis on seadistatud konkreetsetele masinatele, sealhulgas konkreetsetele CPU käskudele. JIT suudab ka meetodeid taasluua käitusajal, mis teeb JIT-i kiiremaks, kuid võimaldab siiski luua väga optimeeritud koodiversioone, kui see muutub sageli kasutatavaks meetodiks.
Meie pingutused muuta ASP.NET Core Techpoweri võrdlustesti põhjal kiiremaks on suurepärane näide JIT-i jõust ja meie investeeringust CoreCLR-i. Meie pingutused .NET Core'i konteinerite jaoks tugevdamiseks on samuti tunnistus runtime'i võimest dünaamiliselt kohaneda piiratud keskkondadega.
Arendajatööriistad on veel üks suurepärane näide sellest, kui hea JIT on, näiteks dotnet watch'i tööriistad või edit and continue. Tööriistad peavad sageli kompileerima ja laadima koodi mitu korda ühes protsessis ilma taaskäivituseta ning seda tuleb teha väga kiiresti.
Arendajad, kes kasutavad .NET Core'i või .NET Framework'i, toetuvad peamiselt JIT-ile. Seetõttu peaks kogemus olema tuttav.
Enamiku .NET 5 tööstsenaariumite vaikimisi kogemus kasutab JIT-põhist CoreCLR käitusaega. Kaks märkimisväärset erandit on iOS ja kliendi Blazor (web assembly), kuna mõlemad nõuavad ette-of-time (AOT) natiivset kompileerimist.
Kiire käivitamine, väike jalajälg ja madal mälukasutus
Enamik Mono projektist on keskendunud mobiilile ja konsoolidele. Projekti võtmeomadus ja tulemus on .NET AOT kompilaator, mis põhineb tööstusharu juhtival LLVM kompilaatori projektil. Mono AOT kompilaator võimaldab .NET koodi ehitada natiivsesse käivitatavasse koodi, mis töötab arvutis, täpselt nagu C++ kood. AOT-kompileeritud rakendused saavad töötada tõhusalt väiksemates kohtades ja vajadusel vahetada läbilaskevõimet käivitamiseks.
Blazori projekt kasutab juba Mono AOT-i. See saab olema üks esimesi projekte, mis läheb üle .NET 5-le. Kasutame seda ühe võimalusena selle plaani tõestamiseks.
AOT lahendusi on kahte tüüpi:
- Vajab lahendust, mis on 100% AOT kompileeritud.
- Enamik koodi on AOT-kompileeritud lahendus, kuid JIT-i või tõlgendajaid saab kasutada koodimustrite jaoks, mis ei ole AOT-sõbralikud (näiteks üldised). Mono AOT toetab mõlemat juhtumit. Apple nõuab iOS-i ja mõnede konsoolide jaoks esimest AOT-i turvalisuse huvides. Teine meetod on parem valik, sest see pakub AOT eeliseid ja väldib mõningaid puudusi.
.NET Native on meie AOT kompilaator Windowsi UWP rakendustele ning on ka näide esimesest ülalmainitud AOT tüübist. Selles konkreetses rakenduses piirame .NET API-d ja funktsioone, mida saad kasutada. Sellest kogemusest õppisime, et AOT lahendused peavad hõlmama kõiki .NET API-de ja mustrite aspekte.
AOT kompileerimine on endiselt vajalik iOS-il, veebikokkupanekul ja mõnel konsoolil. Rakenduste puhul, mis vajavad kiiremat käivitamist või väikese jalajälje, teeme AOT kompileerimise valikuks.
Projekti sünd
Alustasime seda projekti 2018. aasta detsembris tehnilise meeskonnaga Bostonis. .NET meeskonna (Mono/Xamarin ja .NET Core) ning Unity disainijuhid tutvustasid mitmesuguseid tehnilisi võimalusi ja arhitektuurilisi suundi.
Nüüd liigume seda projekti edasi meeskonnana, millel on mitmed tulemused. Oleme alates detsembrist mitmetes projektides palju edusamme teinud:
- Määratletud on minimaalne kiht, mis määratleb käitusaja <-> hallatava koodikihi eesmärgiga saavutada >99% CoreFX avalikust koodist.
- MonoVM saab nüüd kasutada CoreFX-i ja selle klassiteeke.
- Käivita kõik CoreFX testid MonoVM-is CoreFX rakendusega.
- Käivita ASP.NET Core 3.0 rakendusi MonoVM-iga.
- Käivita MonoDevelop CoreCLR-il ja seejärel käivita Visual Studio Macile.
Migreeruda ühele . .NET rakendus tõstatab olulisi küsimusi: Milline saab olema sihtraamistik? Kas NuGeti paketi ühilduvuse reeglid on samad? Milliseid töökoormusi peaks .NET 5 SDK toetama? Kuidas ma kodeerin konkreetse arhitektuuri jaoks? Kas meil on ikka vaja .NET Standardit? Töötame praegu nende küsimustega ja peagi jagame disainidokumenti, mida saate lugeda ja tagasisidet anda.
Epiloog
.NET 5 projekt on .NET jaoks oluline ja põnev uus suund. Näete, et .NET muutub lihtsamaks, kuid pakub ka laiemat valikut funktsioone ja kasutusvõimalusi. Kõik uued arendused ja funktsioonid kuuluvad .NET 5 koosseisu, sealhulgas uued C# versioonid.
Näeme helget tulevikku, kus saad kasutada samu .NET API-sid ja keeli, et sihtida laia valikut rakendustüüpe, operatsioonisüsteeme ja kiibi arhitektuure. Visual Studios, Visual Studio for Macis, Visual Studio Code'is, Azure DevOpsis või käsureale on lihtne muuta ehituskonfiguratsiooni, et luua erinevaid rakendusi.
Originaallink:Hüperlingi sisselogimine on nähtav.
|