Programovanie

Čo je nové v Microsoft .NET 5

Druhé kandidátske vydanie spoločnosti Microsoft pre .NET 5 dorazilo 13. októbra a prinieslo spojenie .NET Framework a .NET Core o krok bližšie k dokončeniu. Nová zjednotená platforma .NET má byť všeobecne dostupná 10. novembra 2020.

Spoločnosť Microsoft popisuje Release Candidate 2 ako takmer finálne vydanie a posledné z dvoch RC. Počiatočné RC bolo zverejnené 13. septembra. Kandidáta na vydanie .NET 5.0 je možné stiahnuť z dotnet.microsoft.com.

Medzi ciele na vysokej úrovni pre .NET 5 patrí poskytovanie jednotného prostredia .NET SDK s jedným BCL (knižnica základnej triedy) pre všetky aplikácie .NET 5 a s podporou natívnych aj webových aplikácií vo viacerých operačných systémoch. Jeden projekt natívnej aplikácie .NET 5 by podporoval ciele ako Windows, Microsoft Duo (Android) a Apple iOS pomocou natívnych ovládacích prvkov na týchto platformách.

Medzi ďalšie ciele .NET 5 patrí podpora budovania vysoko výkonných cloudových aplikácií, rýchlejšie algoritmy v BCL, lepšia podpora kontajnerov za behu a podpora HTTP3. .NET 5.0 obsahuje podporu pre binárny formát WebAssembly prostredníctvom runtime Mono a knižníc .NET. Taktiež je uvedená sada anotácií referenčného typu s povolenou hodnotou Null.

.NET 5 tiež sľubuje, že umožní vývojárom automaticky vyhľadávať skryté chyby v kóde. Medzi ďalšie nové funkcie patrí Polovica typu, binárna plávajúca desatinná čiarka, ktorá zaberá 16 bitov, a orezávanie zostavy, ktoré orezáva nepoužívané zostavy, aby sa zmenšila veľkosť aplikácií. Zvýraznené je tiež prispôsobené orezávanie. Nové porovnávanie vzorov v C # 9 sa týka vzorov relačných, logických a jednoduchých typov. Možnosť nasadenia ClickOnce je teraz podporovaná pre aplikácie .NET 5.0 pre Windows a .NET Core 3.1.

Nová platforma .NET tiež sľubuje vylepšenia výkonu. Bulletin týkajúci sa ukážky 7, ktorý dorazil 21. júla, uznáva približne 250 požiadaviek na stiahnutie orientovaných na výkon v .NET 5 a upozorňuje, že pre tých, ktorí sledujú výkon .NET Core, je pripravené príjemné prekvapenie.

Ďalšie doplnky a vylepšenia uvedené v bulletine .NET 5 Preview 7:

  • Nové rozhranie JSON API System.text.json poskytuje možnosť ignorovať predvolené hodnoty pre vlastnosti typu hodnoty pri serializácii, čo je užitočné pri znižovaní nákladov na serializáciu a prepojenie. Toto je prelomová zmena. Pre System.text.json bola pridaná aj schopnosť zaobchádzať s cyklickými odkazmi pri serializácii, pričom tvar API je teraz konečný.
  • Zber odpadu teraz sprístupňuje podrobné údaje o najnovšom zbere pomocou súboru GetGCMemoryInfo metóda, ktorá vráti a GCMemoryInfo štruktúr. GCMemoryInfo slúži informáciám o pamäti stroja a haldy a najnovšej zbierke alebo najnovšej zbierke špecifikovaného druhu GC - prchavá, úplné blokovanie alebo pozadie. Najpravdepodobnejším prípadom použitia tohto API je protokolovanie / monitorovanie alebo indikácia nástroja na vyrovnávanie zaťaženia, že by mal byť stroj vyradený z rotácie a požadovať úplnú GC. Medzitým bola urobená ďalšia zmena GC, aby sa nákladná operácia resetovania pamäte odložila na situácie s nízkou pamäťou.
  • Ryujit, generátor kódu zostavy pre .NET, získava vylepšenia od umožnenia eliminácie kontroly niektorých hraníc po vylepšenie duplikácie chvosta a vylepšenia na odstránenie nadbytočných nulových vstupov. V programe Ryujit sú tiež hardvérové ​​prvky ARM64 a optimalizácia API.

