Microsoft opublikował otwartą platformę .NET 11

Firma Microsoft zaprezentowała wydanie otwartej platformy .NET 11, stworzonej dzięki unifikacji produktów .NET Framework, .NET Core i Mono. Na bazie .NET 11 można tworzyć aplikacje wieloplatformowe dla przeglądarek, systemów chmurowych, komputerów stacjonarnych, urządzeń IoT oraz platform mobilnych, wykorzystując jedne biblioteki i wspólny proces kompilacji, niezależny od typu aplikacji. Zestawy .NET SDK 11, .NET Runtime 11 i ASP.NET Core Runtime 11 są dostępne dla systemów Linux, macOS i Windows. .NET Desktop Runtime 11 jest dostarczany tylko dla Windows. Związane z projektem zasoby są udostępniane na licencji MIT.

W skład .NET wchodzi Runtime z kompilatorem JIT RyuJIT, specyfikacje API, biblioteki WPF, Windows Forms, WinUI oraz Entity Framework, a także interfejs wiersza poleceń dotnet, oraz narzędzia do rozwijania mikroserwisów, bibliotek, aplikacji serwerowych, graficznych i konsolowych. Oddzielnie dostarczany jest stos do rozwoju aplikacji webowych ASP.NET Core 11.0, warstwa ORM Entity Framework Core 11.0 (z driverami, w tym dla SQLite i PostgreSQL), biblioteka WPF 11 (Windows Presentation Foundation), framework Windows Forms 11 do tworzenia GUI, platforma Aspire 11 do tworzenia aplikacji Cloud Native, framework MAUI 11 do rozwoju wieloplatformowych interfejsów użytkownika oraz wersje języków C# 15 i F# 11. Wsparcie dla .NET 11.0 i C# 15 jest zawarte w darmowym edytorze kodu Visual Studio Code.
W języku C# 15 dodano słowo kluczowe union do deklaracji typu, który może mieć tylko jedną z z góry określonych wartości. Zmiennym typu union można przypisywać wartości dowolnego z dozwolonych typów, a przy próbie przypisania wartości typu, który nie został wskazany przy deklaracji, kompilator zgłosi błąd.

Cechy nowego wydania:

  • public record class Cat(string Name);

    public record class Dog(string Name);
    public record class Bird(string Name);
    public union Pet(Cat, Dog, Bird);

    Dla klas wprowadzono modyfikator „closed”, który pozwala na tworzenie zamkniętych hierarchii (closed hierarchy), w których dziedziczenie z klas bazowych z modyfikatorem closed jest dozwolone tylko wewnątrz tego samego zestawu, gdzie został on zadeklarowany, a na etapie kompilacji znany jest pełny zestaw bezpośrednich potomków. Typy union i zamknięte hierarchie gwarantują, że w konstrukcji switch uwzględnione są wszystkie możliwe warianty, co pozwala na pominięcie gałęzi „default” oraz zmiennej „_”.

    Для классов предложен модификатор «closed», при помощи которого можно создавать закрытые иерархии (closed hierarchy), в которых наследование от базового класса с модификатором closed допускается только внутри той сборки, где он объявлен и на этапе компиляции известен полный набор прямых потомков. Union-типы и закрытые иерархии гарантируют, что в конструкции switch обработаны все возможные варианты, что позволяет обойтись без ветки «default» и переменной «_».

    W nowej wersji C# dodano wsparcie dla przejść z konstrukcji „break” i „continue” do etykiet oraz rozszerzono eksperymentalne możliwości izolacji w blokach unsafe, które bezpośrednio operują na pamięci (dodano możliwość stosowania unsafe dla poszczególnych wyrażeń).

  • W języku F# 11 zredukowano zużycie pamięci przez kompilator oraz zmniejszono liczbę operacji przydzielania pamięci przy pracy z kolekcjami FSharp.Core. Dodano możliwość ograniczenia równolegle wykonywanych asynchronicznych zadań, aby zapobiec przeciążeniom. Dodano wstępne wsparcie dla Runtime Async.
  • SDK zawiera domyślnie serwer MSBuild oraz prekompilowaną (NativeAOT) wersję narzędzi CLI dotnet.
    Zmniejszono rozmiar instalatorów SDK dla systemów Linux i macOS z powodu deduplikacji zbiorów.
  • Zoptymalizowano kompilator JIT, usunięto zbędne kontrole granic i gałęzi, poprawiono devirtualizację oraz rozszerzono scalanie operacji w stałe. W kompilatorze AOT wykorzystano wspólny mechanizm wywołań, co pozwoliło na zmniejszenie objętości kodu i zwiększenie przepustowości przy intensywnym dostępie do interfejsów. Dla systemów Linux i macOS wprowadzono zachowanie trasowania stosu i informacji o modułach przy awariach.
  • Dodano eksperymentalny mechanizm Runtime Async do zamiany generowanego przez kompilator kodu obsługi operacji asynchronicznych na realizację zarządzającą wstrzymywaniem i wznawianiem asynchronicznych operacji na poziomie runtime.
  • W SDK dodano szablon serwery MCP do integracji z narzędziami i usługami AI. Dla aplikacji korzystających z usług AI dodano zbiór abstrakcji Microsoft.Extensions.AI (MEAI). Na podstawie tych abstrakcji stworzono
    Microsoft Agent Framework (MAF), który można wykorzystać do tworzenia agentów AI.
  • W API Process rozszerzono możliwości uruchamiania procesów z przechwytywaniem ich wyjścia i kodów zakończenia, a także kontrolą nad dziedziczonymi deskryptorami.
  • W API System.IO.Compression dodano wsparcie dla algorytmu kompresji Zstandard.
  • Dodano nowe adaptery strumieni ReadOnlyMemoryStream, WritableMemoryStream, ReadOnlySequenceStream i StringStream.
  • Dodano narzędzie dotnetup do instalacji i aktualizacji SDK oraz runtime.

Źródło: opennet.ru

Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS - ProHoster