Spoločnosť Microsoft predstavila významnú verziu otvorenej platformy .NET 7, vytvorenej zlúčením produktov .NET Framework, .NET Core a Mono. Na báze .NET 7 je možné vytvárať multiplatformové aplikácie pre prehliadače, cloudové systémy, desktopové aplikácie, IoT zariadenia a mobilné platformy, pričom sa používajú jednotné knižnice a spoločný proces zostavovania, nezávislý od typu aplikácie. Zostavy .NET SDK 7, .NET Runtime 7 a ASP.NET Core Runtime 7 sú vytvorené pre Linux, macOS a Windows. .NET Desktop Runtime 6 je dodávaný iba pre Windows. Súvisiace vývojové materiály sa šíria pod licenciou MIT. Podpora vetvy .NET 7 bude zabezpečovaná počas 18 mesiacov do 14. mája 2024.
.NET 7 zahŕňa runtime CoreCLR s JIT kompilátorom RyuJIT, štandardné knižnice, knižnice CoreFX, WPF, Windows Forms, WinUI, Entity Framework, príkazový riadok dotnet, ako aj nástroje na vývoj mikroslužieb, knižníc, serverových, grafických a konzolových aplikácií. Samostatne bol publikovaný stack na vývoj webových aplikácií ASP.NET Core 7.0, ORM vrstva Entity Framework Core 7.0 (s ovládačmi pre SQLite a PostgreSQL), knižnica WPF 7 (Windows Presentation Foundation), framework Windows Forms 7 na vývoj GUI, platforma Orleans 7 pre vytváranie cloudových natívnych aplikácií, framework MAUI 7 na vývoj multiplatformových používateľských rozhraní, ako aj vydania jazykov C# 11 a F# 7. Podpora .NET 7.0 a C# 11 je zahrnutá v bezplatnom editore kódu Visual Studio Code.
Funkcie nového vydania:
- Bola vykonaná unifikácia základnej knižnice tried (BCL, Base Class Library) na použitie v rôznych tipoch aplikácií, vrátane programov pre desktopové systémy, webových aplikácií, cloudových platforiem, mobilných aplikácií, hier, zabudovaných programov a systémov strojového učenia. Na vývoj rôznych typov aplikácií je možné použiť jeden spoločný SDK, Runtime a súbor knižníc.
- Bola poskytnutá možnosť viazať aplikáciu na API, ktoré zodpovedá vydaniu .NET 7, prostredníctvom definovania cieľovej platformy „net7.0“, napríklad „net7.0“. Pre viazanie na platforme špecifické API je možné pri definovaní cieľa podrobnejšie špecifikovať typ platformy, napríklad zadaním „net7.0-android“.
- Podstatne zlepšená podpora architektúry ARM64 a pokračuje sa v práci na dosiahnutí paritného výkonu aplikácií .NET na architektúrach x86 a ARM64. V runtime sa zvýšila účinnosť využívania tretej úrovne cache na systémoch ARM64. Použité inštrukcie LSE na rozlíšenie prístupu k pamäti z paralelných prúdov, čo viedlo k zníženiu latencie o 45 %. V knižnici boli pridané spracovateľské funkcie, ktoré používajú vektorové typy Vector64, Vector128 a Vector256, a na základe vektorových inštrukcií boli prepracované funkcie EncodeToUtf8 a DecodeFromUtf8, čo zabezpečilo zvýšenie ich výkonu až o 60 % (pre funkcie NarrowUtf16ToAscii a GetIndexOfFirstNonAsciiChar dosahuje nárast výkonu 35 %). Celkovo sa rýchlosť prechodu testami na platforme ARM64 zvýšila o 10-60 %.

- Zlepšená podpora platformy Linux, vrátane toho, že do oficiálnych repozitárov Ubuntu 22.04 boli pridané balíky s .NET 6 a poskytol sa optimalizovaný, kompaktný a pripravený na použitie docker-imidž na rýchle nasadenie kontajnerov s aplikáciami založenými na .NET.
- Pridaná podpora 64-bitovej architektúry IBM Power (ppc64le).
- Navrhnutý nástroj .NET Upgrade Assistant na zjednodušenie migrácie starých aplikácií na verzie .NET 6 alebo .NET 7. V novej verzii sa rozšírila podpora migrácie aplikácií z ASP.NET na ASP.NET Core, pridané analyzátory a opravovače kódu pre WinForms, WPF a knižnice tried, implementovaná podpora analýzy vykonateľných súborov, pridaná podpora platformy UWP (Universal Windows Platform).
- Rozšírené možnosti pre tvorbu aplikácií pre cloudové systémy (cloud-native) a platformy PaaS (platforma ako služba). Poskytnutá možnosť vytvoriť aplikácie zabalené do izolovaných kontajnerov pomocou príkazu „dotnet publish“.
- Rozšírené prostriedky na sledovanie stavu aplikácií a zber metrik ich fungovania. Pridané nové udalosti a metódy na analýzu aktivity a výkonu aplikácie.
- V jazyku C# 11 bola pridaná podpora neprebraných reťazcových literálov, ktoré môžu obsahovať špeciálne znaky bez potreby ich escapovania (takéto literály sú zvýraznené tromi úvodzovkami). Boli navrhnuté generické rozhrania pre matematické funkcie a bola poskytnutá možnosť definovať statické prvky vo virtuálnych rozhraniach, čo umožnilo aplikovať metódy generického programovania na vykonávanie matematických operácií bez presných informácií o type hodnôt.
- Rozšírili sa možnosti štandardnej knižnice. Bol pridaný API System.Formats.Tar na prácu s archívmi vo formáte Tar. Do funkcie práce s časom (TimeStamp, DateTime a pod.) bola pridaná podpora mikrosekúnd a nanosekúnd. V System.Text.Json bola implementovaná možnosť správy serializácie a deserializácie typov .NET.
- V príkazovom riadku „dotnet new“ bola pridaná podpora automatického doplňovania šablón typových projektov stlačením klávesu Tab.
- .NET SDK implementovalo možnosť obmedzenia použitia dodávaných šablón projektov, napríklad je možné definovať, v ktorých operačných systémoch je povolená šablóna.
- V NuGet bol pridaný režim centralizovanej správy balíkov, ktorý umožňuje spravovať závislosti pre viaceré projekty naraz.
- Zvýšila sa výkonnosť JIT kompilátora. Bola pridaná podpora mechanizmu OSR (On Stack Replacement) na zmenu kódu už vykonávaných metód, čo umožňuje vykonať optimalizácie v metódach, ktorých vykonávanie trvá dlho, aniž by čakalo na dokončenie aktuálneho volania (v teste TechEmpower sa uvádza zvýšenie výkonu spracovania prvých požiadaviek o 10–30 %).
- Zvýšila sa účinnosť optimalizácie založenej na výsledkoch profilovania kódu (PGO — Profile-guided optimization), ktorá umožňuje zohľadniť charakteristiky definované počas vykonávania programu.
- Bola pridaná podpora kompilácie do samostatných spustiteľných súborov (Native AOT), v ktorých je celý projekt pôvodne skompilovaný do strojového kódu cieľovej platformy bez použitia medzivrstvového kódu a bez aplikácie JIT.
Zdroj: opennet.ru

