Delen via


Belangrijke wijzigingen in .NET 5

Als u een app migreert naar .NET 5, kunnen de belangrijke wijzigingen die hier worden vermeld, van invloed zijn op u. Wijzigingen worden gegroepeerd op technologiegebied, zoals ASP.NET Core of cryptografie.

In dit artikel wordt aangegeven of elke belangrijke wijziging binair compatibel of bron compatibel is:

  • Binair compatibel : bestaande binaire bestanden worden geladen en uitgevoerd zonder hercompilatie, en het runtimegedrag wordt niet gewijzigd.
  • Broncompatibel : broncode wordt zonder wijzigingen gecompileerd wanneer deze gericht is op de nieuwe runtime of het gebruik van de nieuwe SDK of het nieuwe onderdeel.

ASP.NET Core

Titel Binaire compatibiliteit Compatibel met de bron
ASP.NET Core-apps deserialiseren aangehaalde getallen ✔️
AzureAD.UI en AzureADB2C.UI API's zijn verouderd ✔️
Serialisatiemethoden van BinaryFormatter zijn verouderd ✔️
Resource in eindpuntroutering is HttpContext ✔️
Microsoft-geprefixeerde Azure-integratiepakketten verwijderd ✔️
Blazor: Logica voor de volgorde van routes veranderd in Blazor-apps ✔️
Blazor: bijgewerkte browserondersteuning ✔️ ✔️
Blazor: Onbelangrijke witruimte verwijderd door compiler ✔️
Blazor: de typen JSObjectReference en JSInProcessObjectReference zijn intern ✔️
Blazor: Doelframework van NuGet-pakketten gewijzigd ✔️
Blazor: De functie ProtectedBrowserStorage is verplaatst naar een gedeeld framework ✔️
Blazor: RenderTreeFrame readonly publieke velden zijn nu eigenschappen ✔️
Blazor: Validatielogica bijgewerkt voor statische webassets ✔️
Cryptografie-API's worden niet ondersteund in de browser ✔️
Extensies: Wijzigingen in pakketverwijzingen ✔️
Kestrel- en IIS BadHttpRequestException-typen zijn verouderd ✔️
HttpClient-exemplaren die door IHttpClientFactory zijn gemaakt, loggen numerieke statuscodes ✔️
HttpSys: Heronderhandeling van clientcertificaat is standaard uitgeschakeld ✔️
IIS: UrlRewrite middleware-queryreeksen blijven behouden ✔️
Kestrel: Standaard gedetecteerde configuratiewijzigingen ✔️
Kestrel: standaard ondersteunde TLS-protocolversies zijn gewijzigd ✔️
Kestrel: HTTP/2 uitgeschakeld via TLS in niet-compatibele Windows-versies ✔️ ✔️
Kestrel: Libuv transport gemarkeerd als verouderd ✔️
Verouderde eigenschappen in ConsoleLoggerOptions ✔️
ResourceManagerWithCultureStringLocalizer-klasse en WithCulture-interfacelid verwijderd ✔️
Pubternal-API's verwijderd ✔️
Verouderde constructor verwijderd in middleware voor aanvraaglokalisatie ✔️
Middleware: foutpagina van de database gemarkeerd als verouderd ✔️
Middleware voor uitzonderingshandler genereert oorspronkelijke uitzondering ✔️ ✔️
ObjectModelValidator roept een nieuwe overbelasting van Validate aan ✔️
Cookienaamcodering verwijderd ✔️
NuGet-pakketversies van IdentityModel bijgewerkt ✔️
SignalR: Type opties voor MessagePack Hub Protocol gewijzigd ✔️
SignalR: MessagePack Hub Protocol verplaatst ✔️
UseSignalR- en UseConnections-methoden verwijderd ✔️
CSV-inhoudstype is veranderd naar een standaardconform type ✔️

Codeanalyse

Titel Binaire compatibiliteit Compatibel met de bron
CA1416-waarschuwing ✔️
CA1417-waarschuwing ✔️
CA1831-waarschuwing ✔️
CA2013-waarschuwing ✔️
CA2014-waarschuwing ✔️
CA2015-waarschuwing ✔️
CA2200-waarschuwing ✔️
CA2247-waarschuwing ✔️

Core .NET-bibliotheken

