Udostępnij za pośrednictwem


Co nowego na platformie .NET 9

Dowiedz się więcej o nowych funkcjach na platformie .NET 9 i znajdź linki do dalszej dokumentacji.

Platforma .NET 9, następca platformy .NET 8, koncentruje się na aplikacjach i wydajności natywnych dla chmury. Będzie ona obsługiwana przez 18 miesięcy jako wersja standardowego wsparcia technicznego (STS). Możesz pobrać .NET 9 tutaj.

Nowość w .NET 9: zespół inżynierów publikuje aktualizacje wersji zapoznawczej .NET 9 w Dyskusjach na GitHubie . To doskonałe miejsce do zadawania pytań i przekazywania opinii na temat wydania.

Środowisko uruchomieniowe platformy .NET

Środowisko uruchomieniowe platformy .NET 9 zawiera nowy model atrybutów dla przełączników funkcji z obsługą przycinania. Nowe atrybuty umożliwiają zdefiniowanie przełączników funkcji , których biblioteki mogą używać do przełączania obszarów funkcjonalności.

Zbieranie śmieci obejmuje funkcję dynamicznego dostosowania do rozmiaru aplikacji, która jest domyślnie używana zamiast Zbierania śmieci na serwerze.

Środowisko uruchomieniowe obejmuje również wiele ulepszeń wydajności, w tym optymalizacje pętli, inline'owanie, wektoryzację Arm64 i generowanie kodu.

Aby uzyskać więcej informacji, zobacz Co nowego w środowisku uruchomieniowym platformy .NET 9.

Biblioteki platformy .NET

System.Text.Json dodaje obsługę adnotacji typu odwołania dopuszczającego wartość null i eksportowania schematów JSON z typów. Dodaje nowe opcje, które umożliwiają dostosowanie wcięcia zapisanych danych JSON i odczytywanie wielu wartości JSON na poziomie głównym z pojedynczego strumienia.

W LINQ nowe metody CountBy i AggregateBy umożliwiają agregowanie stanu według klucza bez konieczności przydzielania grup pośrednich za pośrednictwem GroupBy.

W przypadku typów kolekcji typ System.Collections.Generic.PriorityQueue<TElement,TPriority> zawiera nową metodę Remove(TElement, TElement, TPriority, IEqualityComparer<TElement>), której można użyć do aktualizacji priorytetu elementu w kolejce.

W przypadku kryptografii platforma .NET 9 dodaje nową metodę skrótu jednorazowego na typie CryptographicOperations. Dodaje również nowe klasy korzystające z algorytmu KMAC.

W przypadku odbicia nowy typ PersistedAssemblyBuilder umożliwia zapisywanie emitowanego zestawu. Ta nowa klasa zawiera również obsługę pdB, co oznacza, że można emitować informacje o symbolach i używać ich do debugowania wygenerowanego zestawu.

Klasa TimeSpan zawiera nowe metody From*, które umożliwiają utworzenie obiektu TimeSpan na podstawie int (zamiast double). Metody te pomagają uniknąć błędów spowodowanych przez nieodłączną niedokładność w obliczeniach zmiennoprzecinkowych.

Aby uzyskać więcej informacji, zobacz Co nowego w bibliotekach platformy .NET 9.

Pakiet SDK dla platformy .NET

Zestaw SDK platformy .NET 9 wprowadza zestawy obciążeń , gdzie wszystkie obciążenia pozostają w jednej, określonej wersji do momentu jawnej aktualizacji. W przypadku narzędzi nowa opcja dla dotnet tool install umożliwia użytkownikom (zamiast autorom narzędzi) podjęcie decyzji, czy narzędzie może działać w nowszej wersji środowiska uruchomieniowego platformy .NET niż wersja docelowa narzędzia. W dodatku:

  • Testowanie jednostkowe ma lepszą integrację z programem MSBuild, która umożliwia równoległe uruchamianie testów.
  • Audyty zabezpieczeń narzędzia NuGet uruchamiane są zarówno w odwołaniach do pakietów bezpośrednich, jak i przechodnich.
  • Rejestrator terminalu jest domyślnie włączony, a także ma lepszą użyteczność. Na przykład łączna liczba błędów i ostrzeżeń jest teraz podsumowana na końcu kompilacji.
  • Dostępne są nowe analizatory skryptów MSBuild ("kontrole kompilacji").
  • Zestaw SDK może wykrywać i dostosowywać niezgodność wersji między zestawem SDK platformy .NET i programem MSBuild.
  • Polecenie dotnet workload history pokazuje historię instalacji obciążeń i modyfikacji bieżącej instalacji zestawu .NET SDK.

Aby uzyskać więcej informacji, zobacz Co nowego w zestawie SDK dla platformy .NET 9.

Bloki konstrukcyjne sztucznej inteligencji

Platforma .NET 9 wprowadza ujednoliconą warstwę abstrakcji języka C# za pośrednictwem pakietów Microsoft.Extensions.AI i Microsoft.Extensions.VectorData. Te abstrakcje ułatwiają interakcję z usługami sztucznej inteligencji, w tym małymi i dużymi modelami językowymi (SLM i LLM), osadzaniem, magazynami wektorów i oprogramowaniem pośredniczącym.

Platforma .NET 9 zawiera również nowe typy tensorów, które rozszerzają możliwości sztucznej inteligencji. TensorPrimitives i nowy typ Tensor<T> rozszerzają możliwości sztucznej inteligencji, umożliwiając wydajne kodowanie, manipulowanie i obliczanie danych wielowymiarowych. Te typy można znaleźć w najnowszej wersji pakietu System.Numerics.Tensors.

TensorPrimitives

  • Rozszerzony zakres metody: zwiększono z 40 do prawie 200 przeciążeń, w tym operacje liczbowe podobne do Math, MathFi INumber<T>, ale dla zakresów wartości.
  • Ulepszenia wydajności: wiele operacji jest teraz zoptymalizowanych przy użyciu technologii SIMD dla lepszej efektywności.
  • Przeciążenia generyczne: obsługuje dowolny typ T, który implementuje określony interfejs, rozszerzając funkcjonalność poza same ciągi wartości zmiennoprzecinkowych w platformie .NET.

Tensor<T>

  • Opiera się na TensorPrimitives dla wydajnych operacji matematycznych.
  • Zapewnia wydajne współdziałanie z bibliotekami sztucznej inteligencji (ML.NET, TorchSharp, ONNX Runtime) przy użyciu zerowych kopii tam, gdzie to możliwe.
  • Umożliwia łatwe i wydajne manipulowanie danymi za pomocą operacji indeksowania i fragmentowania.
  • jest eksperymentalny na platformie .NET 9.

ML.NET

ML.NET to międzyplatformowa platforma typu open source, która umożliwia integrację niestandardowych modeli uczenia maszynowego z aplikacjami platformy .NET.

ML.NET 4.0 oferuje następujące ulepszenia:

  • Nowe sposoby programowego konfigurowania opcji MLContext.
  • Załaduj modele ONNX jako Stream.
  • Ulepszenia DataFrame.
  • Nowe możliwości tokenizatorów .
  • (Eksperymentalne) Wersje TorchSharp modeli z rodzin Llama i Phi.
  • (Eksperymentalne) interfejsy API rurociągu CausalLM.

Aby uzyskać więcej informacji, zobacz Co nowego w programie ML.NET.

Tokenizatory

Biblioteka Microsoft.ML.Tokenizers udostępnia deweloperom platformy .NET możliwości kodowania i dekodowania tekstu do tokenów. W przypadku scenariuszy sztucznej inteligencji ważne jest zarządzanie kontekstem, obliczaniem kosztów i przetwarzaniem wstępnie tekstu podczas pracy z modelami lokalnymi.

W najnowszej wersji wprowadzono znaczące nowe możliwości dla tokenizatorów:

  • Tiktoken dla modeli GPT (3, 3,5, 4, 4o, o1) i Llam3
  • Llama (oparta na modelu SentencePiece) dla modeli Llama i Mistral
  • CodeGen dla modeli generowania kodu, takich jak codegen-350M-mono
  • Phi2 (w oparciu o CodeGen) dla modelu Microsoft Phi2
  • WordPiece
  • Bert (oparty na WordPiece) dla modeli obsługujących Bert, takich jak optimum-all-MiniLM-L6-v2

