Sdílet prostřednictvím


Zásadní změny v .NET 7

Pokud migrujete aplikaci na .NET 7, můžou vás tyto zásadní změny ovlivnit. Změny jsou seskupené podle oblasti technologií, jako je ASP.NET Core nebo model Windows Forms.

Tento článek označuje, jestli je každá změna způsobující chybu binární kompatibilní nebo zdroj kompatibilní:

  • Binární kompatibilní – Existující binární binární soubory se načtou a úspěšně se spustí bez rekompilace a chování za běhu se nezmění.
  • Kompatibilní se zdrojem – Zdrojový kód se úspěšně zkompiluje beze změn při cílení na nový modul runtime nebo pomocí nové sady SDK nebo komponenty.

ASP.NET Core

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Akce kontroleru rozhraní API se pokoušejí odvodit parametry z DI ✔️
Priorita proměnné prostředí s předponou ASPNET ✔️ ✔️
AuthenticateAsync pro zprostředkovatele vzdáleného ověřování ✔️
Ověřování v aplikacích WebAssembly ✔️
Výchozí schéma ověřování ✔️
ID událostí některých zpráv protokolu Microsoft.AspNetCore.Mvc.Core se změnily. ✔️
Koncové body záložního souboru ✔️
IHubClients a IHubCallerClients skryjí členy ✔️
Kestrel: Výchozí odebraná vazba HTTPS ✔️
Microsoft.AspNetCore.Server.Kestrel. Transport.Libuv a libuv.dll odebrány
Microsoft.Data.SqlClient byl aktualizován na verzi 4.0.1. ✔️
Middleware se už nepředá do koncového bodu s delegátem požadavku null. ✔️
Detekce prázdného těla v vazbě modelu MVC se změnila. ✔️
Změny rozhraní API pro ukládání výstupu do mezipaměti
Metody služby SignalR Hub se snaží přeložit parametry z DI ✔️

Knihovny Core .NET

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Obsoletions rozhraní API s výchozím ID diagnostiky ✔️
Obsoletions rozhraní API s ne defaultním diagnostickým ID ✔️
Rozhraní API serializace BinaryFormatter vytvářejí chyby kompilátoru ✔️
BrotliStream už neumožňuje nedefinované hodnoty CompressionLevel. ✔️
Projekty C++/CLI v sadě Visual Studio ✔️
Změny v reflexi vyvolání výjimek rozhraní API ✔️
Collectible Assembly in non-collectible AssemblyLoadContext ✔️
Změna přesnosti metod sčítání data a času ✔️ ✔️
Změna chování metody Equals pro NaN ✔️
Chování zpětného volání EventSource ✔️ ✔️
Omezení obecného typu u PatternContext<T>
Starší strategie FileStream byla odebrána. ✔️
Podpora knihoven pro starší architektury
Maximální přesnost pro řetězce číselného formátu ✔️
Vzory regulárních výrazů s opravenými rozsahy ✔️ ✔️
SerializationFormat.Binary je zastaralé
Odebraný přepínač konfigurace System.Drawing.Common ✔️ ✔️
System.Runtime.CompilerServices.Unsafe – balíček NuGet ✔️ ✔️
Časová pole na symbolických odkazech ✔️
Sledování položek propojené mezipaměti ✔️
Validate CompressionLevel for BrotliStream ✔️

Konfigurace

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Položka System.diagnostics v app.config ✔️

Kryptografie

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Dešifrování obálekCms neprovádí dvojité rozbalení ✔️
Dynamický čas ověření X509ChainPolicy ✔️
Analýza popisných názvů X500DistinguishedName ✔️

Nasazení

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Všechna sestavení se ve výchozím nastavení ořízla ✔️
Vyhledávání na více úrovních je zakázané. ✔️
Cesta hostitele x86 v 64bitovém systému Windows ✔️ ✔️
TrimmerDefaultAction je zastaralý ✔️

Entity Framework Core

Zásadní změny v EF Core 7

Rozšíření

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Vazba konfigurace se slovníkem rozšiřuje hodnoty. ✔️ ✔️
ContentRootPath pro aplikace spuštěné prostředím Windows Shell ✔️
Předpony proměnných prostředí ✔️

Globalizace

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Rozhraní API globalizace používají knihovny ICU na Windows Serveru. ✔️

Zprostředkovatel komunikace

Nadpis Binární kompatibilní Kompatibilní se zdrojem
RuntimeInformation.OSArchitecture v emulaci ✔️

.NET MAUI

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Konstruktory přijímají základní rozhraní místo betonového typu. ✔️
Odebrané pomocné metody směru toku
Nový parametr UpdateBackground ✔️
Vlastnost ScrollToRequest byla přejmenována
Některá rozhraní API systému Windows se odeberou.

Sítě

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Výchozí hodnota AllowRenegotiation je false
Vlastní datové části ping v Linuxu ✔️
Metody Socket.End nevyvolají výjimku ObjectDisposedException ✔️

SDK a MSBuild

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Automatický modul runtimeIdentifier pro určité projekty ✔️
Automatický modul runtimeIdentifier pouze pro publikování
Výstup konzoly CLI používá UTF-8
Kódování konzoly po dokončení není UTF-8 ✔️
Serializace msBuild vlastních typů v .NET 7
Souběžné instalace sady SDK
Manifesty nástrojů v kořenové složce ✔️ ✔️
Požadavky na verzi pro sadu .NET 7 SDK ✔️ ✔️
dotnet test: přepnutí -a na alias --arch místo --test-adapter-path
dotnet test: přepnutí -r na alias --runtime místo --results-dir
--output možnost již není platná pro příkazy na úrovni řešení.
Sada SDK už nevolá ResolvePackageDependencies ✔️

Serializace

Nadpis Binární kompatibilní Kompatibilní se zdrojem
DataContractSerializer uchovává znaménko při deserializaci -0. ✔️
Deserializace typu verze s počátečním nebo koncovým prázdným znakem ✔️
Konstruktor kopírování JsonSerializerOptions obsahuje JsonSerializerContext ✔️
Polymorfní serializace pro typy objektů ✔️
Záložní generátor zdroje System.Text.Json ✔️

Windows Forms

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Obsoletions and warnings ✔️
Některá rozhraní API vyvolá výjimku ArgumentNullException. ✔️

WPF

Nadpis Binární kompatibilní Kompatibilní se zdrojem Zpětně kompatibilní
Obnovené chování operací přetažení u textových editorů ✔️ ✔️

XML a XSLT

Nadpis Binární kompatibilní Kompatibilní se zdrojem
XmlSecureResolver je zastaralý

Viz také