Sdílet prostřednictvím


Zásadní změny v .NET 5

Pokud migrujete aplikaci na .NET 5, můžou vás tyto zásadní změny ovlivnit. Změny jsou seskupeny podle oblasti technologií, jako je ASP.NET Core nebo kryptografie.

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
ASP.NET základní aplikace deserializují čísla v uvozových číslech ✔️
Zastaralé rozhraní API AzureAD.UI a AzureADB2C.UI ✔️
Metody serializace BinaryFormatter jsou zastaralé ✔️
Prostředek ve směrování koncového bodu je HttpContext ✔️
Odebrané integrační balíčky Azure s předponou Microsoftu ✔️
Blazor: Logika priority tras se změnila v aplikacích Blazor ✔️
Blazor: Aktualizace podpory prohlížeče ✔️ ✔️
Blazor: Nevýznamné prázdné znaky oříznuté kompilátorem ✔️
Blazor: Interní typy JSObjectReference a JSInProcessObjectReference ✔️
Blazor: Cílová architektura balíčků NuGet se změnila ✔️
Blazor: Funkce ProtectedBrowserStorage přesunutá do sdílené architektury ✔️
Blazor: Veřejné pole RenderTreeFrame jsou teď vlastnosti ✔️
Blazor: Aktualizovaná logika ověřování statických webových prostředků ✔️
Rozhraní API kryptografie nejsou v prohlížeči podporovaná ✔️
Rozšíření: Změny odkazu na balíčky ✔️
Zastaralé typy Kestrel a IIS BadHttpRequestException ✔️
Instance HttpClient vytvořené stavovými kódy protokolu IHttpClientFactory ✔️
HttpSys: Nové vyjednávání klientského certifikátu je ve výchozím nastavení zakázané ✔️
IIS: Řetězce dotazů middlewaru UrlRewrite se zachovají. ✔️
Kestrel: Změny konfigurace zjištěné ve výchozím nastavení ✔️
Kestrel: Změna výchozích podporovaných verzí protokolu TLS ✔️
Kestrel: HTTP/2 zakázáno přes protokol TLS v nekompatibilních verzích Windows ✔️ ✔️
Kestrel: Přenos Libuv označený jako zastaralý ✔️
Zastaralé vlastnosti v ConsoleLoggerOptions ✔️
ResourceManagerWithCultureStringLocalizer – třída a člen rozhraní WithCulture byl odebrán ✔️
Odebraná pubternální rozhraní API ✔️
Zastaralý konstruktor odebraný v middlewaru lokalizace požadavků ✔️
Middleware: Chybová stránka databáze označená jako zastaralá ✔️
Middleware obslužné rutiny výjimky vyvolá původní výjimku. ✔️ ✔️
ObjectModelValidator volá nové přetížení Validate ✔️
Odebrané kódování názvu souboru cookie ✔️
Aktualizace verzí balíčků NuGet IdentityModel ✔️
SignalR: Změna typu možností protokolu centra MessagePack ✔️
SignalR: Přesunutý protokol centra MessagePack ✔️
Metody UseSignalR a Use Připojení ions byly odebrány ✔️
Typ obsahu CSV se změnil na vyhovující standardům. ✔️

Analýza kódu

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Upozornění CA1416 ✔️
Upozornění CA1417 ✔️
Upozornění CA1831 ✔️
Upozornění CA2013 ✔️
Upozornění CA2014 ✔️
Upozornění CA2015 ✔️
Upozornění CA2200 ✔️
Upozornění CA2247 ✔️

Knihovny Core .NET

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Změny rozhraní API související s sestavením pro publikování s jedním souborem ✔️
Metody serializace BinaryFormatter jsou zastaralé ✔️
Zastaralá rozhraní API zabezpečení přístupu kódu ✔️
CreateCounterSetInstance vyvolá výjimku InvalidOperationException ✔️
Default ActivityIdFormat is W3C ✔️
Environment.OSVersion vrátí správnou verzi. ✔️
Hodnota FrameworkDescription je .NET, nikoli .NET Core ✔️
Zastaralá rozhraní API pro GAC ✔️
Vnitřní kontroly hardwaru IsSupported ✔️
IntPtr a UIntPtr implementují IFormattable ✔️
LastIndexOf zpracovává prázdné vyhledávací řetězce. ✔️
Cesty URI se znaky jiných než ASCII v unixovém systému Unix ✔️
Obsoletions rozhraní API s ne defaultním diagnostickým ID ✔️
Zastaralé vlastnosti v ConsoleLoggerOptions ✔️
Složitost LINQ OrderBy.First ✔️
Přejmenování nebo odebrání atributů OSPlatform ✔️
Odebraný balíček Microsoft.DotNet.PlatformAbstractions ✔️
Objekt PrincipalPermissionAttribute je zastaralý. ✔️
Změny názvu parametru z verzí Preview ✔️
Změny názvu parametru v referenčních sestaveních ✔️
Zastaralá rozhraní API pro vzdálené komunikace ✔️
Pořadí seznamu Activity.Tags je obrácené. ✔️
Metody porovnání SSE a SSE2 zpracovávají NaN ✔️
Thread.Abort je zastaralý ✔️
Rozpoznávání identifikátorů URI cest UNC v unixovém systému Unix ✔️
Zastaralé cesty kódu UTF-7 ✔️
Změna chování pro Vector2.Lerp a Vector4.Lerp ✔️
Vektor<T> vyvolá výjimku NotSupportedException ✔️

