Microsoft tutvustas avatud platvormi .NET 8, mis on loodud .NET Frameworki, .NET Core'i ja Mono toote ühtsustamise kaudu. .NET 8 põhjal saab luua mitme platvormiga rakendusi brauseritele, pilvesüsteemidele, töölauale, IoT-seadmetele ja mobiilseentele, kasutades ühtseid raamatukogusid ja ühist koostamisprotsessi, mis ei sõltu rakenduse tüübist. .NET SDK 8, .NET Runtime 8 ja ASP.NET Core Runtime 8 on saadaval Linuxi, macOS-i ja Windowsi jaoks. .NET Desktop Runtime 8 on saadaval ainult Windowsile. Projektiga seotud arengud jagatakse MIT litsentsi alusel. .NET 8 haru kuulub LTS kategooriasse ja seda hooldatakse kolme aasta jooksul kuni novembrini 2026.
.NET 8 koosneb RyuJIT JIT-koguja, API spetsifikatsioonidest, WPF, Windows Formsi, WinUI, Entity Frameworki, dotnet käsurealiidesest ning tööriistadest mikroteenuste, raamatukogude, serveri-, graafika- ja konsooliotsingute arendamiseks. Eraldi on avaldatud ASP.NET Core 8.0 veebirakenduste arendamiseks mõeldud tehnoloogiapakett, ORM-kihiks on Entity Framework Core 8.0 (sh draiverid SQLite ja PostgreSQL jaoks), WPF 8 (Windows Presentation Foundation) raamatukogu, Windows Formsi 8 raamistik GUI arendamiseks, Aspire 8 platvorm Cloud Native rakenduste loomiseks, MAUI 8 raamistiku süsteem mitme platvormi kasutajaliideste arendamiseks ning C# 12 ja F# 8 keeltele uuendused. .NET 8.0 ja C# 12 toetus on integreeritud tasuta koodiredaktorisse Visual Studio Code.
Uue väljaande omadused:
- Tehti suur jõudluse optimeerimine. Vaikimisi on sisse lülitatud uus koodigeneraator, mis toetab dünaamilist optimeerimist koodi käitamise profiilide põhjal (Dynamic Profile-Guided Optimization). Uue koodigeneraatori kasutamine tagab rakenduste jõudluse tõusu kuni 20%. Lisaks on uues versioonis lisatud AVX-512 juhiste tugi, mis võimaldab suurendada paralleelsete operatsioonide jõudlust vektordatatüüpidel. Primitiivtüüpide jaoks on rakendatud uus liides, mis võimaldab otse ilma kodeerimiseta töötleda ja vormindada andmeid UTF-8 formaadis. TechEmpoweri testides suurenes JSON API töötlemise jõudlus 18% ja Fortune'ide puhul 24%.

- Uus .NET Aspire teek on lisatud, mis on mõeldud pilvepõhiste rakenduste (cloud-native) arendamiseks, kasutades .NET tehnoloogiaid. .NET Aspire pakub laia komponentide kogumit, mis võib olla vajalik pilvekeskkonnas töötavate rakenduste loomisel, sealhulgas teenuseid telemeetriate kogumiseks, konfiguratsiooniks, töökindluse kontrollimiseks ja tõrketaluvuse tagamiseks.
- Rakenduste pakkimiseks mõeldud tööriistu on laiendatud isoleeritud konteineritesse. Vaikimisi on tagatud konteineripiltide avaldamine ilma Dockerfile'i ja ilma root-kasutajata. Baaskonteinri suurust on vähendatud .NET platvormi komponentidega. Lisatud on minimalistlik versioon pildist, et käitada rakendusi, mis on kompileeritud käivitatavatesse failidesse (Native AOT). Lisatud on turvalisem versioon Chiseled Ubuntu põhjal.
- Kompileerimise efektiivsust iseseisvateks käivitatavateks failideks (Native AOT) on tõhustatud, kus kogu projekt on algselt kompileeritud sihtplatvormi masinkoodiks ilma vahekeele kasutamata ja ilma JIT-i rakendamata.

- Machine learning süsteemides kasutatavaid programmeerimisliidese võimalusi on laiendatud. Näiteks on System.Numerics raamatukogus suurendatud ühilduvust generatiivsete tehisintellekti süsteemidega. Lisatud on näited vestlusrobotite teadvusest, sisu genereerimisest ja Azure AI teenuste poole pöördumisest.
- Blazoris, C# programmeerimiskeele põhine veebirakenduste platvorm, vähendab lehtede laadimisaega, parandab skaleeritavust ning lubab kasutada ühes rakenduses Blazor Server ja Blazor WebAssembly, mis ühendavad kliendi ja serveri funktsioonid. serverile Tõhustatud on Jiterpreter, uus ja kiirem WebAssembly jooksukeskkond, mis on võimaldanud täiustada liidese joonistamise kiirus 20%. Laienenud on autentimise, autoriseerimise ja identifitseerimise võimalused.
- MAUI raamistik, mis arendab mitme platvormi kasutajaliideseid, on laienenud, võimaldades ühte koodibaasi kasutada Windowsi, macOS, iOS-i ja Androidi liideste koostamiseks. Lisatud on eksperimentaalne tugi Native AOT kompileerimisele. Toetatakse Xcode 15 ja Android API 34 platvorme. Uuendatud on graafilisi elemente ja nuppe, parendatud on hiireklikkide ja klaviatuuri sündmuste töötlemist.
- C# 12 keeles on lisatud toetust lihtsustatud süntaksile primaarsete konstruktorite loomiseks igasugustes klassides ja struktuurides, samuti on lihtsustatud massiivide, span'i ja muude kogumite loomine. Pakutakse vahendeid, et määrata vaikimisi väärtusi lambda-väljendite parameetritele. Lihtsustatud on valikuliste argumentide töötlemine. Lisatud on võimalus luua pseudonüüme igasuguste tüüpide jaoks kas „alias“ direktiivi abil. // Loome loendi List a = [1, 2, 3, 4, 5, 6, 7, 8]; // Loome span-massiive Span b = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘h’, ‘i’]; // Kasuta laiali operatorit ühendamiseks 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 ühe lehe (SPA, single-page application) ja web-rakenduste (Blazor) jaoks rakendatud küpsiste ja tokenite põhist autentimist. Pakutakse uus kasutajaliides autentimisprotsessi läbimiseks. Nõrkuste kaitsmed XSRF/CSRF rünnakute eest on tugevdatud.
- Entity Framework Core'is on lisatud uued keerukad tüübid, mida saab kasutada objektidena. Toetatakse hierarhilisi andmeid SQL Serveris.
- NuGet pakettihalduris on lihtsustatud paketihalduse auditeerimine projektides ning tagatud teadaolevate haavatavuste teavitamine.
- .NET Runtime'i on lisatud ennetava kompileerimise (AOT) režiim WebAssembly (WASM) ja Android platvormidele.
- WPF-ile on lisatud katalooge avamise dialooge (OpenFolderDialog) ning võimaldatud riistvaraline kiirusuuendus RDP-s.
- ARM64 arhitektuuri tugi on märkimisväärselt paranenud ning ARM-i koodi kvaliteet on tõusnud.
- Tõrkeotsijasse on lisatud kokkuvõtlikud tõrkeotsingu andmed ja rakendatud lihtsustatud tõrkeotsingu kihid tavaliselt kasutatavatele .NET tüüpidele.
Allikas: opennet.ru


