Programmēšana

Kas jauns Microsoft .NET 5

Microsoft otrais .NET 5 izlaišanas kandidāts ieradās 13. oktobrī, tādējādi tuvinot .NET Framework un .NET Core apvienošanu par soli tuvāk pabeigšanai. Jaunā vienotā .NET platforma ir paredzēta vispārējai pieejamībai 2020. gada 10. novembrī.

Korporācija Microsoft apraksta 2. izlaiduma kandidātu kā gandrīz galīgu laidienu un pēdējo no diviem RC. Sākotnējais RC tika publicēts 13. septembrī. .NET 5.0 laidiena kandidātu var lejupielādēt vietnē dotnet.microsoft.com.

.NET 5 augsta līmeņa mērķi ietver vienotas .NET SDK pieredzes nodrošināšanu ar vienu BCL (bāzes klases bibliotēku) visās .NET 5 lietojumprogrammās un atbalstu gan vietējām, gan tīmekļa lietojumprogrammām vairākās operētājsistēmās. Viens vietējās .NET 5 vietējās lietojumprogrammas projekts atbalstītu tādus mērķus kā Windows, Microsoft Duo (Android) un Apple iOS, izmantojot vietējās vadīklas šajās platformās.

Papildu .NET 5 mērķi ir atbalsts augstas veiktspējas mākoņu lietojumprogrammu izveidei, ātrāki algoritmi BCL, labāks konteineru atbalsts izpildlaika laikā un atbalsts HTTP3. .NET 5.0 ietver WebAssembly binārā formāta atbalstu, izmantojot Mono izpildlaika un .NET bibliotēkas. Tiek piedāvāts arī atsaucamo atsauces tipa anotāciju kopums.

.NET 5 arī sola ļaut izstrādātājiem automātiski atrast latentās kļūdas kodā. Citas jaunas funkcijas ietver Puse tips, binārs peldošais punkts, kas aizņem 16 bitus, un montāžas apgriešana, kas apgriež neizmantotos mezglus, lai samazinātu lietojumprogrammu lielumu. Tiek izcelts arī pielāgots apgriešana. Jauna modeļu atbilstība C # 9 aptver relāciju, loģisko un vienkāršo tipu modeļus. Izvietošanas opcija ClickOnce tagad tiek atbalstīta .NET 5.0 Windows un .NET Core 3.1 lietotnēs.

Jaunā .NET platforma sola arī veiktspējas uzlabojumus. Biļetenā, kas attiecas uz 7. priekšskatījumu, kurš ieradās 21. jūlijā, tiek atzīti aptuveni 250 uz veiktspēju vērsti pieprasījumi .NET 5 un atzīmēts, ka patīkams pārsteigums ir paredzēts tiem, kuri ir sekojuši .NET Core veiktspējai.

Citi papildinājumi un uzlabojumi, kas atzīmēti .NET 5 priekšskatījuma 7 biļetenā:

  • Jaunā System.text.json JSON API nodrošina iespēju ignorēt vērtību tipa rekvizītu noklusējuma vērtības, veicot sērijveidošanu, un tas ir noderīgi, lai samazinātu sērijas un vadu izmaksas. Šīs ir lūzuma pārmaiņas. Sistēmai System.text.json ir pievienota arī spēja rīkoties ar apļveida atsaucēm, veicot sērijveidošanu, un API forma tagad ir paredzēta galīgai.
  • Atkritumu savākšana tagad parāda detalizētus datus par jaunāko savākšanu, izmantojot GetGCMemoryInfo metodi, kas atgriež a GCMemoryInfo struktur. GCMemoryInfo apkalpo informāciju par mašīnu un kaudzes atmiņu un jaunāko kolekciju vai jaunāko norādīto GC kolekciju - īslaicīgu, pilnīgu bloķēšanu vai fonu. Visticamākie šīs API lietošanas gadījumi ir reģistrēšana / uzraudzība vai lai norādītu slodzes līdzsvarotājam, ka mašīna ir jāizņem no rotācijas, lai pieprasītu pilnu GC. Tikmēr tika veiktas vēl vienas GC izmaiņas, lai dārgu atiestatīšanas atmiņas darbību atliktu uz zemas atmiņas situācijām.
  • Ryujit, .NET asamblejas kodu ģenerators, iegūst uzlabojumus, sākot no dažu robežkontroles iespēju pieļaušanas līdz astes dublēšanas uzlabošanai un lieko nulles ievadu noņemšanai. Ryujit piedāvā arī ARM64 aparatūras būtību un API optimizāciju.

