Tvrtka Microsoft predstavila je otvorenu platformu .NET 11, koja je nastala unificiranjem proizvoda .NET Framework, .NET Core i Mono. Na temelju .NET 11 moguće je razvijati višekratne aplikacije za preglednike, cloud sustave, radne površine, IoT uređaje i mobilne platforme, koristeći jedinstvene biblioteke i zajednički proces kompilacije, neovisno o vrsti aplikacije. Paketi .NET SDK 11, .NET Runtime 11 i ASP.NET Core Runtime 11 oblikovani su za Linux, macOS i Windows. .NET Desktop Runtime 11 isporučuje se samo za Windows. Povezani radovi u projektu raspoređuju se pod MIT licencom.
U sklopu .NET-a dolazi Runtime s JIT-compilerom RyuJIT, specifikacije API-ja, biblioteke WPF, Windows Forms, WinUI i Entity Framework, te sučelje naredbenog retka dotnet, kao i alati za razvoj mikroservisa, biblioteka, poslužiteljske, grafičke i konzole aplikacije. Odvojeno se isporučuje skup za razvoj web-aplikacija ASP.NET Core 11.0, ORM sloj Entity Framework Core 11.0 (driveri su dostupni, uključujući SQLite i PostgreSQL), WPF 11 (Windows Presentation Foundation), framework Windows Forms 11 za razvoj GUI-a, platforma Aspire 11 za izradu Cloud Native aplikacija, framework MAUI 11 za razvoj višekratnih korisničkih sučelja, kao i izdanja jezika C# 15 i F# 11. Podrška za .NET 11.0 i C# 15 uključena je u besplatni uređivač koda Visual Studio Code.
U jeziku C# 15 dodana je ključna riječ union za deklaraciju tipa čija vrijednost može biti samo jedan od unaprijed navedenih tipova-varaijanta. Promjenljivoj union-tipa može se dodijeliti vrijednost bilo kojeg od dopuštenih tipova, a prilikom pokušaja dodavanja vrijednosti tipa koji nije naveden tijekom deklaracije, prevoditelj će izbaciti grešku.
Značajke novog izdanja:
- public record class Cat(string Name);
public record class Dog(string Name);
public record class Bird(string Name);
public union Pet(Cat, Dog, Bird);Za klase je predložen modifikator „closed“, pomoću kojeg se mogu stvarati zatvorene hijerarhije (closed hierarchy), u kojima nasljeđivanje osnovne klase s modifikatorom closed dopušteno je samo unutar onog paketa gdje je dekretirana i u fazi kompilacije poznat je cjeloviti skup izravnih potomaka. Union-tipi i zatvorene hijerarhije jamče da su u switch konstrukciji obrađene sve moguće varijante, što omogućuje izostavljanje „default“ grane i varijable „_“.
Для классов предложен модификатор «closed», при помощи которого можно создавать закрытые иерархии (closed hierarchy), в которых наследование от базового класса с модификатором closed допускается только внутри той сборки, где он объявлен и на этапе компиляции известен полный набор прямых потомков. Union-типы и закрытые иерархии гарантируют, что в конструкции switch обработаны все возможные варианты, что позволяет обойтись без ветки «default» и переменной «_».
U novoj verziji C# također je dodana podrška za prelazak iz izraza 'break' i 'continue' na označene dijelove te su proširene eksperimentalne mogućnosti izolacije unutar unsafe blokova koda koji izravno rade s memorijom (dodana je mogućnost primjene unsafe za pojedinačne izraze).
- U jeziku F# 11 smanjena je potrošnja memorije od strane kompajlera i smanjen je broj operacija alokacije memorije prilikom rada s kolekcijama FSharp.Core. Dodana je mogućnost ograničavanja paralelno izvršenih asinkronih zadataka kako bi se spriječilo preopterećenje. Dodana je preliminarna podrška za Runtime Async.
- U SDK-u su po defaultu uključeni server MSBuild i prekompilirana (NativeAOT) verzija CLI alata dotnet.
Smanjena je veličina instalatera SDK-a za Linux i macOS zahvaljujući deduplifikaciji buildova. - Optimiziran je JIT kompajler, uklonjene su suvišne provjere granica i grananja, poboljšana je devirtualizacija i prošireno je skraćivanje operacija u konstante. U AOT kompajleru korišten je zajednički obraditelj poziva, što je omogućilo smanjenje količine koda i povećanje propusnosti prilikom intenzivnog pozivanja sučelja. Za Linux i macOS implementirano je očuvanje prilikom kvarova snimanja stoga i informacije o modulima.
- Dodana je eksperimentalna funkcija Runtime Async za zamjenu generiranog kompajlerskog koda za obradi async operacija s implementacijom koja upravlja pauziranjem i nastavkom asinkronih operacija na razini runtime.
- U SDK je dodan obrazac poslužitelja MCP za integraciju s AI alatima i servisima. Za aplikacije koje koriste AI servise dodan je set apstrakcija Microsoft.Extensions.AI (MEAI). Na temelju tih apstrakcija formiran je
Microsoft Agent Framework (MAF), koji se može koristiti za izradu AI agenata. - U API-ju Process proširene su mogućnosti pokretanja procesa uz presretanje njihovog izlaza i kodova završetka rada, kao i kontrola nad naslijeđenim deskriptorima.
- U API-ju System.IO.Compression dodana je podrška za algoritam kompresije Zstandard.
- Dodani su novi adapteri za tokove ReadOnlyMemoryStream, WritableMemoryStream, ReadOnlySequenceStream i StringStream.
- Dodana je utilita dotnetup za instaliranje i ažuriranje SDK-a i runtime-a.
Izvor: opennet.ru
