.NET 7 je následník .NET 6 a zaměřuje se na jednotnou, moderní, jednoduchou a rychlou. .NET 7 se bude podporovat po dobu 18 měsíců jako verze standardní podpory (STS) (dříve označovaná jako aktuální verze).
Tento článek uvádí nové funkce rozhraní .NET 7 a obsahuje odkazy na podrobnější informace o jednotlivých funkcích.
Výkon je klíčovým cílem rozhraní .NET 7 a všechny jeho funkce jsou navržené s ohledem na výkon. Kromě toho .NET 7 zahrnuje následující vylepšení zaměřená čistě na výkon:
Náhrada na zásobníku (OSR) je doplněk vrstvené kompilace. Umožňuje modulu runtime změnit kód spuštěný aktuálně spuštěnou metodou uprostřed jejího spuštění (to znamená, že je "na zásobníku"). Dlouhotrvající metody se můžou přepnout na optimalizovanější verze uprostřed spouštění.
Optimalizace s asistencí profilu (PGO) teď funguje s OSR a je jednodušší ji povolit (přidáním <TieredPGO>true</TieredPGO> do souboru projektu). PGO může také instrumentovat a optimalizovat další věci, jako jsou delegáti.
Vylepšené generování kódu pro Arm64
Nativní AOT vytvoří samostatný spustitelný soubor ve formátu souboru cílové platformy bez externích závislostí. Je zcela nativní bez IL nebo JIT a poskytuje rychlý čas spuštění a malé samostatné nasazení. Nativní AOT se v .NET 7 zaměřuje na konzolové aplikace a vyžaduje oříznutí aplikací.
Vylepšení výkonu mono modulu runtime, který využívá aplikace Blazor WebAssembly, Android a iOS.
Podrobný pohled na řadu funkcí zaměřených na výkon, díky kterým je .NET 7 tak rychlý, najdete v blogovém příspěvku .NET 7 vylepšení výkonu.
Serializace System.Text.Json
.NET 7 zahrnuje vylepšení serializace System.Text.Json v následujících oblastech:
Přizpůsobení kontraktu vám dává větší kontrolu nad tím, jak se typy serializují a deserializují. Další informace najdete v tématu Přizpůsobení kontraktu JSON.
.NET 7 a C# 11 zahrnují inovace, které umožňují provádět matematické operace obecně – to znamená, že nemusíte znát přesný typ, se kterým pracujete. Pokud byste například chtěli napsat metodu, která sečte dvě čísla, museli jste dříve přidat přetížení metody pro každý typ. Teď můžete napsat jednu obecnou metodu, kde je parametr typu omezený na typ podobný číslu. Další informace najdete v obecném matematickém článku a v blogovém příspěvku Obecné matematiky .
Nová možnost RegexOptions.NonBacktracking umožňuje porovnávání pomocí přístupu, který zabraňuje zpětnému navracení a zaručuje zpracování lineárního času v délce vstupu. Modul bez zpětného navracení se nedá použít ve vyhledávání zprava doleva a má několik dalších omezení, ale je rychlý pro všechny regulární výrazy a vstupy. Další informace naleznete v tématu Režim zpětného navracení.
Generátory zdrojů regulárních výrazů jsou nové. Generátory zdrojů vytvářejí modul, který je optimalizovaný pro váš vzor v době kompilace, a poskytuje tak výhody výkonu propustnosti. Zdroj, který se vygeneruje, je součástí projektu, takže ho můžete zobrazit a ladit. Kromě toho vás nová diagnostická SYSLIB1045 výstraha generátoru zdrojů upozorní na místa, která můžete použít Regex , která by se dala převést na generátor zdroje. Další informace najdete v tématu Generátory zdrojů regulárních výrazů .NET.
Pro vyhledávání bez rozlišování malých a velkých písmen zahrnuje .NET 7 velké zvýšení výkonu. Zisky se dají dosáhnout, protože určení RegexOptions.IgnoreCase už nebude volat ToLower každý znak ve vzoru a na každém znaku ve vstupu. Místo toho se při vytváření provádí Regex veškerá práce související s velikostí.
Regex nyní podporuje rozsahy pro některá rozhraní API. V rámci této podpory byly přidány následující nové metody:
Další informace o těchto a dalších vylepšeních najdete v blogovém příspěvku .NET 7 o vylepšení regulárních výrazů.
Knihovny .NET
V rozhraních API knihovny .NET bylo provedeno mnoho vylepšení. Některé jsou uvedeny v jiných vyhrazených částech tohoto článku. Některé další jsou shrnuté v následující tabulce.
Tato rozhraní API znamenají, že už nemusíte provádět výpočty s hodnotou "tick" k určení mikrosekundových a nanosekundových hodnot. Další informace najdete v blogovém příspěvku .NET 7 Preview 4 .
Rozhraní API pro čtení, zápis, archivaci a extrahování archivů Tar
Stream.Read může vrátit méně dat, než je v datovém proudu k dispozici. Nové ReadExactly metody čtou přesně požadovaný počet bajtů a nové ReadAtLeast metody čtou alespoň požadovaný počet bajtů. Další informace najdete v blogovém příspěvku .NET 7 Preview 5 .
Nové převaděče typů pro DateOnly, TimeOnly, Int128, UInt128, a Half
Převaděče typů se často používají k převodu hodnotových typů na řetězec a z řetězce. Tato nová rozhraní API přidávají převaděče typů pro typy, které byly přidány v poslední době.
GetCurrentStatistics() umožňuje používat čítače událostí nebo rozhraní API metrik ke sledování statistik pro jednu nebo více mezipamětí paměti. Další informace najdete v blogovém příspěvku .NET 7 Preview 4 .
Rozhraní API pro získání a nastavení oprávnění k souborům unix
.NET 7 vylepšuje pozorovatelnost. Pozorovatelnost vám pomůže pochopit stav vaší aplikace, jak se škáluje, a jak se zvyšuje technická složitost. . Implementace pozorovatelnosti technologie NET je primárně postavená na OpenTelemetry. Mezi vylepšení patří:
Nová Activity.CurrentChanged událost, kterou můžete použít ke zjištění, kdy se kontext rozsahu spravovaného vlákna změní.
Sada .NET 7 SDK vylepšuje prostředí šablon rozhraní příkazového řádku. Umožňuje také publikování do kontejnerů a centrální správu balíčků pomocí NuGetu.
Šablony
U příkazu a vytváření šablon došlo k dotnet new některým uvítacím vylepšením.
dotnet new
Příkaz dotnet new rozhraní příkazového řádku, který vytvoří nový projekt, konfigurační soubor nebo řešení založené na šabloně, teď podporuje dokončování tabulátoru pro zkoumání:
Dostupné názvy šablon
Možnosti šablony
Povolené hodnoty možností
Kromě toho, pro lepší shodu, install, , uninstallsearch, lista update dílčí příkazy již nemají předponu--.
Vytváření obsahu
Omezení šablon, nový koncept pro .NET 7, vám umožní definovat kontext, ve kterém jsou šablony povolené. Omezení pomáhají modulu šablon určit, které šablony by se měly zobrazovat v příkazech, jako je dotnet new list. Šablonu můžete omezit na operační systém, hostitele modulu šablon (například dialogové okno .NET CLI nebo Nový projekt v sadě Visual Studio) a nainstalovanou úlohu. Omezení definujete v konfiguračním souboru šablony.
V konfiguračním souboru šablony teď můžete přidat poznámky k parametru šablony, protože umožňuje více hodnot. Šablona například web umožňuje více forem ověřování.
Teď můžete spravovat běžné závislosti ve svých projektech z jednoho umístění pomocí funkce centrální správy balíčků NuGet (CPM). Pokud ho chcete povolit, přidejte do kořenového adresáře úložiště soubor Directory.Packages.props . V tomto souboru nastavte vlastnost ManagePackageVersionsCentrally MSBuild na true a přidejte verze pro běžnou závislost balíčku pomocí PackageVersion položek. V jednotlivých souborech projektu pak můžete vynechat Version atributy ze všech položek PackageReference , které odkazují na centrálně spravované balíčky.
Další informace najdete v tématu Správa centrálních balíčků.
Generování zdroje volání nespravovaného kódu
.NET 7 zavádí zdrojový generátor pro volání platformy (volání nespravovaného kódu) v jazyce C#. Generátor zdroje hledá LibraryImportAttribute , staticpartial metody pro aktivaci generování zdroje kompilace čas seřaďovací kód. Generováním zařazování kódu v době kompilace není nutné vygenerovat žádný zástupný kód IL za běhu, stejně jako při použití DllImportAttribute. Generátor zdrojů zlepšuje výkon aplikace a také umožňuje, aby aplikace byla předem zkompilována (AOT). Další informace najdete v tématu Generování zdroje pro vyvolání platformy a použití vlastních zařazovačů ve zdrojově generovaných voláních P/Invokes.
Související verze
Tato část obsahuje informace o souvisejících produktech, které mají verze, které se shodují s verzí .NET 7.
C# 11 obsahuje podporu obecných matematických, nezpracovaných řetězcových literálů, typů oborů souborů a dalších nových funkcí. Další informace najdete v tématu Co je nového v jazyce C# 11.
F# 7
F# 7 pokračuje v cestě k jednoduššímu jazyku a zlepšení výkonu a spolupráce s novými funkcemi jazyka C#. Další informace naleznete v tématu Oznámení F# 7.
.NET MAUI
.NET Multi-platform App UI (.NET MAUI) je multiplatformní rozhraní pro vytváření nativních mobilních a desktopových aplikací pomocí C# a XAML. Sjednocuje rozhraní API pro Android, iOS, macOS a Windows do jednoho rozhraní API. Informace o nejnovějších aktualizacích najdete v tématu Co je nového v .NET MAUI pro .NET 7.
ASP.NET Core
ASP.NET Core 7.0 zahrnuje middleware omezování rychlosti, vylepšení minimálních rozhraní API a transkódování json gRPC. Informace o všech aktualizacích najdete v tématu Co je nového v ASP.NET Core 7.
EF Core
Entity Framework Core 7.0 zahrnuje podporu sloupců JSON nezávislou na poskytovateli, vylepšený výkon pro ukládání změn a vlastní šablony zpětné analýzy. Informace o všech aktualizacích najdete v tématu Co je nového v EF Core 7.0.
Windows Forms
Mnoho práce přešlo do model Windows Forms pro .NET 7. Vylepšení byla provedena v následujících oblastech:
WPF v .NET 7 obsahuje řadu oprav chyb a vylepšení výkonu a přístupnosti. Další informace najdete v blogovém příspěvku o novinkách WPF v .NET 7 .
Orleans
Orleans je multiplatformní architektura pro vytváření robustních a škálovatelných distribuovaných aplikací. Informace o nejnovějších aktualizacích Orleansnaleznete v tématu Migrace z Orleans verze 3.x na verzi 7.0.
Zdroj tohoto obsahu najdete na GitHubu, kde můžete také vytvářet a kontrolovat problémy a žádosti o přijetí změn. Další informace najdete v našem průvodci pro přispěvatele.
Zpětná vazba k produktu .NET
.NET je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: