Microsoft opublikował otwartą platformę .NET 9.0

Firma Microsoft przedstawiła wydanie otwartej platformy .NET 9, stworzonej dzięki unifikacji produktów .NET Framework, .NET Core i Mono. Na podstawie .NET 9 można tworzyć aplikacje wieloplatformowe dla przeglądarek, systemów chmurowych, komputerów stacjonarnych, urządzeń IoT i platform mobilnych, korzystając z jednolitych bibliotek i wspólnego procesu kompilacji, niezależnie od typu aplikacji. Zbiory .NET SDK 9, .NET Runtime 9 i ASP.NET Core Runtime 9 są dostępne dla Linuxa, macOS i Windows. .NET Desktop Runtime 9 jest dostarczany tylko dla Windows. Powiązane z projektem zasoby są rozpowszechniane na licencji MIT.

W skład .NET wchodzi Runtime z kompilatorem JIT RyuJIT, specyfikacje API, biblioteki WPF, Windows Forms, WinUI oraz Entity Framework, interfejs wiersza poleceń dotnet, a także narzędzia do tworzenia mikroserwisów, bibliotek, aplikacji serwerowych, graficznych i konsolowych. Osobno dostarczany jest stos do tworzenia aplikacji webowych ASP.NET Core 9.0, ORM Entity Framework Core 9.0 (dostępne sterowniki, w tym dla SQLite i PostgreSQL), biblioteka WPF 9 (Windows Presentation Foundation), framework Windows Forms 9 do tworzenia GUI, platforma Aspire 9 do tworzenia aplikacji Cloud Native, framework MAUI 9 do tworzenia wieloplatformowych interfejsów użytkownika oraz wersje języków C# 13 i F# 9. Wsparcie dla .NET 9.0 i C# 13 jest zawarte w darmowym edytorze kodu Visual Studio Code.

