Šodien mēs paziņojam, ka nākamais laidiens pēc .NET Core 3.0 būs .NET 5. Šis būs nākamais lielais laidiens .NET sērijā.
Nākotnē būs tikai viens .NET , ar kuru jūs varēsiet izstrādāt Windows, Linux, macOS, iOS, Android, tvOS, watchOS un WebAssembly, cita starpā.
Mēs ieviešam jaunus .NET API, izpildlaika līdzekļus un valodu līdzekļus .NET 5.
Sākot ar .NET Core projektu, mēs esam pievienojuši platformai aptuveni piecdesmit tūkstošus .NET Framework API. .NET Core 3.0 aizpilda lielāko daļu atlikušo .NET Framework 4.8 līdzekļu nepilnību, atbalstot Windows Forms, WPF un Entity Framework 6. .NET 5 balstās uz šo darbu, izmantojot labākos .NET Core un Mono līdzekļus, lai izveidotu platformu. To var izmantot visiem mūsdienu .NET kodiem.
Mēs plānojam izlaist .NET 5 2020. gada novembrī un uzsākt pirmo priekšskatījumu 2020. gada pirmajā pusē. Tas tiks atbalstīts turpmākajos Visual Studio 2019, Visual Studio for Mac un Visual Studio Code atjauninājumos.
.NET 5 = .NET Core vNext
.NET 5 ir nākamais solis .NET Core. Projekta mērķis ir uzlabot . NETO:
- Izveidojiet .NET izpildlaiku un struktūru, ko var izmantot jebkurā vietā, izmantojot vienotu izpildlaika darbību un izstrādātāja pieredzi.
- Izmantojot visas .NET Core priekšrocības, . NET Framework, Xamarin un Mono, lai paplašinātu .NET iespējas.
- Veidojot produktu no vienas kodu bāzes, izstrādātāji (Microsoft un kopiena) var sadarboties un paplašināties, lai uzlabotu visus scenārijus.
Šis jaunais projekts un virziens ir nozīmīgs pagrieziena punkts .NET. Izmantojot .NET 5, jūsu kods un projekta faili būs vienādi neatkarīgi no tā, kāda veida lietojumprogrammu veidojat. Katrai programmai ir piekļuve vieniem un tiem pašiem izpildlaika, API un valodas līdzekļiem. Ietver arī CoreFX veiktspējas uzlabojumus, kas tiek veikti gandrīz katru dienu.
Viss, kas jums patīk .NET Core, turpinās pastāvēt:
- Atvērtā koda un kopienas orientēts vietnē GitHub.
- Starpplatformu ieviešana.
- Atbalstiet platformai specifiskas funkcijas, piemēram, Windows veidlapas un WPF operētājsistēmā Windows, kā arī vietējās saites katrai vietējai platformai no Xamarin.
- Augsta veiktspēja.
- Instalējiet blakus.
- Mazi projektu faili (SDK stils).
- Savietojams ar komandrindas saskarnēm (CLI).
- Visual Studio, Visual Studio for Mac un Visual Studio Code integrācija.
Ir arī dažas jaunas lietas:
- Jums būs vairāk iespēju izpildlaika pieredzei (vairāk par to tālāk).
- Java sadarbspēja būs pieejama visās platformās.
- Vairākas operētājsistēmas atbalstīs Objective-C un Swift sadarbspēju.
- CoreFX tiks paplašināts, lai atbalstītu .NET agrāko laiku (AOT), mazāku nospiedumu un atbalstu vairākām operētājsistēmām.
Mēs izlaidīsim .NET Core 3.0 šī gada septembrī, .NET 5 2020. gada novembrī, un pēc tam mēs plānojam izlaist galveno versiju . NETO:
Mēs izlaidām 4. versiju, jo tas mulsinātu lietotājus, kuri ir pazīstami ar .NET Framework, kas jau ilgu laiku pastāv ar 4.x sēriju. Turklāt mēs vēlamies skaidri paziņot, ka .NET 5 ir .NET platformas nākotne. Saucot to par .NET 5, tā ir augstākā versija, ko jebkad esam izlaiduši.
Mēs arī izmantojam šo iespēju, lai vienkāršotu nosaukumu piešķiršanu. Mēs domājam, ka, ja tikai viens .NET ir labākais, mums nav vajadzīgs precizējošs termins, piemēram, "Core". Īsākais nosaukums ir vienkāršojums, un tas arī vēsta, ka .NET 5 ir vienota funkcionalitāte un uzvedība. Protams, ja vēlaties, varat turpināt izmantot nosaukumu ".NET Core".
Izpildlaika pieredze
Mono ir oriģināla .NET starpplatformu ieviešana. Tas sākās kā atvērtā koda alternatīva .NET Framework un pārgāja uz mobilajām ierīcēm, pateicoties iPhone / iOS un Android ierīču popularitātei. Mono ir izpildlaiks, kas tiek izmantots kā daļa no Xamarin.
CoreCLR ir izpildlaiks, kas tiek izmantots kā daļa no .NET Core. To galvenokārt izmanto, lai atbalstītu mākoņa lietojumprogrammas, tostarp Microsoft lielāko pakalpojumu, un tagad to izmanto arī Windows darbvirsmas, IoT un mašīnmācīšanās lietojumprogrammās.
Kopumā .NET Core un Mono izpildlaikiem ir daudz līdzību (galu galā tie abi ir .NE izpildlaiki), taču tiem ir arī vērtīgas unikālas funkcijas. Ir ļoti jēga izvēlēties vēlamo izpildlaika pieredzi. Mēs padarām CoreCLR un Mono savstarpēji aizvietojamus. Mēs padarīsim to tikpat vienkāršu kā slēdža izveidi, lai izvēlētos starp dažādām izpildlaika opcijām.
Nākamajās sadaļās ir aprakstīta galvenā uzmanība, ko plānojam izmantot .NET 5. Tie sniedz skaidru perspektīvu par to, kā mēs plānojam attīstīt šos divus izpildlaikus individuāli un kopā.
Augsta caurlaidspēja un augsta produktivitāte
Jau no paša sākuma .NET paļāvās uz tieši laika kompilatoriem (JIT), lai pārvērstu starpposma valodas (IL) kodu optimizētā mašīnkodā. Kopš tā laika mēs esam izveidojuši nozarē vadošo JIT balstītu pārvaldītu izpildlaiku, kam ir ļoti augsta caurlaidspēja, kā arī uzlabo izstrādātāja pieredzi, padarot programmēšanu ātru un vienkāršu.
JIT ir ideāli piemērots ilgstošiem mākoņa un klientu scenārijiem. Viņi spēj ģenerēt kodu, kas konfigurēts konkrētām mašīnām, ieskaitot īpašas CPU instrukcijas. JIT var arī atjaunot metodes izpildlaikā, kas padara JIT ātrāku, vienlaikus saglabājot iespēju ģenerēt ļoti optimizētas koda versijas, ja tā kļūst par bieži izmantotu metodi.
Mūsu centieni panākt, lai ASP.NET Core darbotos ātrāk Techpower etalonā, ir lielisks piemērs JIT spēkam un mūsu ieguldījumiem CoreCLR. Mūsu centieni nostiprināt .NET Core konteineriem arī liecina par izpildlaika spēju dinamiski pielāgoties ierobežotai videi.
Izstrādātāju rīki ir vēl viens lielisks piemērs tam, kā JIT ir patiešām lielisks, piemēram, dotnet skatīšanās rīki vai rediģēšana un turpināšana. Rīkiem bieži ir jākompilē un jāielādē kods vairākas reizes vienā procesā, nerestartējot, un tas ir jādara ļoti ātri.
Izstrādātāji, kas izmanto .NET Core vai .NET Framework, galvenokārt paļaujas uz JIT. Tāpēc pieredzei jābūt pazīstamai.
Noklusējuma pieredze lielākajai daļai .NET 5 darba scenāriju izmantos JIT balstītu CoreCLR izpildlaiku. Divi ievērojami izņēmumi ir iOS un klients Blazor (tīmekļa montāža), jo abiem ir nepieciešama vietējā kompilācija uz priekšu (AOT).
Ātra startēšana, mazs nospiedums un zems atmiņas patēriņš
Lielākā daļa Mono projekta ir koncentrējusies uz mobilajām ierīcēm un konsolēm. Projekta galvenā iezīme un rezultāts ir .NET AOT kompilators, kas balstīts uz nozarē vadošo LLVM kompilatora projektu. Mono AOT kompilators ļauj .NET kodu iebūvēt vietējā koda izpildāmajā failā, kas var darboties datorā, tāpat kā C++ kods. AOT kompilētās lietojumprogrammas var efektīvi darboties mazākās vietās un vajadzības gadījumā apmainīties ar caurlaidspēju startēšanai.
Blazor projekts jau izmanto Mono AOT. Šis būs viens no pirmajiem projektiem, kas pāriet uz .NET 5. Mēs to izmantojam kā vienu no iespējām, lai pierādītu šo plānu.
Ir divu veidu AOT risinājumi:
- Nepieciešams risinājums, kas ir 100% AOT kompilēts.
- Lielākā daļa koda ir AOT kompilēts risinājums, bet JIT vai tulkus var izmantot koda modeļiem, kas nav AOT draudzīgi (piemēram, ģenēriskie medikamenti). Mono AOT atbalsta abus gadījumus. Apple drošības apsvērumu dēļ pieprasa pirmo AOT iOS un dažām konsolēm. Otrā metode ir labāka iespēja, jo tā piedāvā AOT priekšrocības un izvairās no dažiem trūkumiem.
.NET Native ir mūsu AOT kompilators Windows UWP lietojumprogrammām, kā arī piemērs pirmajam iepriekš minētajam AOT tipam. Šajā konkrētajā ieviešanā mēs ierobežojam .NET API un izmantojamās funkcijas. No šīs pieredzes mēs uzzinājām, ka AOT risinājumiem ir jāaptver visi .NET API un modeļu aspekti.
AOT kompilācija joprojām ir nepieciešama iOS, tīmekļa montāžā un dažās konsolēs. Lietojumprogrammām, kurām nepieciešama ātrāka palaišana vai mazs nospiedums, mēs padarīsim AOT kompilāciju par iespēju.
Projekta dzimšana
Mēs sākām šo projektu 2018. gada decembrī ar tehnisko komandu Bostonā. .NET komandas (Mono/Xamarin un .NET Core) un Unity dizaina vadītāji iepazīstināja ar dažādām tehniskajām iespējām un arhitektūras virzieniem.
Tagad mēs virzām šo projektu uz priekšu kā komanda ar nodevumu kopumu. Kopš decembra mēs esam panākuši lielu progresu vairākos projektos:
- Ir definēts minimālais slānis, kas definē izpildlaika <-> pārvaldīto koda slāni ar mērķi sasniegt >99% no CoreFX publiskā koda.
- MonoVM tagad var izmantot CoreFX un tā klases bibliotēkas.
- Palaidiet visus CoreFX testus MonoVM ar CoreFX ieviešanu.
- Palaidiet ASP.NET Core 3.0 lietojumprogrammas ar MonoVM.
- Palaidiet MonoDevelop uz CoreCLR, pēc tam palaidiet Visual Studio for Mac.
Migrēt uz vienu . .NET ieviešana rada dažus svarīgus jautājumus: Kāds būs mērķa ietvars? Vai NuGet pakotnes saderības noteikumi ir vienādi? Kādas darba slodzes jāatbalsta .NET 5 SDK? Kā kodēt konkrētai arhitektūrai? Vai mums joprojām ir nepieciešams .NET standarts? Mēs šobrīd strādājam pie šiem jautājumiem un drīzumā kopīgosim noformējuma dokumentu, lai jūs varētu izlasīt un sniegt atsauksmes.
Epilogs
.NET 5 projekts ir svarīgs un aizraujošs jauns .NET virziens. Jūs redzēsiet, ka .NET kļūs vienkāršāks, bet arī ar plašāku funkciju un lietderības klāstu. Visi jaunie sasniegumi un līdzekļi būs daļa no .NET 5, ieskaitot jaunās C# versijas.
Mēs redzam spožu nākotni, kurā jūs varat izmantot tos pašus .NET API un valodas, lai atlasītu plašu lietojumprogrammu tipu, operētājsistēmu un silīcija arhitektūru klāstu. Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure DevOps vai komandrindā ir viegli mainīt būvēšanas konfigurāciju, lai izveidotu dažādas lietojumprogrammas.
Oriģinālā saite:Hipersaites pieteikšanās ir redzama.
|