.NET Aspire

.NET Aspire to zestaw zaawansowanych narzędzi, szablonów i pakietów do tworzenia obserwowalnych, gotowych do produkcji aplikacji. Najnowsza wersja platformy .NET Aspire zawiera ulepszenia zarządzania pulpitem nawigacyjnym i cyklem życia zasobów. Dodaje również nowe integracje i interfejsy API, aby uzyskać większą elastyczność podczas opracowywania. Platforma .NET Aspire 9 współpracuje zarówno z aplikacjami .NET 9, jak i .NET 8. Aby uzyskać więcej informacji, zobacz Co nowego w programie .NET Aspire 9.

ASP.NET Core

aplikacje ASP.NET Core utworzone za pomocą platformy .NET 9 są domyślnie bezpieczne, mają rozszerzoną obsługę kompilacji przed upływem czasu i ulepszono monitorowanie i śledzenie. Dzięki ulepszeniom wydajności zobaczysz większą przepływność i krótszy czas uruchamiania, a wszystko to przy mniejszym użyciu pamięci. ASP.NET Core na platformie .NET 9 obejmuje:

  • Zoptymalizowana obsługa plików statycznych, takich jak JavaScript i CSS, podczas kompilacji i publikowania z automatycznym wersjonowaniem poprzez dodawanie odcisków palców.
  • Blazor: nowe szablony aplikacji hybrydowych i internetowych, wykrywanie trybu renderowania składników, nowe doświadczenie ponownego łączenia z renderingiem serwera.
  • Interfejsy API: wbudowana obsługa generowania dokumentów OpenAPI przy użyciu Microsoft.AspNetCore.OpenAPIoraz ulepszona natywna obsługa AOT.
  • Ulepszone zabezpieczenia dzięki nowym interfejsom API na potrzeby uwierzytelniania i autoryzacji.
  • Łatwiejsza konfiguracja zaufanego certyfikatu programistycznego w systemie Linux w celu włączenia protokołu HTTPS podczas programowania.

Są to tylko niektóre funkcje i ulepszenia platformy .NET 9. Aby uzyskać więcej informacji, zobacz Co nowego w programie ASP.NET Core 9.0.

.NET MAUI

Celem interfejsu użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI) na platformie .NET 9 jest zwiększenie wydajności i niezawodności oraz dokładniejsze integracje aplikacji klasycznych i mobilnych. Program .NET MAUI zawiera nową, wydajniejszą implementację CollectionView i CarouselView dla systemów iOS i Mac Catalyst, aktualizacje istniejących kontrolek, nowe zdarzenia cyklu życia aplikacji oraz ulepszenia natywnego AOT i przycinania w celu zmniejszenia rozmiaru aplikacji i poprawy czasu uruchamiania. W dodatku:

  • Dla systemu Windows jest dostępna nowa kontrolka pulpitu TitleBar.
  • Nowa kontrolka HybridWebView umożliwia łatwiejsze włączenie zawartości z obsługą języka JavaScript z platform, takich jak ReactJS, Vue.jsi Angular.
  • Entry obsługuje teraz dodatkowe tryby klawiatury.
  • Programy obsługi sterowania automatycznie odłączają się od swoich kontrolek, gdy jest to możliwe.
  • Wykorzystanie MainPage jest odradzane na rzecz ustawienia strony domyślnej aplikacji poprzez nadpisanie klasy Application.CreateWindow(IActivationState).

Aby uzyskać więcej informacji na temat tych nowych funkcji i nie tylko, zobacz Co nowego w programie .NET MAUI dla platformy .NET 9.

EF Core

Program Entity Framework Core zawiera znaczące ulepszenia dostawcy bazy danych obsługującego usługę Azure Cosmos DB for NoSQL. Zawiera również kilka kroków w kierunku kompilacji AOT i wstępnie skompilowanych zapytań, wśród innych ulepszeń. Aby uzyskać więcej informacji, zobacz Co nowego w programie EF Core 9.

