Novinky v .NET 9
Seznamte se s novými funkcemi v .NET 9 a najděte odkazy na další dokumentaci.
.NET 9, následník .NET 8, má zvláštní zaměření na aplikace nativní pro cloud a výkon. Bude podporována po dobu 18 měsíců jako verze s krátkodobou podporou (STS). Můžete si stáhnout .NET 9 zde.
Novinka pro .NET 9, technický tým publikuje aktualizace .NET 9 Preview na diskuze Na GitHubu. Je to skvělé místo, kde můžete klást otázky a poskytovat zpětnou vazbu k vydání.
.NET runtime
Běhové prostředí .NET 9 obsahuje nový model atributů pro přepínače funkcí s podporou oříznutí. Nové atributy umožňují definovat přepínače funkcí , které knihovny můžou použít k přepínání oblastí funkcí.
Uvolňování paměti obsahuje funkci dynamického přizpůsobení velikosti aplikace, která se ve výchozím nastavení používá místo uvolňování paměti serveru.
Modul runtime obsahuje také řadu vylepšení výkonu, včetně optimalizací smyček, inlinování, vektorizace a generování kódu pro Arm64.
Další informace naleznete v tématu Co je nového v modulu runtime .NET 9.
Knihovny .NET
System.Text.Json přidává podporu pro poznámky o referenčních typech s možnou hodnotou null a export schémat JSON z typů. Přidá nové možnosti, které umožňují přizpůsobit odsazení zapsaného JSON a číst několik hodnot JSON na kořenové úrovni z jednoho datového proudu.
V LINQ nové metody CountBy a AggregateBy umožňují agregovat stav podle klíče, aniž by bylo nutné přidělovat přechodné seskupení prostřednictvím GroupBy.
U typů kolekcí typ System.Collections.Generic.PriorityQueue<TElement,TPriority> obsahuje novou metodu Remove(TElement, TElement, TPriority, IEqualityComparer<TElement>), kterou můžete použít k aktualizaci prioritu položky ve frontě.
Pro kryptografii zavádí .NET 9 novou jednorázovou metodu hash pro typ CryptographicOperations. Přidá také nové třídy, které používají algoritmus KMAC.
Pro reflexi, nový typ PersistedAssemblyBuilder umožňuje uložit generované sestavení. Tato nová třída také obsahuje podporu PDB, což znamená, že můžete generovat informace o symbolech a použít je k ladění generovaného sestavení.
Třída TimeSpan obsahuje nové metody From*
, které umožňují vytvořit objekt TimeSpan
z int
(místo double
). Tyto metody pomáhají vyhnout se chybám způsobeným nepřesnostmi ve výpočtech s plovoucí čárkou.
Další informace naleznete v tématu Novinky v knihovnách .NET 9.
.NET SDK
Sada .NET 9 SDK zavádí sady úloh , kde všechny úlohy zůstanou v jedné konkrétní verzi, dokud se explicitně neaktualizují. U nástrojů umožňuje nová možnost pro dotnet tool install
uživatelům (místo autorů nástrojů) rozhodnout, jestli se nástroj může spouštět v novější verzi modulu runtime .NET, než je verze, na které nástroj cílí. Navíc:
- Jednotkové testování má lepší integraci s MSBuild, která umožňuje paralelně spouštět testy.
- Ve výchozím nastavení se audity zabezpečení NuGet spouští na přímých i tranzitivních odkazech na balíčky.
- Protokolovací funkce terminálu je ve výchozím nastavení povolená a má také lepší použitelnost. Celkový počet selhání a upozornění se teď například shrnuje na konci sestavení.
- K dispozici jsou nové analyzátory skriptů MSBuild ("kontroly sestavení").
- Sada SDK dokáže rozpoznat a upravit neshody verzí mezi sadou .NET SDK a nástrojem MSBuild.
- Příkaz
dotnet workload history
ukazuje historii instalací a úprav úloh pro aktuální instalaci sady .NET SDK.
Další informace najdete v tématu Novinky v sadě SDK pro .NET 9.
Stavební bloky AI
.NET 9 zavádí jednotnou vrstvu abstrakcí jazyka C# prostřednictvím balíčků Microsoft.Extensions.AI a Microsoft.Extensions.VectorData. Tyto abstrakce usnadňují interakci se službami AI, včetně malých a velkých jazykových modelů (SLM a LLM), vkládání, vektorových úložišť a middlewaru.
.NET 9 také obsahuje nové typy tensorů, které rozšiřují možnosti umělé inteligence. TensorPrimitives a nový typ Tensor<T> rozšiřují možnosti umělé inteligence tím, že umožňují efektivní kódování, manipulaci a výpočty multidimenzionálních dat. Tyto typy najdete v nejnovější verzi balíčku System.Numerics.Tensors.
TensorPrimitives
- Rozsah rozšířené metody: Zvýšeno z 40 na téměř 200 přetížení, nyní včetně číselných operací podobných
Math
,MathF
aINumber<T>
, ale pro rozsahy hodnot. - Vylepšení výkonu: Mnoho operací je nyní optimalizováno pomocí SIMD pro lepší výkon.
- Obecná přetížení: Podporuje jakýkoli typ
T
, který implementuje určité rozhraní, a rozšiřuje se nad rámec jen rozpětí hodnot float v .NET.
Tensor<T>
- Vychází z
TensorPrimitives
pro efektivní matematické operace. - Poskytuje efektivní spolupráci s knihovnami AI (ML.NET, TorchSharp, ONNX Runtime) pomocí nulových kopií, pokud je to možné.
- Umožňuje snadnou a efektivní manipulaci s daty s operacemi indexování a řezů.
- Je experimentální v .NET 9.
ML.NET
ML.NET je opensourcová multiplatformní architektura, která umožňuje integraci vlastních modelů strojového učení do aplikací .NET.
ML.NET 4.0 přináší následující vylepšení:
- Nové způsoby programové konfigurace možností
MLContext
- Načtěte modely ONNX jako
Stream
. - Vylepšení datového rámce
- Nové možnosti pro tokenizátory .
- (Experimentální) Verze TorchSharp pro řady modelů Llama a Phi.
- (Experimentální) Rozhraní API pro potrubí CausalLM.
Další informace najdete v tématu Novinky v ML.NET.
Tokenizátory
Knihovna Microsoft.ML.Tokenizers poskytuje vývojářům .NET možnosti kódování a dekódování textu na tokeny. Pro scénáře AI je důležité při práci s místními modely spravovat kontext, vypočítat náklady a předzpracovat text.
Nejnovější vydaná verze přináší významné nové funkce pro tokenizátory:
- Tiktoken pro modely GPT (3, 3.5, 4, 4o, o1) a Llam3
- Llama (založené na SentencePiece) pro modely Llama a Mistral
- CodeGen pro modely generování kódu, jako je codegen-350M-mono
- Phi2 (na základě CodeGen) pro model Microsoft Phi2
- WordPiece
- Bert (založený na WordPiece) pro modely podporované Bertem, jako je optimum-all-MiniLM-L6-v2
.NET Aspire
.NET Aspire je sada výkonných nástrojů, šablon a balíčků pro vytváření pozorovatelných aplikací připravených pro produkční prostředí. Nejnovější vydaná verze .NET Aspire zahrnuje vylepšení správy životního cyklu řídicího panelu a prostředků. Přidává také nové integrace a rozhraní API pro větší flexibilitu během vývoje. .NET Aspire 9 funguje s aplikacemi .NET 9 i .NET 8. Další informace naleznete v tématu Novinky v rozhraní .NET Aspire 9.
ASP.NET Core
ASP.NET aplikace Core vytvořené pomocí .NET 9 jsou ve výchozím nastavení zabezpečené, rozšířily podporu pro předem připravenou kompilaci a zlepšily monitorování a trasování. Díky vylepšením výkonu uvidíte vyšší propustnost a rychlejší čas spuštění a to vše s menším využitím paměti. ASP.NET Core v .NET 9 zahrnuje:
- Optimalizované zpracování statických souborů, jako jsou JavaScript a CSS, během sestavování a publikování s automatizovaným vytvářením verzí s otisky.
- Blazor: Nové šablony hybridních a webových aplikací, detekce režimu vykreslování komponentů, nový zážitek z opětovného připojení s vykreslováním na serveru.
- Rozhraní API: Integrovaná podpora generování dokumentů OpenAPI pomocí
Microsoft.AspNetCore.OpenAPI
, vylepšená nativní podpora AOT. - Vylepšené zabezpečení pomocí nových rozhraní API pro ověřování a autorizaci
- Jednodušší nastavení důvěryhodného vývojového certifikátu v Linuxu pro povolení HTTPS během vývoje.
Jedná se pouze o některé funkce a vylepšení v .NET 9. Další informace najdete v tématu Novinky v ASP.NET Core 9.0.
.NET MAUI
Cílem víceplatformního uživatelského rozhraní aplikací .NET (.NET MAUI) v .NET 9 je lepší výkon a spolehlivost a hlubší integrace pro desktopové a mobilní aplikace. .NET MAUI obsahuje novou, výkonnější implementaci CollectionView a CarouselView pro iOS a Mac Catalyst, aktualizace stávajících ovládacích prvků, nové události životního cyklu aplikací a nativní vylepšení AOT a vylepšení oříznutí, aby se zlepšila velikost aplikace a čas spuštění. Navíc:
- Pro Windows je k dispozici nový ovládací prvek TitleBar plochy.
- Nový ovládací prvek HybridWebView umožňuje snadnější zahrnutí obsahu s podporou JavaScriptu z architektur, jako jsou ReactJS, Vue.jsa Angular.
- Entry teď podporuje další režimy klávesnice.
- Obslužné rutiny ovládacích prvků se automaticky odpojí od jejich ovládacích prvků, pokud je to možné.
- MainPage je nyní zastaralé; doporučuje se nastavení primární stránky aplikace pomocí přepsání třídy Application.CreateWindow(IActivationState).
Další informace o těchto nových funkcích a dalších funkcích najdete v tématu Novinky v rozhraní .NET MAUI pro .NET 9.
EF Core
Entity Framework Core zahrnuje významné aktualizace zprostředkovatele databáze pro Azure Cosmos DB zaměřené na podporu NoSQL. Obsahuje také několik kroků ke kompilaci AOT a předkompilovaným dotazům a další vylepšení. Další informace najdete v tématu Co je nového v EF Core 9.
C# 13
C# 13 se dodává se sadou .NET 9 SDK a obsahuje následující nové funkce:
- kolekce
params
- Nový typ
lock
a sémantika - Nová řídicí sekvence –
\e
- Vylepšení přirozeného typu skupiny metod
- Implicitní přístup indexeru v inicializátorech objektů
- Povolte místní
ref
a kontextyunsafe
v rámci iterátorů a asynchronních metod. - Povolení typů
ref struct
pro implementaci rozhraní - Povolit strukturované typy ref jako argumenty pro parametry typu v generických typech.
- Částečné vlastnosti a indexery jsou teď povolené v
partial
typech. - Priorita rozlišení přetížení umožňuje autorům knihoven určit jedno přetížení jako lepší než ostatní.
Kromě toho C# 13 přidává náhledovou funkci: podporované vlastnosti field
.
Další informace najdete v sekci Co je nového v jazyce C# 13.
F# 9
F# 9 se dodává se sadou .NET 9 SDK a obsahuje následující nové funkce:
- Odkazové typy s možnou hodnotou null
- Diskriminující sjednocení .Is* vlastnosti
- Částečné aktivní vzory mohou vrátit logickou hodnotu místo jednotkové volby.
- Při zadání argumentů upřednostněte metody rozšíření k vnitřním vlastnostem.
- Výpočetní výrazy s prázdným obsahem
- Direktivy hash mohou přijímat neřetězcové argumenty.
- Rozšířená direktiva #help v fsi pro zobrazení dokumentace ve smyčce REPL (read-eval-print)
- Povolit, aby #nowarn podporovalo předponu FS u kódů chyb a zakázalo upozornění.
- Upozornění na atribut TailCall u nerekurzivních funkcí nebo hodnot vázaných na let
- Vynucování atributových cílů
- Náhodné funkce pro kolekce
- Podpora kolekčních výrazů v C# pro seznamy a množiny v F#
- Různá vylepšení produktivity, výkonu a nástrojů pro vývojáře
Pro více informací se podívejte na Co je nového v F# 9.
Windows Presentation Foundation
WPF v .NET 9 přináší vylepšenou podporu pro vytváření moderních aplikací s několika vylepšeními motivů a dalšími funkcemi:
- Podpora motivu Fluent pro Windows
- Byla přidána podpora motivu pro světlé a tmavé režimy Windows.
- Motivy teď podporují barvu zvýraznění ve Windows.
- Vykreslování písma bylo vylepšeno tak, aby podporovalo ligatury založené na spojovníku.
-
BinaryFormatter
se už nepodporuje.
Další informace naleznete v tématu Co je nového ve WPF for .NET 9.
Windows Forms
WinForms v .NET 9 přináší podporu pro nové motivy, vylepšení pro asynchronní vývoj a další:
-
Form
aTaskDialog
teď podporujíShowDialogAsync
. (Experimentální funkce) -
BinaryFormatter
se už nepodporuje. - Experimentální podpora vykreslování aplikace v tmavém režimu, jak podporuje Windows.
-
FolderBrowserDialog
aToolStrip
měly menší vylepšení. - Knihovna System.Drawing má mnoho vylepšení, včetně integrace efektů GDI+, podpory
ReadOnlySpan
a lepších generování kódu pro interoperabilitu.
Další informace naleznete v tématu Co je nového ve Windows Forms for .NET 9.
Viz také
- Naše vize pro .NET 9 blogový příspěvek
- Co je nového v ASP.NET Core 9.0
- Novinky v .NET MAUI
- Novinky v EF Core