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
,MathF
iINumber<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.OpenAPI
oraz 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 kontekstyunsafe
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
iTaskDialog
obsługują terazShowDialogAsync
. (Funkcja eksperymentalna) -
BinaryFormatter
nie jest już obsługiwana. - Eksperymentalna obsługa renderowania aplikacji w trybie ciemnym, obsługiwana przez system Windows.
-
FolderBrowserDialog
iToolStrip
wprowadzono niewielkie ulepszenia. - Biblioteka System.Drawing została znacznie udoskonalona, w tym przez dodanie efektów GDI+, obsługę
ReadOnlySpan
i lepsze generowanie kodu międzyoperacyjnego.
Aby uzyskać więcej informacji, zobacz Co nowego w programie Windows Forms dla platformy .NET 9.