Microsofti ettevõte tutvustas avatud platvormi .NET 8 väljalaset, mille on loonud .NET Frameworki, .NET Core'i ja Mono tooteid ühtsustav ülesehitus. .NET 8 põhjal on võimalik luua mitme platvormiga rakendusi brauseritele, pilvesüsteemidele, lauaarvutitele, IoT-seadmetele ja mobiilsetele platvormidele, kasutades ühiseid raamatukogusid ja ühtset kogumise protsessi, mis ei sõltu rakenduse liigist. .NET SDK 8, .NET Runtime 8 ja ASP.NET Core Runtime 8 kogud on loodud Linuxi, macOS-i ja Windowsi jaoks. .NET Desktop Runtime 8 on saadaval ainult Windowsile. Projekti seotud arendustööd levitatakse MIT litsentsi alusel. .NET 8 haru kuulub LTS kategooriasse ja seda toetatakse kolme aasta jooksul kuni novembrini 2026.
.NET 8 sisaldab runtime'i koos JIT-koodigeneraatoriga RyuJIT, API-spetsifikatsioone, WPF, Windows Forms, WinUI, Entity Frameworki raamatukogusid, dotnet käsurealiidest ning tööriistu mikroteenuste, raamatukogude, serveri-, graafika- ja konsoolrakenduste arendamiseks. Eraldi on avaldatud ASP.NET Core 8.0 veebirakenduste arendamise komplekt, ORM-kiht Entity Framework Core 8.0 (sh draiverid SQLite ja PostgreSQL jaoks), WPF 8 (Windows Presentation Foundation) raamatukogu, Windows Forms 8 raamistik GUI arendamiseks, Aspire 8 platvorm Cloud Native rakenduste loomiseks, MAUI 8 raamistik platvormidevaheliste kasutajaliideste arendamiseks ning C# 12 ja F# 8 keelte väljalasked. .NET 8.0 ja C# 12 toetamine on sisse ehitatud tasuta Visual Studio Code redigeerijasse.
Uue väljaande omadused:
- Toimunud on ulatuslik jõudluse optimeerimine. Vaikimisi on sisse lülitatud uus koodigeneraator, mis toetab dünaamilist optimiseerimist, mis põhineb koodi täitmise profiilide analüüsil (Dynamic Profile-Guided Optimization). Uue koodigeneraatori kasutamine tagab rakenduste jõudluse kuni 20% tõusu. Lisaks on uues versioonis lisatud AVX-512 juhiste tugi, mis võimaldab parandada paralleelsete operatsioonide jõudlust vektorandmete osas. Primitiivsetele tüüpidele on rakendatud uus liides, mis võimaldab otse ilma dekodeerimiseta analüüsida ja vormindada andmeid UTF-8 formaadis. TechEmpoweri testides suurenes JSON API jõudlus 18% ja Fortunesi puhul 24%.

- Lisatud uus .NET Aspire'i tehnoloogiapakk, mis on mõeldud pilvepõhiste rakenduste (cloud-native) arendamiseks .NET tehnoloogiate abil. .NET Aspire pakub laia valikut komponente, mis võivad olla vajalikud rakenduste loomiseks, mis töötavad pilves, sealhulgas tööriistu telemeetriate kogumiseks, seadistamiseks, töökindluse testimiseks ja tõrkekindluse tagamiseks.
- Rakenduste pakendamise tööriistu on laiendatud isoleeritud konteineritesse. Vaikimisi on tagatud konteineripiltide koostamine ilma Dockerfile ja juurt kasutamata. .NET tehnoloogia komponentide baasimagendi suurust on vähendatud. Lisatud on minimalistlik pildiversioon rakenduste käivitamiseks, mis on kompileeritud täidetavateks failideks (Native AOT). Lisatud on turvalisem pildiversioon, mis põhineb Chiseled Ubuntu'l.
- Kompilatsiooni efektiivsust on suurendatud iseseisvate täidetavate failide (Native AOT) jaoks, kus kogu projekt on algselt kompileeritud sihtplatvormi masinkoodiks ilma vahekoodita ja ilma JIT-ita.