.NET 5 Preview 6, kas izlaists 25. jūnijā, tika noņemts iebūvētais atbalsts WinRT (Windows Runtime), API kolekcijai universālo Windows platformu lietojumprogrammu veidošanai. Tās ir lūzuma pārmaiņas; .NET Core 3.x lietotnes, kurās tiek izmantota WinRT, ir jāpārkompilē. .NET un Windows komandas ir strādājušas, lai mainītu veidu, kā WinRT darbojas ar Windows, aizstājot WinRT atbalstu ar rīku ķēdi C # / WinRT .NET 5. C # / WinRT ir NuGet iepakots rīku komplekts, kas piedāvā WinRT projekcijas atbalstu C #.

Citas izmaiņas .NET 5 priekšskatījumā 6:

  • .NET 5 Preview 6 SDK ietver Windows veidlapu atbalstu Windows ARM64 ierīcēs. Turpinās darbs ar Windows ARM64 atbalsta pievienošanu Windows Presentation Foundation.
  • RyuJIT koda kvalitātes uzlabojumi attiecas uz struktūras apstrādi un optimizāciju, lai noņemtu liekās nulles inicializācijas. Ir gūti panākumi arī ARM64 aparatūras iekšējā optimizācijā, kā arī ARM64 ģenerētā koda uzlabošanā, samazinot koda lielumu.
  • Platformas atbalsta plāni ir atjaunināti.

.NET 5 priekšskatījums 5, kas izlaists 10. jūnijā, satur šādas jaunas funkcijas:

  • RyuJIT JIT kompilatoram ir ātrāka, pārnēsājama tailcall palīgu ieviešana. JIT lūdz izpildlaiku pēc palīdzības, kad vien saprot, ka tam būs vajadzīgs palīgs, lai veiktu zvanu. Arī RyuJIT ir turpinājies progress aparatūras iekšējās ARM64 ieviešanā. Citi RyuJIT uzlabojumi ietver lielāku ātrumu gadījumā, kas ietekmēja regulāru izteiksmju apkopošanu un uzlabotu Intel arhitektūras veiktspēju.
  • Ir iespējoti vietējo bināro failu ar zvaniem uz .NET kodu eksportēšana. Šīs iespējas pamatā ir API atbalsts vietnei UnManagedCallersOnlyAttribute. Vietējā eksporta projekts ļauj atklāt vietējo vietējo eksportu. Tam nav nepieciešama augstāka līmeņa savietojamības tehnoloģija, piemēram, COM, un tā ir starpplatforma.
  • DirectoryServices. Protokoli atbalsts tiek paplašināts, iekļaujot Linux un MacOS.
  • Tagad tiek atbalstīta Linux Alpine 3.12 izplatīšana.

.NET 5.0 laidiena kandidātu var lejupielādēt vietnē dot.net.microsoft.com.

.NET 5 Preview 4, kas tika izlaists 19. maijā, ieviesa šādas jaunas iespējas:

  • C # 9 un F # 5 valodas atbalsts.
  • Uzlabota F # izmantoto tailcalls veiktspēja.
  • Uzlabota operētājsistēmas ToUpperInvariant, virkne. ToLowerInvariantun saistītie modeļi.
  • Uzlabota HTTP 1.1 un HTTP 2 veiktspēja.
  • Uzlabots zvanu skaitīšanas mehānisms.
  • Dinamiski paplašinot iekšējo vispārīgo vārdnīcu, lai novērstu veiktspējas klintis, kuras skāris vispārējs kods.
  • Piesprausts objekta kaudze, lai mazinātu kaudzes sadrumstalotību.
  • Viena faila lietojumprogrammas, kuru pamatā ir jauns viena faila publicēšanas veids, kas izpilda lietojumprogrammu no viena binārā.