Titel Binaire compatibiliteit Compatibel met de bron
Assembly-gerelateerde API-wijzigingen voor publicatie van één bestand ✔️
Serialisatiemethoden van BinaryFormatter zijn verouderd ✔️
Beveiligings-API's voor codetoegang zijn verouderd ✔️
CreateCounterSetInstance genereert InvalidOperationException ✔️
Default ActivityIdFormat is W3C ✔️
Environment.OSVersion retourneert de juiste versie ✔️
De waarde van FrameworkDescription is .NET en niet .NET Core ✔️
GAC-API's zijn verouderd ✔️
Hardware-intrinsieke IsSupported-controles ✔️
IntPtr en UIntPtr implementeren IFormattable ✔️
LastIndexOf verwerkt lege zoekreeksen ✔️
URI-paden met niet-ASCII-tekens op Unix ✔️
API-afschaffingen met niet-standaard diagnose-id's ✔️
Verouderde eigenschappen in ConsoleLoggerOptions ✔️
Complexiteit van LINQ OrderBy.First ✔️
OsPlatform-kenmerken hernoemd of verwijderd ✔️
Microsoft.DotNet.PlatformAbstractions-pakket verwijderd ✔️
PrincipalPermissionAttribute is niet meer actueel ✔️
Parameternaamwijzigingen van preview-versies ✔️
Parameternaamwijzigingen in referentie-assemblages ✔️
Externe API's zijn verouderd ✔️
Volgorde van de lijst Activity.Tags wordt omgekeerd ✔️
Vergelijkingsmethoden voor SSE en SSE2 verwerken NaN ✔️
Thread.Abort is verouderd verklaard ✔️
Uri-herkenning van UNC-paden op Unix ✔️
UTF-7-codepaden zijn verouderd ✔️
Gedragswijziging voor Vector2.Lerp en Vector4.Lerp ✔️
Vector<T> genereert NotSupportedException ✔️

Cryptografie

Titel Binaire compatibiliteit Compatibel met de bron
Cryptografie-API's worden niet ondersteund in de browser ✔️
Cryptography.Oid is alleen-lezen tijdens initialisatie ✔️
Standaard TLS-cijfersuites in Linux ✔️
Create()-overloads van cryptografische abstracties zijn verouderd ✔️
De standaardwaarde FeedbackSize is gewijzigd ✔️

Entity Framework Core

Belangrijke wijzigingen in EF Core 5.0

Globalisering

Titel Binaire compatibiliteit Compatibel met de bron
ICU-bibliotheken gebruiken in Windows ✔️
StringInfo en TextElementEnumerator zijn compatibel met UAX29 ✔️
Unicode-categorie is gewijzigd voor Latijns-1 tekens ✔️
TextInfo.ListSeparator-waarden gewijzigd ✔️

Interop

Titel Binaire compatibiliteit Compatibel met de bron
Ondersteuning voor WinRT wordt verwijderd ✔️
RCW casten naar InterfaceIsIInspectable genereert uitzondering ✔️
Geen A/W-achtervoegselonderzoek op andere dan Windows-platforms ✔️

Netwerken

Titel Binaire compatibiliteit Compatibel met de bron
Verwerking van cookiepaden voldoet aan RFC 6265 ✔️
LocalEndPoint wordt bijgewerkt na het aanroepen van SendToAsync ✔️
MulticastOption.Group accepteert geen null ✔️
Stromen maken opeenvolgende beginbewerkingen mogelijk ✔️
WinHttpHandler verwijderd uit .NET Runtime ✔️

SDK

Titel Binaire compatibiliteit Compatibel met de bron
Directory.Packages.props-bestanden die standaard zijn geïmporteerd ✔️
Fout gegenereerd wanneer uitvoerbare project verwijst naar niet-overeenkomende uitvoerbare bestanden ✔️
FrameworkReference vervangen door WindowsSdkPackageVersion voor Windows SDK ✔️
NETCOREAPP3_1 preprocessorsymbool is niet gedefinieerd ✔️
OutputType ingesteld op WinExe ✔️
Wijziging in het gedrag van PublishDepsFilePath ✔️
TargetFramework-wijziging van netcoreapp naar net ✔️
WinForms- en WPF-apps maken gebruik van Microsoft.NET.Sdk ✔️

Veiligheid

Titel Binaire compatibiliteit Compatibel met de bron
Beveiligings-API's voor codetoegang zijn verouderd ✔️
PrincipalPermissionAttribute is niet meer actueel ✔️
UTF-7-codepaden zijn verouderd ✔️

Serialisatie

Titel Binaire compatibiliteit Compatibel met de bron
BinaryFormatter.Deserialize wikkelt uitzonderingen opnieuw ✔️
JsonSerializer.Deserialize vereist tekenreeks met één teken ✔️
ASP.NET Core-apps deserialiseren aangehaalde getallen ✔️
JsonSerializer.Serialize genereert ArgumentNullException ✔️
Niet-openbare, parameterloze constructors die niet worden gebruikt voor deserialisatie ✔️
Opties worden gehonoreerd bij het serialiseren van sleutel-waardeparen ✔️

Windows Forms

Titel Binaire compatibiliteit Compatibel met de bron
Systeemeigen code heeft geen toegang tot Windows Forms-objecten ✔️
OutputType ingesteld op WinExe ✔️
In DataGridView worden aangepaste lettertypen niet opnieuw ingesteld ✔️
Methoden voor het gooien van ArgumentException ✔️
Methoden werpen ArgumentNullException ✔️
Eigenschappen van ArgumentOutOfRangeException ✔️
TextFormatFlags.ModifyString is niet langer in gebruik ✔️
DataGridView-API's gooien InvalidOperationException ✔️
WinForms-apps maken gebruik van Microsoft.NET.Sdk ✔️
Besturingselementen voor verwijderde statusbalk ✔️

WPF (Windows Presentation Foundation)

Titel Binaire compatibiliteit Compatibel met de bron
OutputType ingesteld op WinExe ✔️
WPF-apps gebruiken Microsoft.NET.Sdk ✔️

Zie ook