.NET 5 Preview 6, vydaný 25. júna, odstránila zabudovanú podporu pre WinRT (Windows Runtime), kolekciu rozhraní API pre vytváranie aplikácií univerzálnej platformy Windows. Toto je prelomová zmena; Aplikácie .NET Core 3.x používajúce WinRT musia byť znovu skompilované. Tímy .NET a Windows pracujú na zmene spôsobu, akým WinRT pracuje so systémom Windows, nahradením podpory WinRT súborom nástrojov C # / WinRT v .NET 5. C # / WinRT je sada nástrojov zabalená v NuGet, ktorá ponúka podporu projekcie WinRT pre C #.

Ďalšie zmeny v .NET 5 Preview 6:

  • Sada .NET 5 Preview 6 SDK obsahuje podporu pre Windows Forms na zariadeniach Windows ARM64. Pokračujú práce na pridávaní podpory pre Windows Presentation Foundation na Windows ARM64.
  • Vylepšenia kvality kódu RyuJIT zahŕňajú spracovanie štruktúr a optimalizáciu, aby sa odstránili nadbytočné nulové inicializácie. Pokrok sa dosiahol aj v optimalizácii vnútorných hardvérových komponentov ARM64, ako aj v zlepšovaní generovaného kódu pre ARM64 so zmenšenou veľkosťou kódu.
  • Plány podpory platforiem boli aktualizované.

.NET 5 Preview 5, vydaný 10. júna, obsahuje nasledujúce nové funkcie:

  • Kompilátor RyuJIT JIT má rýchlejšiu a prenosnú implementáciu pomocníkov tailcall. JIT požiada runtime o pomoc, kedykoľvek si uvedomí, že na vykonanie tailcall bude potrebovať pomocníka. Aj v prípade RyuJIT došlo k neustálemu pokroku v implementácii hardvérovej vnútornej architektúry ARM64. Medzi ďalšie vylepšenia nástroja RyuJIT patrí vyššia rýchlosť v prípade, ktorý ovplyvňoval kompiláciu regulárneho výrazu a zlepšoval výkon architektúry Intel.
  • Exporty natívnych binárnych súborov s hovormi do kódu .NET boli povolené. Stavebným kameňom tejto schopnosti je podpora API pre server UnManagedCallersOnlyAttribute. Projekt natívneho exportu umožňuje odhalenie vlastných natívnych exportov. Nevyžaduje vyššiu úroveň interoperability ako je COM a je multiplatformná.
  • DirectoryServices. Protokoly podpora sa rozširuje na Linux a MacOS.
  • Teraz je podporovaná distribúcia Linuxu Alpine 3.12.

Kandidáta na vydanie .NET 5.0 je možné stiahnuť z dot.net.microsoft.com.

.NET 5 Preview 4, uvedený na trh 19. mája, predstavil nasledujúce nové funkcie:

  • Podpora jazykov C # 9 a F # 5.
  • Vylepšený výkon koncových svetiel používaných F #.
  • Vylepšený výkon ToUpperInvariant, string.ToLowerInvarianta súvisiace vzory.
  • Vylepšený výkon protokolov HTTP 1.1 a HTTP 2.
  • Vylepšený mechanizmus počítania hovorov.
  • Dynamická expanzia interného generického slovníka na elimináciu výkonových útesov zasiahnutých generickým kódom.
  • Halda pripnutého objektu na zníženie fragmentácie haldy.
  • Aplikácie s jedným súborom založené na novom type publikovania jedného súboru, ktorý vykonáva aplikáciu z jedného binárneho súboru.