Uzlabojumi .NET 5 priekšskatījumā 3, kas tika atklāts 23. aprīlī, ietver:

  • BitArray klase bitu vērtību masīva pārvaldībai tika atjaunināta, iekļaujot ar aparatūru paātrinātu ARM64 ieviešanu, izmantojot ARM64 iekšējo. BitArray veiktspējas uzlabojumi ir ievērojami, sacīja Microsoft. Turklāt CLR On Stack nomaiņa (OSR) tika ieviesta, lai metožu izpildes vidū varētu mainīt kodu, kas izpildīts ar pašreiz darbojošām metodēm, kamēr šīs metodes ir aktīvas “uz steka”. Šī spēja uzlabot daudzpakāpju kompilācijas veiktspējas raksturlielumus tagad ir eksperimentāla, izvēles iespēja x64. Vēl viens RyuJIT uzlabojums uzlabo koda kvalitāti struktūrām kā argumentiem pozīcijas izsaukumos “astes zvans”. Paredzams, ka RyuJIT piedāvās arī labāku sugu zāļu darbību.
  • Atbalsts atsauču saglabāšanai tika pievienots sistēmai System.Txt.Json, ļaujot apstrādāt atsauces cilpas JSON serializācijai. Arī JsonSerializer tagad tiek atbalstītas nemainīgas klases un struktūras. Tagad tiek atbalstīta arī nulles vērtību apstrāde.
  • .NET SDK tagad automātiski atsaucas uz NETFramework.ReferenceAssemblies NuGet pakotni, kurai projekta failā tiek piešķirta .NET Framework mērķa sistēma. Šīs izmaiņas ļauj veidot .NET Framework projektus mašīnā bez instalētas .NET Framework mērķauditorijas pakotnes. Šis uzlabojums ir raksturīgs mērķauditorijas pakotnēm, un tajā nav ņemtas vērā citas iespējamās projekta atkarības.

Konkrēti uzlabojumi .NET 5 priekšskatījumā 2, kas izlaists 2. aprīlī, ietvēra:

  • RyuJIT ir veiktas vairākas izmaiņas, lai uzlabotu ģenerētā mašīnkoda kvalitāti, tostarp agresīvāk tiek novērstas nulles inicializācijas un tiek atsauktas iepriekš atsauktas kastes optimizācijas.
  • Servera atkritumu savākšana dažādos pavedienos tagad var nozagt, vienlaikus iezīmējot gen0 / 1 objektus, kurus tiešraidē tur vecākas paaudzes objekti. Darbu zādzība pāri pavedieniem saīsina īslaicīgas GC pauzes scenārijiem, kur dažu GC pavedienu atzīmēšana prasīja daudz ilgāku laiku nekā citi. Turklāt ir ieviesta daļa no piesprausto objektu kaudzes (POH) funkcijas - atkritumu savākšanas iekšējā daļa, lai savācējs varētu atsevišķi pārvaldīt piespraustos objektus. Tas ļauj izvairīties no piesprausto objektu negatīvās ietekmes uz paaudžu kaudzēm.

1. priekšskatījums, kas tika izlaists 16. martā, ietvēra regulāras izteiksmes veiktspējas uzlabojumus, kā arī koda kvalitātes uzlabojumus RyuJIT.

Termiņa izlaišanas dēļ 2020. gada novembrī .NET 5 ir paredzēts iekļaut:

  • ASP.NET Core, atvērtā koda sistēma tīmekļa lietojumprogrammām.
  • Entity Framework datu piekļuves tehnoloģija.
  • WinForms.
  • WPF (Windows Presentation Foundation).
  • Xamarin mobilās lietotnes ierīces modelis.
  • ML.NET.

Microsoft paziņoja, ka .NET 5 nodrošinās vienotu, vienotu platformu jebkura veida lietojumprogrammu veidošanai. Uzņēmums pusi datplūsmas novirza uz .NET vietnes datplūsmu uz .NET 5 versiju kā testa gadījumu, izmantojot Azure slodzes līdzsvarošanu.

Microsoft iesaka izstrādātājiem veidot jaunas lietojumprogrammas ar .NET Core 3.1 un pēc tam migrēt uz .NET 5. Uzņēmums atzīmēja, ka .NET Framework lietojumprogrammas var atstāt .NET Framework, kas paliks atbalstītas tik ilgi, kamēr tiek atbalstīta pati Windows.

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