Kompanija Microsoft predstavila je izdanje otvorene platforme .NET 8, koju je omogućila unifikacija proizvoda .NET Framework, .NET Core i Mono. Na osnovu .NET 8 mogu se razvijati višeslojevske aplikacije za pretraživače, oblake, radne površine, IoT uređaje i mobilne platforme, koristeći jedinstvene biblioteke i zajednički proces izgradnje, nezavisno od tipa aplikacije. Verzije .NET SDK 8, .NET Runtime 8 i ASP.NET Core Runtime 8 su dostupne za Linux, macOS i Windows. .NET Desktop Runtime 8 se isporučuje samo za Windows. Resursi povezani s projektom objavljeni su pod MIT licencom. Grana .NET 8 je klasifikovana kao LTS i dobiće podršku tokom tri godine do novembra 2026.
.NET 8 uključuje Runtime sa JIT kompajlerom RyuJIT, API specifikacije, biblioteke WPF, Windows Forms, WinUI, Entity Framework, komandnu liniju dotnet, kao i alate za razvoj mikroservisa, biblioteka, servera, grafičkih i konzolnih aplikacija. Pojedinačno su objavljeni stek za razvoj web-aplikacija ASP.NET Core 8.0, ORM sloj Entity Framework Core 8.0 (uključujući drajvere za SQLite i PostgreSQL), biblioteka WPF 8 (Windows Presentation Foundation), framework Windows Forms 8 za razvoj GUI, platforma Aspire 8 za izradu Cloud Native aplikacija, framework MAUI 8 za razvoj višeslojnih korisničkih interfejsa, kao i izdanja jezika C# 12 i F# 8. Podrška za .NET 8.0 i C# 12 uključena je u besplatni uređivač koda Visual Studio Code.
Karakteristike novog izdanja:
- Izvršena je velika optimizacija performansi. Uključen je po defaultu novi generator koda, koji podržava dinamičnu optimizaciju na osnovu profilisanja izvršenja koda (Dynamic Profile-Guided Optimization). Korišćenje novog generatora koda omogućava poboljšanje performansi aplikacija do 20%. Pored toga, u novoj verziji je dodata podrška za AVX-512 instrukcije, koje omogućavaju povećane performanse paralelnih operacija nad vektorskim podacima. Za primitivne tipove je implementiran novi interfejs, koji omogućava direktno parsiranje i formatiranje podataka u UTF-8 formatu bez ponovnog kodiranja. U testovima TechEmpower, performanse rada sa JSON API su povećane za 18%, dok su za Fortunes porasle za 24%.

- Dodana je nova .NET Aspire platforma, namijenjena razvoju oblaku prilagođenih aplikacija (cloud-native) koristeći .NET tehnologije. .NET Aspire pruža širok skup komponenti koje mogu biti potrebne prilikom izrade aplikacija koje se izvode u oblaku, uključujući alate za prikupljanje telemetrije, konfiguraciju, provjeru funkcionalnosti i osiguranje otpornosti na kvarove.
- Prošireni su alati za pakovanje aplikacija u izolirane kontejnere. Zadano, omogućeno je objavljivanje slika kontejnera bez Dockerfile-a i bez korisnika root. Smanjena je veličina osnovne slike kontejnera s komponentama .NET platforme. Dodana je minimalistička verzija slike za pokretanje aplikacija, kompajliranih u izvršne datoteke (Native AOT). Dodana je sigurnija verzija slika temeljena na Chiseled Ubuntu.
- Povećana je efikasnost kompajliranja u samodostatne izvršne datoteke (Native AOT), u kojima je cijeli projekt prvobitno kompajliran u mašinski kod ciljane platforme bez korištenja međukodova i bez JIT-a.

- Proširene su mogućnosti programskih sučelja koja se mogu koristiti u sustavima mašinskog učenja. Na primjer, u biblioteci System.Numerics povećana je kompatibilnost s generativnim AI sustavima. Dodati su primjeri za svijest chatbotova, generaciju sadržaja i pristup Azure AI uslugama.
- U Blazoru, platformi za izradu web aplikacija na C# jeziku, smanjeno je vrijeme učitavanja stranica, povećana je skalabilnost, omogućena je korištenje Blazor Server i Blazor WebAssembly u istoj aplikaciji za izradu programa koji kombiniraju funkcije strežnika i klijenta. Dodan je Jiterpreter, novi brži WebAssembly runtime, koji je omogućio ubrzanje renderiranja sučelja za 20%. Proširene su mogućnosti autentikacije, autorizacije i identifikacije.
- Proširen je MAUI okvir za razvoj višekratnih korisničkih sučelja, u kojem je omogućeno korištenje jedne baze koda za izgradnju sučelja za Windows, macOS, iOS i Android. Dodana je eksperimentalna podrška za kompajliranje (Native AOT). Dodana je podrška za platforme Xcode 15 i Android API 34. Modernizirani su grafički elementi i dugmad, te je poboljšana obrada klikova mišem i događaja s tastature.
- V jeziku C# 12 je bila dodana podpora za poenostavljen sintaksis za ustvarjanje primarnih konstruktorjev v vseh razredih in strukturah, prav tako pa je bilo poenostavljeno ustvarjanje tabel, span in drugih tipov zbirk. Na voljo so orodja za določitev privzetih vrednosti za parametre lambda izrazov. Poenostavljena je obdelava neobveznih argumentov. Dodana je možnost ustvarjanja vzdevkov za vse tipe s pomočjo direktive „alias“. // Ustvarjanje seznama List a = [1, 2, 3, 4, 5, 6, 7, 8]; // Ustvarjanje span-tabel Span b = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘h’, ‘i’]; // Uporabite operator širjenja za povezovanje int[] array1 = [1, 2, 3]; int[] array2 = [4, 5, 6]; int[] array3 = [7, 8, 9]; int[] fullArray = [..array1, ..array2, ..array3]; // vsebina bo [1, 2, 3, 4, 5, 6, 7, 8, 9]
- V ASP.NET Core je bila uvedena podpora za avtentikacijo na osnovi piškotkov in žetonov za enostranske (SPA) in spletne aplikacije (Blazor). Predlagan je nov uporabniški vmesnik za postopek avtentikacije. Okrepljena je zaščita pred napadi XSRF/CSRF.
- V Entity Framework Core so bili predstavljeni novi kompleksni tipi, ki jih lahko uporabljamo kot objekte. Dodana je bila podpora za hierarhične podatke v SQL Serverju.
- V paketnem upravljalniku NuGet je poenostavljen avdit paketov v projektih in zagotovljeno obveščanje o znanih ranljivostih.
- V .NET Runtime je bil dodan način predkompilacije (AOT) za platforme WebAssembly (WASM) in Android.
- WPF je dodal dialog za odpiranje mape (OpenFolderDialog) in omogočil podporo za strojno pospeševanje v RDP.
- Znatno je izboljšana podpora za arhitekturo ARM64 in povečana kakovost kode za ARM.
- V razhroščevalniku so bili zagotovljeni povzetki razhroščevalnih podatkov in uvedene so poenostavljene razhroščevalske plasti za običajno uporabljene tipe .NET.
Izvor: opennet.ru


