Astăzi, anunțăm că următoarea versiune după .NET Core 3.0 va fi .NET 5. Aceasta va fi următoarea lansare importantă din seria .NET.
În viitor va exista un singur .NET, cu care vei putea dezvolta Windows, Linux, macOS, iOS, Android, tvOS, watchOS și WebAssembly, printre altele.
Introducem noi API-uri .NET, funcții de runtime și funcții de limbaj în .NET 5.
Începând cu proiectul .NET Core, am adăugat aproximativ cincizeci de mii de API-uri .NET Framework pe platformă. .NET Core 3.0 acoperă majoritatea lacunelor rămase de funcționalități ale .NET Framework 4.8, suportând Windows Forms, WPF și Entity Framework 6. .NET 5 se bazează pe această lucrare, valorificând cele mai bune caracteristici ale .NET Core și Mono pentru a crea o platformă. Îl poți folosi pentru tot codul .NET modern.
Intenționăm să lansăm .NET 5 în noiembrie 2020 și să lansăm prima previzualizare în prima jumătate a anului 2020. Va fi suportat în viitoarele actualizări pentru Visual Studio 2019, Visual Studio pentru Mac și Visual Studio Code.
.NET 5 = .NET Core vNext
.NET 5 este următorul pas în .NET Core. Proiectul are ca scop îmbunătățirea . NET:
- Construiește un runtime și un framework .NET care să poată fi folosit oriunde, cu un comportament unificat la runtime și experiență de dezvoltator.
- Profitând la maximum de .NET Core, . NET Framework, Xarain și Mono pentru a extinde capabilitățile .NET.
- Construind produsul pornind de la o singură bază de cod, dezvoltatorii (Microsoft și comunitatea) pot colabora și extinde împreună pentru a îmbunătăți toate scenariile.
Acest nou proiect și direcție reprezintă un punct de cotitură major pentru .NET. Cu .NET 5, codul și fișierele de proiect vor fi aceleași, indiferent de tipul de aplicație pe care o construiești. Fiecare aplicație are acces la aceleași funcții de rulare, API și limbaj. De asemenea, include îmbunătățiri de performanță ale CoreFX, care sunt realizate aproape zilnic.
Tot ce iubești la .NET Core va continua să existe:
- Open source și orientat spre comunitate pe GitHub.
- Implementare cross-platform.
- Suportă valorificarea funcționalităților specifice platformei, cum ar fi formularele Windows și WPF pe Windows, precum și legături native pentru fiecare platformă nativă din Xamarin.
- Performanță ridicată.
- Instalează unul lângă altul.
- Fișiere mici de proiect (stil SDK).
- Compatibil cu interfețe de linie de comandă (CLI).
- Integrarea cu Visual Studio, Visual Studio pentru Mac și Visual Studio Code.
Există și câteva lucruri noi:
- Vei avea mai multe opțiuni pentru experiența ta de rulare (mai multe detalii mai jos).
- Interoperabilitatea Java va fi disponibilă pe toate platformele.
- Mai multe sisteme de operare vor susține interoperabilitatea Objective-C și Swift.
- CoreFX va fi extins pentru a suporta ahead-of-time (AOT) pentru .NET, o amprentă mai mică și suport pentru mai multe sisteme de operare.
Vom lansa .NET Core 3.0 în septembrie anul acesta, .NET 5 în noiembrie 2020, iar apoi intenționăm să lansăm o versiune majoră a . NET:
Am sărit peste versiunea 4 pentru că ar fi derutat utilizatorii familiarizați cu .NET Framework, care există de mult timp cu seria 4.x. În plus, dorim să comunicăm clar că .NET 5 reprezintă viitorul platformei .NET. Numindu-l .NET 5 este cea mai înaltă versiune pe care am lansat-o vreodată.
Profităm și de această ocazie pentru a simplifica denumirea. Credem că dacă un singur .NET este cel mai bun, nu avem nevoie de un termen clarificare precum "Core". Numele mai scurt este o simplificare și transmite, de asemenea, mesajul că .NET 5 are funcționalitate și comportament uniforme. Desigur, poți continua să folosești numele ".NET Core" dacă dorești.
Experiență în timp de execuție
Mono este implementarea originală cross-platform a .NET. A început ca o alternativă open-source la .NET Framework și a trecut la un format specific pentru mobil, odată cu popularitatea dispozitivelor iPhone/iOS și Android. Mono este un runtime folosit ca parte a Xamarin.
CoreCLR este un runtime folosit ca parte a .NET Core. Este folosit în principal pentru a susține aplicații cloud, inclusiv cel mai mare serviciu Microsoft, și este acum folosit și în aplicații desktop Windows, IoT și învățare automată.
În concluzie, runtime-urile .NET Core și Mono împărtășesc multe asemănări (până la urmă, ambele sunt runtime-uri .NE), dar au și caracteristici unice valoroase. Are mult sens să fie posibil să alegi experiența de execuție pe care o dorești. Facem CoreCLR și Mono interschimbabile între ele. Vom face totul la fel de simplu ca construirea unui switch pentru a alege între diferite opțiuni de runtime.
Secțiunile următoare descriu principalul obiectiv pe care intenționăm să-l folosim pentru .NET 5. Ele oferă o perspectivă clară asupra modului în care plănuim să evoluăm aceste două runtime, individual și împreună.
Randament ridicat și productivitate ridicată
De la început, .NET s-a bazat pe compilatoare just-in-time (JIT) pentru a converti codul limbajului intermediar (IL) în cod mașină optimizat. De atunci, am construit un runtime gestionat bazat pe JIT, lider în industrie, cu un throughput foarte ridicat și care îmbunătățește experiența dezvoltatorilor, făcând programarea rapidă și ușoară.
JIT este ideal pentru scenarii de cloud și clienți de lungă durată. Ei pot genera cod configurat pentru mașini specifice, inclusiv instrucțiuni CPU specifice. JIT poate, de asemenea, regenera metode la rulare, o tehnică care face JIT mai rapid, oferind totodată opțiunea de a genera versiuni foarte optimizate ale codului dacă devine o metodă folosită frecvent.
Eforturile noastre de a face ca ASP.NET Core să ruleze mai rapid pe benchmark-ul Techpower sunt un exemplu excelent al puterii JIT și al investiției noastre în CoreCLR. Eforturile noastre de a consolida .NET Core pentru containere sunt, de asemenea, o dovadă a capacității runtime-ului de a se adapta dinamic la medii restricționate.
Instrumentele pentru dezvoltatori sunt un alt exemplu excelent despre cât de bun este JIT, cum ar fi dotnet watch tools sau edit and continue. Uneltele trebuie adesea să compileze și să încarce cod de mai multe ori într-un singur proces fără să repornească și trebuie să facă acest lucru foarte rapid.
Dezvoltatorii care folosesc .NET Core sau .NET Framework se bazează în principal pe JIT. Prin urmare, experiența ar trebui să fie familiară.
Experiența implicită pentru majoritatea scenariilor de funcționare .NET 5 va folosi runtime-ul CoreCLR bazat pe JIT. Două excepții notabile sunt iOS și client Blazor (asamblarea web), deoarece ambele necesită compilare nativă ahead-of-time (AOT).
Pornire rapidă, amprentă redusă și consum redus de memorie
Majoritatea proiectului Mono s-a concentrat pe mobile și console. O caracteristică cheie și un rezultat al proiectului este compilatorul .NET AOT bazat pe proiectul de compilator LLVM, de top în industrie. Compilatorul Mono AOT permite integrarea codului .NET într-un executabil nativ care poate rula pe un calculator, la fel ca codul C++. Aplicațiile compilate cu AOT pot rula eficient în locații mai mici și pot schimba debitul pentru pornire atunci când este nevoie.
Proiectul Blazor folosește deja Mono AOT. Acesta va fi unul dintre primele proiecte care vor face tranziția către .NET 5. Îl folosim ca una dintre opțiunile pentru a demonstra acest plan.
Există două tipuri de soluții AOT:
- Necesită o soluție compilată 100% AOT.
- Majoritatea codului este o soluție compilată AOT, dar JIT sau interpreți pot fi folosiți pentru tipare de cod care nu sunt prietenoase cu AOT (cum ar fi genericele). Mono AOT suportă ambele cazuri. Apple cere primul AOT pentru iOS și unele console din motive de securitate. A doua metodă este o opțiune mai bună deoarece oferă avantajele AOT și evită unele dintre dezavantaje.
.NET Native este compilatorul nostru AOT pentru aplicațiile Windows UWP și este, de asemenea, un exemplu al primului tip AOT menționat mai sus. În această implementare particulară, limităm API-ul .NET și funcțiile pe care le poți folosi. Am învățat din această experiență că soluțiile AOT trebuie să acopere toate aspectele API-urilor și tiparelor .NET.
Compilarea AOT este încă necesară pe iOS, asamblarea web și unele console. Pentru aplicațiile care necesită pornire mai rapidă sau amprentă redusă, vom face o opțiune pentru compilarea AOT.
Nașterea proiectului
Am început acest proiect în decembrie 2018 cu o echipă tehnică din Boston. Liderii de design din echipa .NET (Mono/Xamarin și .NET Core) și Unity au prezentat o varietate de capabilități tehnice și direcții arhitecturale.
Acum avansăm acest proiect ca o echipă, cu un set de livrabile. Am făcut progrese semnificative la mai multe proiecte de la decembrie încoace:
- Este definit un strat minim care definește stratul de cod gestionat <-> runtime, cu scopul de a atinge >99% din codul public CoreFX.
- MonoVM poate acum folosi CoreFX și bibliotecile sale de clase.
- Rulează toate testele CoreFX pe MonoVM cu implementarea CoreFX.
- Rulează ASP.NET aplicații Core 3.0 cu MonoVM.
- Rulează MonoDevelop pe CoreCLR, apoi rulează Visual Studio pentru Mac.
Migrează către un singur fișier . Implementarea .NET ridică câteva întrebări importante: Care va fi cadrul țintă? Regulile de compatibilitate ale pachetelor NuGet sunt aceleași? Ce sarcini de lucru ar trebui să suporte SDK-ul .NET 5? Cum programez pentru o anumită arhitectură? Mai avem nevoie de .NET Standard? Lucrăm acum la aceste probleme și în curând vă vom împărtăși documentul de design pentru a vă citi și a oferi feedback.
Epilog
Proiectul .NET 5 reprezintă o direcție nouă importantă și interesantă pentru .NET. Vei vedea .NET devenind mai simplu, dar și cu o gamă mai largă de funcționalități și utilități. Toate noile dezvoltări și funcționalități vor face parte din .NET 5, inclusiv noile versiuni C#.
Vedem un viitor promițător în care poți folosi aceleași API-uri și limbaje .NET pentru a viza o gamă largă de tipuri de aplicații, sisteme de operare și arhitecturi de siliciu. În Visual Studio, Visual Studio pentru Mac, Visual Studio Code, Azure DevOps sau linia de comandă, este ușor să schimbi configurația build-ului pentru a construi aplicații diferite.
Link original:Autentificarea cu hyperlink este vizibilă.
|