Dnes oznamujeme, že ďalšou verziou po .NET Core 3.0 bude .NET 5. Toto bude ďalšie veľké vydanie v sérii .NET.
V budúcnosti bude len jeden .NET, s ktorým budete môcť vyvíjať Windows, Linux, macOS, iOS, Android, tvOS, watchOS a WebAssembly, medzi inými.
Predstavujeme nové .NET API, runtime funkcie a jazykové funkcie v .NET 5.
Začínajúc projektom .NET Core sme do platformy pridali približne päťdesiattisíc .NET Framework API. .NET Core 3.0 zapĺňa väčšinu zostávajúcich funkcií .NET Framework 4.8, podporuje Windows Forms, WPF a Entity Framework 6. .NET 5 na tejto práci stavia a využíva najlepšie funkcie .NET Core a Mono na vytvorenie platformy. Môžeš ho použiť pre všetok moderný .NET kód.
Plánujeme vydať .NET 5 v novembri 2020 a prvú ukážku spustiť v prvej polovici roku 2020. Bude podporovaný v budúcich aktualizáciách pre Visual Studio 2019, Visual Studio pre Mac a Visual Studio Code.
.NET 5 = .NET Core vNext
.NET 5 je ďalším krokom v .NET Core. Projekt si kladie za cieľ zlepšiť . NET:
- Vytvorte .NET runtime a framework, ktorý sa dá použiť kdekoľvek, s jednotným správaním v runtime a skúsenosťami vývojárov.
- Plným využitím .NET Core, . NET Framework, Xamarin a Mono na rozšírenie možností .NET.
- Vývojári (Microsoft a komunita) môžu vytvárať produkt z jednej kódovej základne a spoločne sa rozširovať na zlepšenie všetkých scenárov.
Tento nový projekt a smerovanie sú významným zlomom pre .NET. S .NET 5 budú váš kód a projektové súbory rovnaké bez ohľadu na to, aký typ aplikácie vytvárate. Každá aplikácia má prístup k rovnakým funkciám runtime, API a jazyka. Obsahuje tiež vylepšenia výkonu CoreFX, ktoré sa robia takmer denne.
Všetko, čo milujete na .NET Core, bude existovať aj naďalej:
- Open source a komunita orientovaná na GitHub.
- Implementácia naprieč platformami.
- Podpora využívania špecifických funkcií pre platformu, ako sú Windows formuláre a WPF na Windows, a natívne väzby pre každú natívnu platformu od Xamarinu.
- Vysoký výkon.
- Inštalujte vedľa seba.
- Malé projektové súbory (štýl SDK).
- Kompatibilné s príkazovým riadkom (CLI).
- Integrácia s Visual Studio, Visual Studio for Mac a Visual Studio Code.
Objavili sa aj niektoré novinky:
- Budete mať viac možností pre svoj runtime zážitok (viac o tom nižšie).
- Interoperabilita Javy bude dostupná na všetkých platformách.
- Viaceré operačné systémy budú podporovať interoperabilitu Objective-C a Swift.
- CoreFX bude rozšírený o podporu ahead-of-time (AOT) pre .NET, menší dosah a podporu pre viac operačných systémov.
Vydáme .NET Core 3.0 v septembri tohto roka, .NET 5 v novembri 2020 a potom plánujeme vydať hlavnú verziu . NET:
Verziu 4 sme vynechali, pretože by to zmiatlo používateľov, ktorí poznajú .NET Framework, ktorý existuje už dlho vďaka sérii 4.x. Okrem toho chceme jasne komunikovať, že .NET 5 je budúcnosťou platformy .NET. Nazývanie .NET 5 z neho robí najvyššiu verziu, akú sme kedy vydali.
Túto príležitosť využívame aj na zjednodušenie pomenovania. Myslíme si, že ak je najlepší len jeden .NET, nepotrebujeme upresňujúci termín ako "Core". Kratší názov je zjednodušený a zároveň naznačuje, že .NET 5 má jednotnú funkčnosť a správanie. Samozrejme, môžete naďalej používať názov ".NET Core", ak chcete.
Skúsenosti s behom
Mono je pôvodná multiplatformová implementácia .NET. Začal ako open-source alternatíva k .NET Frameworku a s popularitou zariadení iPhone/iOS a Android prešiel na špecifické pre mobilné zariadenia. Mono je runtime, ktorý sa používa ako súčasť Xamarinu.
CoreCLR je runtime, ktorý sa používa ako súčasť .NET Core. Primárne sa používa na podporu cloudových aplikácií, vrátane najväčšej služby Microsoftu, a teraz sa používa aj v desktopových aplikáciách Windows, IoT a strojovom učení.
Na záver, runtime pre .NET Core a Mono majú mnoho podobností (napokon, oba sú .NE runtime), ale majú aj cenné jedinečné vlastnosti. Dáva veľký zmysel umožniť si vybrať si runtime zážitok, ktorý chcete. Robíme CoreCLR a Mono navzájom zameniteľnými. Urobíme to tak jednoducho, ako postaviť prepínač na výber medzi rôznymi runtime možnosťami.
Nasledujúce sekcie popisujú hlavné zameranie, ktoré plánujeme využiť pre .NET 5. Poskytujú jasný pohľad na to, ako plánujeme tieto dva runtime vyvíjať samostatne aj spoločne.
Vysoká priepustnosť a vysoká produktivita
Od začiatku sa .NET spoliehal na just-in-time kompilátory (JIT) na prevod medzijazykového kódu (IL) do optimalizovaného strojového kódu. Odvtedy sme vytvorili popredný riadený runtime založený na JIT, ktorý má veľmi vysokú priepustnosť a zároveň zlepšuje skúsenosť vývojárov, vďaka čomu je programovanie rýchle a jednoduché.
JIT je ideálny pre dlhodobé cloudové a klientské scenáre. Dokážu generovať kód nakonfigurovaný pre konkrétne stroje, vrátane špecifických inštrukcií CPU. JIT dokáže tiež generovať metódy za behu, čo je technika, ktorá zrýchľuje JIT, pričom stále umožňuje generovať vysoko optimalizované verzie kódu, ak sa stane často používanou metódou.
Naše snahy o zrýchlenie ASP.NET Core na benchmarku Techpower sú skvelým príkladom sily JIT a našej investície do CoreCLR. Naše snahy o opevnenie .NET Core pre kontajnery sú tiež dôkazom schopnosti runtime dynamicky sa prispôsobovať obmedzeným prostrediam.
Vývojárske nástroje sú ďalším skvelým príkladom toho, ako je JIT naozaj skvelý, napríklad dotnet watch tools alebo edit and continue. Nástroje často potrebujú skompilovať a načítať kód viackrát v jednom procese bez reštartu a musia to robiť veľmi rýchlo.
Vývojári používajúci .NET Core alebo .NET Framework sa primárne spoliehajú na JIT. Preto by mala byť skúsenosť známa.
Predvolený zážitok pre väčšinu pracovných scenárov .NET 5 bude využívať runtime založený na JIT CoreCLR. Dve významné výnimky sú iOS a klientský Blazor (webový assembly), pretože oba vyžadujú natívnu kompiláciu vopred (AOT).
Rýchly štart, malý rozmer a nízka spotreba pamäte
Väčšina projektu Mono sa zameriava na mobily a konzoly. Kľúčovou vlastnosťou a výsledkom projektu je .NET AOT kompilátor založený na poprednom projekte kompilátora LLVM. Kompilátor Mono AOT umožňuje zabudovať .NET kód do natívneho spustiteľného kódu, ktorý môže bežať na počítači, rovnako ako C++ kód. AOT-kompilované aplikácie môžu efektívne bežať v menších lokalitách a vymieňať si priepustnosť pri štarte, keď je to potrebné.
Projekt Blazor už používa Mono AOT. Toto bude jeden z prvých projektov, ktorý prejde na .NET 5. Používame to ako jednu z možností, ako tento plán dokázať.
Existujú dva typy riešení AOT:
- Vyžaduje riešenie, ktoré je 100% skompilované AOT.
- Väčšina kódu je AOT-kompilované riešenie, ale JIT alebo interpretery môžu byť použité pre vzory kódu, ktoré nie sú priateľské k AOT (napríklad generiká). Mono AOT podporuje oba prípady. Apple vyžaduje prvý AOT pre iOS a niektoré konzoly z bezpečnostných dôvodov. Druhá metóda je lepšia, pretože ponúka výhody AOT a vyhýba sa niektorým nevýhodám.
.NET Native je náš AOT kompilátor pre Windows UWP aplikácie a je tiež príkladom prvého AOT typu uvedeného vyššie. V tejto konkrétnej implementácii obmedzujeme .NET API a funkcie, ktoré môžete použiť. Z tejto skúsenosti sme sa naučili, že riešenia AOT musia pokrývať všetky aspekty .NET API a vzorov.
Kompilácia AOT je stále povinná na iOS, webovom assembleri a niektorých konzolách. Pre aplikácie, ktoré vyžadujú rýchlejší štart alebo menší nárok, urobíme kompiláciu AOT ako možnosť.
Vznik projektu
Tento projekt sme začali v decembri 2018 s technickým tímom v Bostone. Vedúci dizajnu z tímu .NET (Mono/Xamarin a .NET Core) a Unity predstavili rôzne technické schopnosti a architektonické smery.
Teraz tento projekt posúvame vpred ako tím s množstvom výstupov. Od decembra sme dosiahli veľký pokrok v niekoľkých projektoch:
- Je definovaná minimálna vrstva, ktorá definuje runtime <-> spravovanú kódovú vrstvu s cieľom dosiahnuť >99 % verejného kódu CoreFX.
- MonoVM teraz dokáže používať CoreFX a jeho knižnice tried.
- Všetky CoreFX testy spúšťajte na MonoVM s implementáciou CoreFX.
- Spúšťajte ASP.NET Core 3.0 aplikácie s MonoVM.
- Spustite MonoDevelop na CoreCLR a potom spustite Visual Studio pre Mac.
Migrujte na jednu . Implementácia .NET vyvoláva dôležité otázky: Aký bude cieľový rámec? Sú pravidlá kompatibility balíkov v NuGet rovnaké? Aké pracovné záťaže by mal podporovať .NET 5 SDK? Ako mám programovať pre konkrétnu architektúru? Potrebujeme ešte .NET Standard? Na týchto otázkach momentálne pracujeme a čoskoro vám poskytneme návrhový dokument, aby ste si ho mohli prečítať a poskytnúť vám spätnú väzbu.
Epilóg
Projekt .NET 5 je dôležitým a vzrušujúcim novým smerom pre .NET. Uvidíte, že .NET sa stane jednoduchším, ale zároveň s širším spektrom funkcií a užitočností. Všetky nové vývoje a funkcie budú súčasťou .NET 5, vrátane nových verzií C#.
Vidíme svetlú budúcnosť, kde môžete použiť rovnaké .NET API a jazyky na zameranie sa na širokú škálu typov aplikácií, operačných systémov a silikónových architektúr. Vo Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure DevOps alebo v príkazovom riadku je jednoduché zmeniť konfiguráciu zostavenia a vytvárať rôzne aplikácie.
Pôvodný odkaz:Prihlásenie na hypertextový odkaz je viditeľné.
|