C# 13

Język C# 13 jest dostarczany z zestawem .NET 9 SDK i zawiera następujące nowe funkcje:

  • kolekcje params
  • Nowy typ i semantyka lock
  • Nowa sekwencja ucieczki — \e
  • Ulepszenia naturalnego typu grupy metod
  • Niejawny dostęp indeksatora w inicjatorach obiektów
  • Włącz ustawienia lokalne ref i konteksty unsafe w iteratorach i metodach asynchronicznych
  • Włącz typy ref struct do implementowania interfejsów
  • Zezwalaj na typy struktur ref jako argumenty dla parametrów typu w typach ogólnych.
  • Właściwości częściowe i indeksatory są teraz dozwolone w typach partial.
  • Priorytet rozpoznawania przeciążenia umożliwia autorom bibliotek wyznaczenie jednego przeciążenia jako lepszego niż inne.

Ponadto w języku C# 13 dodano funkcję w wersji zapoznawczej: właściwości z zapleczem field.

Aby uzyskać więcej informacji, zobacz Co nowego w języku C# 13.

F# 9

Język F# 9 jest dostarczany z zestawem .NET 9 SDK i zawiera następujące nowe funkcje:

  • Typy referencyjne dopuszczające wartości null
  • Unia dyskryminowana. Właściwości .Is*
  • Częściowe aktywne wzorce mogą zwracać boolean zamiast opcjonalnej jednostki.
  • Preferuj metody rozszerzenia do właściwości wewnętrznych, gdy podano argumenty
  • Puste wyrażenia obliczeniowe
  • Dyrektywy hasz mogą przyjmować argumenty, które nie są ciągami znaków
  • Rozszerzona dyrektywa #help w programie FSI, aby pokazać dokumentację w pętli odczytu-ewaluacji-druku (REPL)
  • Pozwól, aby #nowarn obsługiwał prefiks FS dla kodów błędów, aby wyłączyć ostrzeżenia.
  • Ostrzeżenie o atrybucie TailCall w funkcjach niecyklicznych lub wartościach let-bound
  • Wymuszanie ukierunkowań atrybutów
  • Funkcje losowe dla kolekcji
  • Obsługa wyrażeń kolekcji języka C# dla list i zestawów języka F#
  • Różne ulepszenia produktywności, wydajności i narzędzi dla programistów

Więcej informacji znajdziesz w sekcji Co nowego w języku F# 9.

Windows Presentation Foundation

Platforma WPF na platformie .NET 9 zapewnia rozszerzoną obsługę tworzenia nowoczesnych aplikacji z kilkoma ulepszeniami motywów i nie tylko:

  • Obsługa motywu Windows Fluent.
  • Dodano obsługę motywów dla trybów jasnych i ciemnych systemu Windows.
  • Motywy obsługują teraz kolor akcentu systemu Windows.
  • Ulepszono renderowanie czcionek w celu obsługi ligatur opartych na łącznikach.
  • BinaryFormatter nie jest już obsługiwana.

Aby uzyskać więcej informacji, zobacz Co nowego w WPF dla .NET 9.

Formularze systemu Windows

Narzędzia WinForms na platformie .NET 9 obsługują nowe motywy, ulepszenia programowania asynchronicznego i nie tylko:

  • Form i TaskDialog obsługują teraz ShowDialogAsync. (Funkcja eksperymentalna)
  • BinaryFormatter nie jest już obsługiwana.
  • Eksperymentalna obsługa renderowania aplikacji w trybie ciemnym, obsługiwana przez system Windows.
  • FolderBrowserDialog i ToolStrip wprowadzono niewielkie ulepszenia.
  • Biblioteka System.Drawing została znacznie udoskonalona, w tym przez dodanie efektów GDI+, obsługę ReadOnlySpani lepsze generowanie kodu międzyoperacyjnego.

Aby uzyskać więcej informacji, zobacz Co nowego w programie Windows Forms dla platformy .NET 9.

Zobacz też