Medzi vylepšenia rozhrania .NET 5 Preview 3, ktoré bolo predstavené 23. apríla, patria:

  • Trieda BitArray na správu poľa bitových hodnôt bola aktualizovaná tak, aby obsahovala hardvérovo akcelerovanú implementáciu pre ARM64 s využitím vnútorných vlastností ARM64. Zlepšenie výkonu BitArray je podľa Microsoftu významné. Okrem toho bola v CLR implementovaná výmena On Stack (OSR), ktorá umožňuje meniť kód vykonávaný aktuálne spustenými metódami uprostred vykonávania metódy, zatiaľ čo tieto metódy sú aktívne „v zásobníku“. Táto schopnosť na zlepšenie výkonnostných charakteristík viacúrovňovej kompilácie je teraz na x64 experimentálnou funkciou prihlásenia. Ďalšie vylepšenie pre RyuJIT zlepšuje kvalitu kódu štruktúr ako argumentov pri volaní pozícií „tail call“. Očakáva sa tiež, že RyuJIT ponúkne lepší výkon generík.
  • Do System.Txt.Json bolo pridané doplnenie podpory pre uchovanie odkazov, čo umožnilo spracovanie referenčnej slučky pre serializáciu JSON. Pre JsonSerializer sú teraz podporované aj nemenné triedy a štruktúry. Teraz je podporované aj spracovanie nulových hodnôt.
  • .NET SDK teraz bude automaticky odkazovať na balík NuFet NETFramework.ReferenceAssemblies, ktorý má v súbore projektu cieľový rámec .NET Framework. Táto zmena umožňuje vytváranie projektov .NET Framework na počítači bez nainštalovaného balíka zacielenia .NET Framework. Toto vylepšenie je špecifické pre zacielenie balíkov a nezohľadňuje ďalšie možné závislosti projektu.

Medzi konkrétne vylepšenia rozhrania .NET 5 Preview 2, vydané 2. apríla, patrili:

  • V RyuJIT bolo urobených niekoľko zmien za účelom zlepšenia kvality generovaného strojového kódu, vrátane agresívnejšej eliminácie duplicitných nulových inicializácií a predtým vyvolaných optimalizácií s povolenou hodnotou null.
  • Zber odpadu na serveri na rôznych vláknach môže teraz pracovať s krádežou pri označovaní objektov gen0 / 1, ktoré sú aktívne uchovávané objektmi staršej generácie. Práca s krádežou naprieč vláknami skracuje prchavé pauzy GC pre scenáre, keď označovanie niektorých vlákien GC trvalo oveľa dlhšie ako iným. Okrem toho bola implementovaná časť funkcie haldy pripnutých objektov (POH), interná časť zberu odpadu, aby umožnila zberateľovi spravovať pripnuté objekty osobitne. Tým sa zabráni negatívnym účinkom pripnutých predmetov na generačné hromady.

Preview 1, vydaný 16. marca, obsahoval vylepšenia výkonu regulárnych výrazov, ako aj vylepšenia kvality kódu v RyuJIT.

.NET 5, ktorý má byť vydaný v novembri 2020, má obsahovať:

  • ASP.NET Core, rámec otvoreného zdroja pre webové aplikácie.
  • Entity Framework Core technológia prístupu k údajom.
  • WinForms.
  • WPF (Windows Presentation Foundation).
  • Model zariadenia mobilnej aplikácie Xamarin.
  • ML.NET.

Microsoft uviedol, že .NET 5 poskytne jednotnú platformu pre vytváranie akýchkoľvek typov aplikácií. Spoločnosť ako testovací prípad smeruje polovicu prenosu na svoju návštevnosť webových stránok .NET do verzie .NET 5 ako testovací prípad pomocou Azure load-balancing.

Spoločnosť Microsoft odporúča, aby vývojári vytvorili nové aplikácie s .NET Core 3.1 a potom ich migrovali do .NET 5. Spoločnosť poznamenala, že aplikácie .NET Framework je možné ponechať v .NET Framework, ktorý zostane podporovaný, pokiaľ bude podporovaný samotný Windows.

$config[zx-auto] not found$config[zx-overlay] not found