- Tarkvaraliideste võimalusi on laiendatud, et neid saaks kasutada masinõppe süsteemides. Näiteks on System.Numerics raamatukogus suurendatud ühilduvust generatiivsete AI-süsteemidega. Lisatud on näidised chat-boti teadlikkuse, sisu genereerimise ja Azure AI teenustega suhtlemise jaoks.
- Blazor'is, C#-i web-rakenduste loomise platvormis, on vähendatud lehe laadimise aega, suurendatud mõõdetavust ja lubatud sama rakenduse Blazor Server ja Blazor WebAssembly kasutamine, et luua programme, mis kombineerivad funktsionaalsust serverid ja klienti. Lisatud on Jiterpreter, kiirem WebAssembly töötlemismoodul, mis on võimaldanud liidese joonistamist kiirendada 20%. Käitumise autentimise, autoriseerimise ja identifitseerimise võimalusi on laiendatud.
- MAUI raamistikku on laiendatud multidistaalsetele kasutajaliidesele, kus on võimalik kasutada ühte koodibaasi rakenduste koostamiseks Windows, macOS, iOS ja Android platvormide jaoks. Lisatud on eksperimentaalne tugi kompileerimiseks (Native AOT). Tuge on pakutud ka Xcode 15 ja Android API 34 platvormide jaoks. Graafilisi elemente ja nuppe on moderniseeritud, hiireklikkide ja klaviatuuri sündmuste töötlemist on parandatud.
- C# 12-s on lisatud lihtsustatud süntaks peamiste konstruktoreid loomiseks igasugustes klassides ja struktuurides, samuti on lihtsustatud massiivide, span'i ja muude kogumite loomine. On pakutud vahendeid vaikeväärtuste määramiseks lambda-väljendite parameetritele. Lihtsustatud on valikuliste argumentide töötlemine. Lisatud on võimalus luua igasuguste tüüpide alias'eid käsu „alias” abil. // Nimekirja loomine List<int> a = [1, 2, 3, 4, 5, 6, 7, 8]; // Span-massiivide loomine Span<char> b = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘h’, ‘i’]; // Kasuta levikuoperaatorit liitmiseks int[] array1 = [1, 2, 3]; int[] array2 = [4, 5, 6]; int[] array3 = [7, 8, 9]; int[] fullArray = [..array1, ..array2, ..array3]; // sisu on [1, 2, 3, 4, 5, 6, 7, 8, 9]
- ASP.NET Core'is on flirtis toeks autentimine Cookie ja tokenite põhjal ühekordsete (SPA, single-page application) ja veebi rakenduste (Blazor) jaoks. On pakutud uus kasutajaliides autentimise läbimiseks. Parandatud on kaitset XSRF/CSRF rünnakute eest.
- Entity Framework Core'is on saadaval uued keerulised tüübid, mida saab kasutada objektidena. Lisatud on toetust hierarhilistele andmetele SQL Serveris.
- NuGet'i paketihalduris on lihtsustatud pakettide audit projektides ja tagatud teave tuntud haavatavuste olemasolu kohta.
- .NET Runtime'is on lisatud eelkompileerimise režiim (AOT) WebAssembly (WASM) ja Androidi platvormidele.
- WPF-is on lisatud kausta avamise dialoog (OpenFolderDialog) ja aktiveeritud on riistvara kiirenduse tugi RDP-s.
- Oluliselt on parendatud ARM64 arhitektuuri toetust ja koodi kvaliteeti ARM-ile.
- Veaparanduses on tagatud kokkukäivade vigade andmete esitamine ja rakendatud lihtsustatud veaparandamise kihtide jaoks sageli kasutatavaid .NET tüüpe.
Allikas: opennet.ru