Kryptografie

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Rozhraní API kryptografie nejsou v prohlížeči podporovaná ✔️
Kryptografie.Oid je pouze inicializační ✔️
Výchozí šifrovací sady TLS v Linuxu ✔️
Přetížení Create() v kryptografických abstrakcích jsou zastaralá. ✔️
Změna výchozí hodnoty FeedbackSize ✔️

Entity Framework Core

Zásadní změny v EF Core 5.0

Globalizace

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Použití knihoven ICU ve Windows ✔️
StringInfo a TextElementEnumerator jsou kompatibilní s UAX29 ✔️
Změněná kategorie Unicode pro znaky latinky a 1 ✔️
Změna hodnot TextInfo.ListSeparator ✔️

Zprostředkovatel komunikace

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Podpora pro WinRT se odebere ✔️
Přetypování RCW na InterfaceIsIInspectable vyvolá výjimku ✔️
Na jiných platformách než Windows se neprobíná žádná přípona A/W ✔️

Sítě

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Zpracování cesty k souborům cookie odpovídá dokumentu RFC 6265 ✔️
LocalEndPoint se aktualizuje po volání metody SendToAsync. ✔️
MulticastOption.Group nepřijímá hodnotu null. ✔️
Toky povolit následné počáteční operace ✔️
Rutina WinHttpHandler odebraná z modulu runtime .NET ✔️

Sada SDK

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Soubory Directory.Packages.props importované ve výchozím nastavení ✔️
Chyba vygenerovaná při neshodě spustitelných odkazů na spustitelný soubor projektu ✔️
FrameworkReference nahrazeno windowsSdkPackageVersion pro Windows SDK ✔️
NETCOREAPP3_1 není definován symbol preprocesoru ✔️
OutputType nastaveno na WinExe ✔️
Změna chování PublishDepsFilePath ✔️
Změna cílového rámce z netcoreapp na net ✔️
Aplikace WinForms a WPF používají Microsoft.NET.Sdk ✔️

Zabezpečení

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Zastaralá rozhraní API zabezpečení přístupu kódu ✔️
Objekt PrincipalPermissionAttribute je zastaralý. ✔️
Zastaralé cesty kódu UTF-7 ✔️

Serializace

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Výjimky rewraps BinaryFormatter.Deserialize ✔️
JsonSerializer.Deserialize vyžaduje řetězec s jedním znakem. ✔️
ASP.NET základní aplikace deserializují čísla v uvozových číslech ✔️
JsonSerializer.Serialize vyvolá výjimku ArgumentNullException ✔️
Neveřejné konstruktory bez parametrů se nepoužívají k deserializaci ✔️
Možnosti jsou dodrženy při serializaci párů klíč-hodnota ✔️

Windows Forms

Nadpis Binární kompatibilní Kompatibilní se zdrojem
Nativní kód nemá přístup k objektům model Windows Forms ✔️
OutputType nastaveno na WinExe ✔️
DataGridView neobnovuje vlastní písma ✔️
Metody vyvolá výjimku ArgumentException ✔️
Metody vyvolá výjimku ArgumentNullException ✔️
Vlastnosti vyvolá výjimku ArgumentOutOfRangeException ✔️
TextFormatFlags.ModifyString je zastaralý ✔️
Rozhraní API DataGridView vyvolá výjimku InvalidOperationException ✔️
Aplikace WinForms používají Microsoft.NET.Sdk ✔️
Odebrání ovládacích prvků stavového řádku ✔️

WPF

Nadpis Binární kompatibilní Kompatibilní se zdrojem
OutputType nastaveno na WinExe ✔️
Aplikace WPF používají Microsoft.NET.Sdk ✔️

Viz také