Cechy nowego wydania:

  • Wprowadzono ponad tysiąc zmian związanych z optymalizacją wydajności i poprawą jakości generowanego kodu. Zmodernizowano zbieracz śmieci, w którym wprowadzono i aktywowano domyślnie mechanizm dynamicznej adaptacji do rozmiaru aplikacji (zbieracz śmieci jest dostosowywany nie do dostępnych zasobów systemowych, ale do tego, ile pamięci potrzebuje aplikacja). Nowy tryb pozwala zwiększyć efektywność pracy na systemach z dużą liczbą rdzeni procesora, jeśli aplikacja używa stosunkowo mało pamięci lub jeśli potrzeba pamięci znacznie się zmienia w trakcie działania.

    W JIT-kompilatorze dodano nowe optymalizacje oparte na profilowaniu (PGO), poprawiono obsługę pętli, rozwijanie inline oraz sprawdzanie granic. W runtime .NET rozszerzono wykorzystanie instrukcji wektorowych oraz dodano wsparcie dla rozszerzeń Arm64 SVE i Intel AVX10. Prędkość przetwarzania kodu wyjątków zwiększyła się o 50%. Dla kodu z operacjami rzutowania typów, takimi jak „(IFoo)myFoo” oraz „myFoo is IFoo”, zaobserwowano zwiększenie wydajności o 70%. Wydajność niektórych metod w języku zapytań LINQ (Language-Integrated Query), takich jak Take i DefaultIfEmpty, wzrosła do 10 razy przy pracy z pustymi tablicami i kolekcjami.

    Znacznie zwiększono wydajność i efektywność metody System.Text.Json. W metodzie JsonProperty.WriteTo wprowadzono możliwość bezpośredniego zapisu ciągów UTF8, eliminując zbędne przydzielanie pamięci. Zoptymalizowano operacje zmiany rozmiaru JsonObject. Podczas testów TechEmpower, oceniających wydajność kodu do przetwarzania zapytań JSON, w porównaniu z .NET 8 zaobserwowano 15% wzrost wydajności i 93% spadek zużycia pamięci.

  • W Runtime wprowadzono nowy model atrybutów do aktywacji i ograniczania funkcji w bibliotekach.
  • W języku C# 13 rozszerzono możliwości użycia modyfikatora „params”, w którym oprócz tablic dozwolone jest wskazywanie kolekcji. Przy inicjalizacji tablic w wartości indeksu dozwolone jest użycie operatora „^” do odliczania indeksu od końca tablicy (na przykład „buffer = { [^1] = 0, [^2] = 1,….}” zapisze 0 w ostatnim elemencie, a 1 w przedostatnim). W iteratorach i metodach async dozwolone jest użycie wyrażeń ref oraz unsafe. Dodano nową sekwencję ucieczki „\e”. Zezwolono na definiowanie interfejsów dla typów „ref struct” oraz użycie typów „ref struct” jako argumentów w funkcjach ogólnych. Wprowadzono nowy typ Lock do ustawiania blokad w aplikacjach wielowątkowych. Lock myLock = new(); void Concat<T>(params List<T> items) { lock (myLock) Console.WriteLine(string.Join(„\e[1mItem: \e[0m”, items)); }
  • W języku F# 9 wprowadzono wsparcie dla typów, które mogą przyjmować wartość null. W uniach zaimplementowano automatycznie generowane właściwości „.Is*” (na przykład person.contact.IsEmail), które można wykorzystać do sprawdzenia przynależności wartości do zbioru. Dodano wsparcie dla pustych wyrażeń obliczeniowych („let xs = seq { }”). W dyrektywach rozpoczynających się od znaku „#” dozwolone jest podawanie niełańcuchowych wartości (na przykład można napisać #nowarn 0070 zamiast #nowarn „0070”). Do modułów List, Array i Seq dodano funkcje do losowego wyboru lub tasowania elementów. Operacji na kolekcjach można teraz używać w przypadku list (list) i zbiorów (set).
  • Rozszerzono możliwości staku .NET Aspire, który oferuje zestaw komponentów do tworzenia aplikacji działających w środowiskach chmurowych. Dodano nowe funkcje zarządzania zasobami i cyklem życia aplikacji. Rozszerzono narzędzia do zbierania telemetrii.
  • Zaproponowano nowy zestaw abstrakcji C# do tworzenia aplikacji AI, używania dużych modeli językowych, uzyskiwania dostępu do zbiorów wektorowych i interakcji z usługami AI. Wprowadzono nowy typ „Tensor” oraz zbiór metod do obliczeń i manipulacji danymi wielowymiarowymi. Uzupełnienia dla AI są dostępne w postaci pakietów System.Numerics.Tensors, Microsoft.Extensions.AI oraz Microsoft.Extensions.VectorData. Zaktualizowano framework ML.NET, który służy do integracji modeli uczenia maszynowego w aplikacjach. Dodano bibliotekę Microsoft.ML.Tokenizers do kodowania i dekodowania tekstu do tokenów.
  • W staku do tworzenia aplikacji webowych ASP.NET Core rozszerzono wsparcie dla kompilacji wstępnej (ahead-of-time), zwiększono możliwości monitorowania i śledzenia, skrócono czas uruchamiania oraz zmniejszono zużycie pamięci. Optymalizowano pracę z plikami statycznymi. Dodano nowe API do uwierzytelniania i autoryzacji. W Blazor, platformie do tworzenia aplikacji webowych w języku C#, wprowadzono nowe szablony dla aplikacji hybrydowych i webowych.
  • Rozszerzono możliwości frameworka MAUI do tworzenia wieloplatformowych interfejsów użytkownika. Przeprowadzono optymalizację wydajności. Wzmocniono integrację z aplikacjami desktopowymi i mobilnymi. Dodano nowe elementy interfejsu TitleBar oraz HybridWebView.
  • W WPF (Windows Presentation Foundation) rozszerzono wsparcie dla motywów oraz dodano obsługę kolorów akcentowych.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster