Tänään ilmoitamme, että seuraava julkaisu .NET Core 3.0:n jälkeen on .NET 5. Tämä tulee olemaan seuraava suuri julkaisu .NET-sarjassa.
Tulevaisuudessa on vain yksi .NET, jolla voit kehittää Windowsia, Linuxia, macOS:ää, iOS:ää, Androidia, tvOS:ää, watchOS:ää ja WebAssemblyä muiden muassa.
Esittelemme uudet .NET API:t, ajonaikaiset ominaisuudet ja kieliominaisuudet .NET 5:een.
Aloittaen .NET Core -projektista, olemme lisänneet alustalle noin viisikymmentätuhatta .NET Framework -rajapintaa. .NET Core 3.0 täyttää suurimman osan .NET Framework 4.8:n jäljellä olevista ominaisuusaukkoista, tukien Windows Formsia, WPF:ää ja Entity Framework 6:ta. .NET 5 rakentuu tämän työn päälle hyödyntäen .NET Coren ja Monon parhaita ominaisuuksia alustan luomiseksi. Voit käyttää sitä kaikkeen nykyaikaiseen .NET-koodiin.
Aiomme julkaista .NET 5:n marraskuussa 2020 ja julkaista ensimmäisen esikatselun vuoden 2020 ensimmäisellä puoliskolla. Sitä tuetaan tulevissa päivityksissä Visual Studio 2019:lle, Visual Studio Macille ja Visual Studio Codelle.
.NET 5 = .NET Core vNext
.NET 5 on seuraava askel .NET Coressa. Projektin tavoitteena on parantaa . NET:
- Rakenna .NET-ajonaikainen ja kehys, jota voi käyttää missä tahansa, yhtenäisellä ajonaikaisella käyttäytymisellä ja kehittäjäkokemuksella.
- Hyödyntämällä .NET Corea täysimääräisesti, . NET Framework, Xamarin ja Mono laajentaakseen .NET:n ominaisuuksia.
- Rakentamalla tuotteen yhdestä koodipohjasta kehittäjät (Microsoft ja yhteisö) voivat tehdä yhteistyötä ja laajentaa yhdessä parantaakseen kaikkia tilanteita.
Tämä uusi projekti ja suunta on merkittävä käännekohta .NET:lle. .NET 5:llä koodisi ja projektitiedostosi pysyvät samoina riippumatta siitä, minkä tyyppistä sovellusta rakennat. Jokaisella sovelluksella on pääsy samoihin ajonaikaisiin, API- ja kieliominaisuuksiin. Sisältää myös suorituskyvyn parannuksia CoreFX:ään, joita tehdään lähes päivittäin.
Kaikki, mitä rakastat .NET Coressa, jatkaa olemassaoloaan:
- Avoimen lähdekoodin ja yhteisölähtöinen GitHubissa.
- Monialustainen toteutus.
- Tuki alustakohtaisten ominaisuuksien, kuten Windows-lomakkeiden ja WPF:n hyödyntämistä Windowsissa sekä natiivisidoksia jokaiselle natiivialustalle Xamarinilta.
- Korkea suorituskyky.
- Asenna rinnakkain.
- Pienet projektitiedostot (SDK-tyylinen).
- Yhteensopiva komentoriviliitäntöjen (CLI) kanssa.
- Visual Studio, Visual Studio for Mac ja Visual Studio Code -integraatio.
On myös joitakin uusia asioita:
- Sinulla on enemmän vaihtoehtoja ajonaikaiselle kokemuksellesi (lisää siitä alla).
- Java-yhteensopivuus tulee olemaan saatavilla kaikilla alustoilla.
- Useat käyttöjärjestelmät tukevat Objective-C:n ja Swiftin yhteentoimivuutta.
- CoreFX:ää laajennetaan tukemaan .NET:n ennakkokäyttöä (AOT), pienempää kokonaisuutta ja tukea useammille käyttöjärjestelmille.
Julkaisemme .NET Core 3.0:n tämän vuoden syyskuussa, .NET 5:n marraskuussa 2020, ja sen jälkeen aiomme julkaista merkittävän version . NET:
Jätimme version 4 väliin, koska se hämmentäisi käyttäjiä, jotka tuntevat .NET Frameworkin, joka on ollut käytössä jo pitkään 4.x-sarjassa. Lisäksi haluamme selkeästi viestiä, että .NET 5 on .NET-alustan tulevaisuus. Kutsumalla sitä .NET 5:ksi se on korkein versio, jonka olemme koskaan julkaisseet.
Hyödynnämme myös tämän tilaisuuden yksinkertaistaaksemme nimeämistä. Uskomme, että jos vain yksi .NET on paras, emme tarvitse selventävää termiä kuten "Core". Lyhyempi nimi on yksinkertaistus ja välittää myös viestin, että .NET 5:llä on yhtenäinen toiminnallisuus ja käyttäytyminen. Tietenkin voit jatkaa nimen ".NET Core" käyttöä, jos haluat.
Ajonaikainen kokemus
Mono on .NET:n alkuperäinen monialustainen toteutus. Se alkoi avoimen lähdekoodin vaihtoehtona .NET Frameworkille ja siirtyi mobiilikohtaiseksi iPhonen/iOS- ja Android-laitteiden suosion myötä. Mono on ajoaika, jota käytetään osana Xamarinia.
CoreCLR on ajonaikainen versio, jota käytetään osana .NET Corea. Sitä käytetään ensisijaisesti pilvisovellusten tukemiseen, mukaan lukien Microsoftin suurin palvelu, ja sitä käytetään nyt myös Windowsin työpöytä-, IoT- ja koneoppimissovelluksissa.
Yhteenvetona .NET Core- ja Mono-ajonaikat jakavat monia yhtäläisyyksiä (loppujen lopuksi ne ovat molemmat .NE-ajonaikaisia), mutta niillä on myös arvokkaita ainutlaatuisia ominaisuuksia. On hyvin järkevää tehdä haluamasi suorituskokemuksen valinta. Teemme CoreCLR:stä ja Monosta vaihdettavia keskenään. Teemme siitä yhtä yksinkertaista kuin kytkimen rakentaminen, jotta voit valita eri ajonaikaisten vaihtoehtojen välillä.
Seuraavat osiot kuvaavat pääfokuksen, jota aiomme käyttää .NET 5:lle. Ne tarjoavat selkeän näkökulman siihen, miten aiomme kehittää näitä kahta ajonaikaa sekä erikseen että yhdessä.
Korkea läpimenokyky ja korkea tuottavuus
Alusta alkaen .NET luotti just-in-time -kääntäjiin (JIT) muuntaakseen välikielen (IL) koodin optimoiduksi konekoodiksi. Sen jälkeen olemme rakentaneet alan johtavan JIT-pohjaisen hallitun ajonaikajärjestelmän, jolla on erittäin suuri läpimenokyky ja joka parantaa kehittäjäkokemusta, tehden ohjelmoinnista nopeaa ja helppoa.
JIT on ihanteellinen pitkäaikaisiin pilvi- ja asiakastilanteisiin. Ne pystyvät tuottamaan koodia, joka on konfiguroitu tietyille koneille, mukaan lukien tietyt CPU-käskyt. JIT voi myös regeneroida metodeja ajonaikaisesti, tekniikka, joka nopeuttaa JIT:tä, mutta sillä on silti mahdollisuus tuottaa erittäin optimoituja koodiversioita, jos siitä tulee usein käytetty menetelmä.
Pyrkimyksemme saada ASP.NET Core toimimaan nopeammin Techpower-vertailussa ovat erinomainen esimerkki JIT:n voimasta ja investoinnistamme CoreCLR:ään. Pyrkimyksemme vahvistaa .NET Corea kontteille todistavat myös ajonaikaisen kyvyn sopeutua dynaamisesti rajoitettuihin ympäristöihin.
Kehittäjätyökalut ovat toinen hyvä esimerkki siitä, miten JIT on todella hyvä, kuten dotnet-seurantatyökalut tai edit and continue. Työkalujen täytyy usein kääntää ja ladata koodia useita kertoja samassa prosessissa ilman uudelleenkäynnistystä, ja tämä täytyy tehdä hyvin nopeasti.
.NET Corea tai .NET Frameworkia käyttävät kehittäjät luottavat pääasiassa JIT:iin. Siksi kokemuksen tulisi olla tuttu.
Useimpien .NET 5 -työskenaarioiden oletuskokemus käyttää JIT-pohjaista CoreCLR-ajonaikaa. Kaksi merkittävää poikkeusta ovat iOS ja asiakasohjelma Blazor (web assembly), sillä molemmat vaativat ennakko-ajan (AOT) natiivin käännöksen.
Nopea käynnistys, pieni jalanjälki ja vähäinen muistinkulutus
Suurin osa Mono-projektista on keskittynyt mobiiliin ja konsoleihin. Projektin keskeinen ominaisuus ja tulos on .NET AOT -kääntäjä, joka perustuu alan johtavaan LLVM-kääntäjäprojektiin. Mono AOT -kääntäjä mahdollistaa .NET-koodin rakentamisen natiiviin suoritettavaan tiedostoon, joka voi toimia tietokoneella, aivan kuten C++-koodi. AOT:n kääntämät sovellukset voivat toimia tehokkaasti pienemmissä paikoissa ja vaihtaa läpimenoa käynnistystä varten tarvittaessa.
Blazor-projekti käyttää jo Mono AOT:ta. Tämä on yksi ensimmäisistä projekteista, jotka siirtyvät .NET 5:een. Käytämme sitä yhtenä vaihtoehtona todistaaksemme tämän suunnitelman.
AOT-ratkaisuja on kahta tyyppiä:
- Vaatii ratkaisun, joka on 100 % AOT-käännetty.
- Suurin osa koodista on AOT:n kääntämää ratkaisua, mutta JIT:iä tai tulkkeja voidaan käyttää koodimalleihin, jotka eivät ole AOT-ystävällisiä (kuten yleisiä). Mono AOT tukee molempia tapauksia. Apple vaatii ensimmäisen AOT:n iOS:lle ja joillekin konsoleille turvallisuussyistä. Toinen menetelmä on parempi vaihtoehto, koska se tarjoaa AOT:n edut ja välttää joitakin haittoja.
.NET Native on AOT-kääntäjämme Windowsin UWP-sovelluksille, ja se on myös esimerkki ensimmäisestä yllä mainitusta AOT-tyypistä. Tässä toteutuksessa rajoitamme .NET API:n ja käytettävien ominaisuuksien määrää. Opimme tästä kokemuksesta, että AOT-ratkaisujen tulee kattaa kaikki .NET-rajapintojen ja mallien osa-alueet.
AOT-kääntäminen on edelleen pakollista iOS:llä, web assemblyllä ja joillakin konsoleilla. Sovelluksissa, jotka vaativat nopeampaa käynnistystä tai pientä jalanjälkeä, teemme AOT-kääntämisestä vaihtoehdon.
Projektin synty
Aloitimme tämän projektin joulukuussa 2018 teknisen tiimin kanssa Bostonissa. .NET-tiimin (Mono/Xamarin ja .NET Core) sekä Unityn suunnittelujohtajat esittelivät monipuolisia teknisiä ominaisuuksia ja arkkitehtuurin suuntauksia.
Nyt etenemme tätä projektia tiiminä, jolla on joukko toimituksia. Olemme edistyneet paljon useissa projekteissa joulukuusta lähtien:
- Määritellään minimikerros, joka määrittelee ajonaikaisen <-> hallitun koodin kerroksen tavoitteena saavuttaa >99 % CoreFX:n julkisesta koodista.
- MonoVM voi nyt käyttää CoreFX:ää ja sen luokkakirjastoja.
- Suorita kaikki CoreFX-testit MonoVM:llä CoreFX-toteutuksella.
- Aja ASP.NET Core 3.0 -sovelluksia MonoVM:llä.
- Aja MonoDevelop CoreCLR:llä, sitten Visual Studio Macille.
Siirry yhteen . .NET-toteutus herättää tärkeitä kysymyksiä: Mikä on tavoitekehys? Ovatko NuGet-pakettien yhteensopivuussäännöt samat? Mitä työkuormia .NET 5 SDK:n tulisi tukea? Miten koodaan tietylle arkkitehtuurille? Tarvitsemmeko silti .NET Standardin? Työskentelemme parhaillaan näiden asioiden parissa ja jaamme pian suunnitteludokumentin, jonka voit lukea ja antaa palautetta.
Epilogi
.NET 5 -projekti on tärkeä ja innostava uusi suunta .NET:lle. Näet .NET:n muuttuvan yksinkertaisemmaksi, mutta myös laajemmaksi ominaisuuksien ja hyödyllisyydensä kirjossa. Kaikki uudet kehitykset ja ominaisuudet sisältyvät .NET 5:een, mukaan lukien uudet C#-versiot.
Näemme valoisan tulevaisuuden, jossa voit käyttää samoja .NET-rajapintoja ja kieliä kohdentaaksesi monenlaisia sovellustyyppejä, käyttöjärjestelmiä ja piiarkkitehtuureja. Visual Studiossa, Visual Studio for Macissa, Visual Studio Codessa, Azure DevOpsissa tai komentorivillä on helppo muuttaa build-asetuksia eri sovellusten luomiseksi.
Alkuperäinen linkki:Hyperlinkin kirjautuminen on näkyvissä.
|