Spoločnosť Microsoft predstavila vydanie otvorenej platformy .NET 8, vytvorenej zlúčením produktov .NET Framework, .NET Core a Mono. Na základe .NET 8 je možné vytvárať multiplatformové aplikácie pre prehliadač, cloudové systémy, desktop, IoT zariadenia a mobilné platformy, pričom sa používajú jednotné knižnice a spoločný proces zostavenia, ktorý nezávisí od typu aplikácie. Zostavy .NET SDK 8, .NET Runtime 8 a ASP.NET Core Runtime 8 sú pripravené pre Linux, macOS a Windows. .NET Desktop Runtime 8 je k dispozícii iba pre Windows. Súvisiace projekty sú šírené pod licenciou MIT. Vetva .NET 8 je zaradená do kategórie LTS a bude podporovaná počas troch rokov do novembra 2026.
.NET 8 obsahuje Runtime s JIT kompilátorom RyuJIT, špecifikácie API, knižnice WPF, Windows Forms, WinUI, Entity Framework, príkazový riadok dotnet, ako aj nástroje pre vývoj mikroslužieb, knižníc, serverových, grafických a konzolových aplikácií. Samostatne bol publikovaný stack pre vývoj webových aplikácií ASP.NET Core 8.0, ORM vrstva Entity Framework Core 8.0 (s ovládačmi vrátane SQLite a PostgreSQL), knižnica WPF 8 (Windows Presentation Foundation), framework Windows Forms 8 na vývoj GUI, platforma Aspire 8 na tvorbu aplikácií Cloud Native, framework MAUI 8 na vývoj multiplatformových používateľských rozhraní a tiež vydania jazykov C# 12 a F# 8. Podpora .NET 8.0 a C# 12 je zahrnutá vo voľnom editore kódu Visual Studio Code.
Funkcie nového vydania:
- Bola vykonaná rozsiahla optimalizácia výkonu. Predvolene je zapnutý nový generátor kódu, ktorý podporuje dynamickú optimalizáciu na základe profilovania vykonávania kódu (Dynamic Profile-Guided Optimization). Používanie nového generátora kódu zaisťuje nárast výkonu aplikácií až o 20%. Okrem toho bola v novej verzii pridaná podpora inštrukcií AVX-512, čo umožňuje zvýšiť výkon paralelných operácií nad vektorovými dátami. Pre primitívne typy bol implementovaný nový rozhranie, ktoré umožňuje priamo bez prekodovania analyzovať a formátovať údaje vo formáte UTF-8. V testoch TechEmpower sa výkon práce s JSON API zvýšil o 18%, zatiaľ čo s Fortunes o 24%.

- Bol pridaný nový stack .NET Aspire, určený na vývoj cloudových aplikácií (cloud-native) pomocou technológií .NET. V .NET Aspire je k dispozícii široký súbor komponentov, ktoré môžu byť potrebné pri vytváraní aplikácií bežiacich v cloudových prostrediach, vrátane nástrojov na zber telemetrie, konfiguráciu, testovanie funkcionality a zabezpečenie odolnosti.
- Nástroje na balenie aplikácií do izolovaných kontajnerov boli rozšírené. Predvolene je zabezpečené publikovanie obrazov kontajnerov bez Dockerfile a bez používateľa root. Veľkosť základného obrazu kontajnera s komponentmi platformy .NET bola zmenšená. Bol pridaný minimalistický variant obrazu na spúšťanie aplikácií, skompilovaných do spustiteľných súborov (Native AOT). Bol pridaný bezpečnejší variant obrazov založených na Chiseled Ubuntu.
- Zvýšila sa efektívnosť kompilácie do samostatných spustiteľných súborov (Native AOT), v ktorých je celý projekt predkompilovaný do strojového kódu cieľovej platformy bez použitia medzičlánkového kódu a bez aplikácie JIT.

- Boli rozšírené možnosti programovacích rozhraní, ktoré je možné používať v systémoch strojového učenia. Napríklad v knižnici System.Numerics bola zvýšená kompatibilita s generatívnymi AI systémami. Boli pridané príklady pre vedomie chatbotov, generovanie obsahu a volania na služby Azure AI.
- V Blazor, platforme na vytváranie webových aplikácií v jazyku C#, bol skrátený čas načítania stránok, zvýšila sa škálovateľnosť a bolo povolené používanie v jednej aplikácii Blazor Server a Blazor WebAssembly na vytváranie programov, ktoré kombinujú funkcie a klienta. servera Bol pridaný Jiterpreter, nový a rýchlejší WebAssembly runtime, ktorý umožnil urýchliť vykreslenie rozhrania o 20 %. Boli rozšírené možnosti autentifikácie, autorizácie a identifikácie.
- Framework MAUI na vývoj multiplatformových používateľských rozhraní bol rozšírený, čo umožňuje využitie jedného kódu na zostavenie rozhraní pre Windows, macOS, iOS a Android. Bola pridaná experimentálna podpora pre kompiláciu (Native AOT). Pridaná podpora pre platformy Xcode 15 a Android API 34. Boli modernizované grafické prvky a tlačidlá, zlepšená správa kliknutí myšou a udalostí z klávesnice.
- Vo variante C# 12 bola pridaná podpora pre zjednodušenú syntax pre vytváranie primárnych konštruktorov v akýchkoľvek triedach a štruktúrach, a tiež bolo zjednodušené vytváranie polí, span a iných typov kolekcií. Boli poskytnuté prostriedky na nastavenie predvolených hodnôt pre parametre lambda výrazov. Bolo zjednodušené spracovanie voliteľných argumentov. Pridaná možnosť vytvárania aliasov pre akékoľvek typy pomocou direktívy „alias“. // Vytvorenie zoznamu List a = [1, 2, 3, 4, 5, 6, 7, 8]; // Vytvorenie span polí Span b = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘h’, ‘i’]; // Použitie operátora spread na zreťazenie int[] array1 = [1, 2, 3]; int[] array2 = [4, 5, 6]; int[] array3 = [7, 8, 9]; int[] fullArray = [..array1, ..array2, ..array3]; // obsah bude [1, 2, 3, 4, 5, 6, 7, 8, 9]
- V ASP.NET Core bola pre jednopanelové (SPA, single-page application) a webové aplikácie (Blazor) implementovaná podpora autentifikácie založená na Cookies a tokenoch. Bol navrhnutý nový používateľský rozhranie pre autentifikáciu. Zosilnená ochrana proti XSRF/CSRF útokom.
- V Entity Framework Core sú k dispozícii nové zložené typy, ktoré môžu byť použité ako objekty. Pridaná podpora hierarchických údajov v SQL Serveri.
- V balíkovom manažéri NuGet bol zjednodušený audit balíkov v projektoch a zabezpečené informovanie o existujúcich známych zraniteľnostiach.
- V .NET Runtime bol pridaný režim proaktívnej kompilácie (AOT) pre platformy WebAssembly (WASM) a Android.
- WPF bol pridaný dialóg pre otvorenie priečinka (OpenFolderDialog) a bola zahrnutá podpora hardvérovej akcelerácie v RDP.
- Výrazne bola vylepšená podpora architektúry ARM64 a zvýšená kvalita kódu pre ARM.
- V ladení bol zabezpečený prehľad súhrnných ladacích údajov a implementované zjednodušené ladacie vrstvy pre bežne používané typy .NET.
Zdroj: opennet.ru


