Delen via


Belangrijke wijzigingen in .NET 9

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

Dit artikel categoriseert elke brekende verandering als binair niet compatibel of bron niet compatibel, of als een gedragswijziging:

  • Binair incompatibel - Wanneer ze worden uitgevoerd met de nieuwe runtime of het nieuwe onderdeel, kunnen bestaande binaire bestanden een belangrijke wijziging in gedrag ondervinden, zoals een fout bij het laden of uitvoeren, en in dat geval moet opnieuw worden gecompileerd.

  • Bron is niet compatibel - Wanneer de bestaande broncode opnieuw wordt gecompileerd met de nieuwe SDK of het nieuwe onderdeel, of om de nieuwe runtime te gebruiken, kan het zijn dat bronwijzigingen nodig zijn om succesvol te compileren.

  • Gedragswijziging: bestaande code en binaire bestanden kunnen zich tijdens runtime anders gedragen. Als het nieuwe gedrag ongewenst is, moet bestaande code worden bijgewerkt en opnieuw worden gecompileerd.

ASP.NET Core

Titel Type wijziging
DefaultKeyResolution.ShouldGenerateNewKey heeft betekenis gewijzigd Gedragswijziging
Dev-certificaatexport maakt geen map meer Gedragswijziging
Forwarded Headers Middleware negeert X-Forwarded-* headers van onbekende proxy's Gedragswijziging
HostBuilder schakelt ValidateOnBuild/ValidateScopes in in de ontwikkelomgeving Gedragswijziging
verouderde Mono- en Emscripten-API's niet geëxporteerd naar globale naamruimte Bron is niet compatibel
Middlewaretypen met meerdere constructors Gedragswijziging

Opslagcontainers

Titel Type wijziging Geïntroduceerde versie
Containerafbeeldingen installeren zlib niet meer Gedragswijziging Preview 7
.NET Monitor-afbeeldingen vereenvoudigd tot alleen versietags Gedragswijziging Preview 5

Core .NET-bibliotheken

Titel Type wijziging Geïntroduceerde versie
Door een ZipArchiveEntry toe te voegen met CompressionLevel, worden de algemene bitvlaggen van de ZIP centrale directory header ingesteld Gedragswijziging Preview 5
Ondersteuning voor UnsafeAccessor bij niet-open generieken gewijzigd Gedragswijziging Preview 6
API-verouderingen met aangepaste diagnostische ID's Bron is niet compatibel Meerdere
niet-eenduidige overbelastingsresolutie die van invloed is op impliciete operatoren van StringValues Bron is niet compatibel Algemene Vergadering
Maximale lengte BigInteger Gedragswijziging Preview 6
BinaryReader.ReadString() retourneert "\uFFFD" op ongeldige reeksen Gedragswijziging Preview 7
C#-overbelastingresolutie geeft de voorkeur aan overbelastingen van het type span params Bron is niet compatibel
Het maken van een matrix van het type System.Void is niet toegestaan Gedragswijziging Preview 1
Standaard Equals() en GetHashCode() gooien voor typen gemarkeerd met InlineArrayAttribute Gedragswijziging Preview 6
EnumConverter valideert dat geregistreerde typen van het type 'enum' zijn Gedragswijziging Preview 7
FromKeyedServicesAttribute injecteert geen niet-sleutelparameter meer Gedragswijziging RC 1
Initiële callback van IncrementingPollingCounter vindt asynchroon plaats Gedragswijziging RC 1
De groottelimiet voor inline array-structuren wordt afgedwongen Gedragswijziging Preview 1
InMemoryDirectoryInfo prepends rootDir aan bestanden Gedragswijziging Preview 1
Nieuwe TimeSpan.From*() overloads die integers als argumenten gebruiken Bron is niet compatibel Preview 3
nieuwe versie van sommige OOB-pakketten Bron is niet compatibel Preview 5
RuntimeHelpers.GetSubArray retourneert een ander type Gedragswijziging Preview 1
String.Trim(params ReadOnlySpan<char>) overbelasting verwijderd Bron/binair niet compatibel Algemene Vergadering
Ondersteuning voor lege omgevingsvariabelen Gedragswijziging Preview 6
ZipArchiveEntry-namen en opmerkingen respecteren UTF8-vlag Gedragswijziging RC 1

Cryptografie

Titel Type wijziging Geïntroduceerde versie
API's verwijderd uit System.Security.Cryptography.Pkcs netstandard2.0 Bron is niet compatibel Algemene Vergadering
SafeEvpPKeyHandle.DuplicateHandle verhoogt de referentielijst van de handle Gedragswijziging Preview 7
Sommige X509Certificate2- en X509Certificate-constructors zijn verouderd Bron is niet compatibel Preview 7
Levensduur van persoonlijke Windows-sleutel vereenvoudigd Gedragswijziging Preview 7

Implementatie

Titel Type wijziging Geïntroduceerde versie
Afgeschafte windows-/macOS-/Linux MonoVM-runtimepakketten Bron is niet compatibel Preview 7

Entity Framework Core

Belangrijke wijzigingen in EF Core 9

Interop

Titel Type wijziging Geïntroduceerde versie
CET wordt standaard ondersteund Binair niet compatibel Preview 6

JIT-compiler

Titel Type wijziging Geïntroduceerde versie
Conversies van drijvende komma naar gehele getallen zijn aan het verzadigen Gedragswijziging Preview 4
Sommige SVE-API's zijn verwijderd Bron is niet compatibel RC 2

Netwerken

Titel Type wijziging Geïntroduceerde versie
API-veroudering Bron is niet compatibel Preview 6
HttpClient-metriekrapport server.port onvoorwaardelijk Gedragswijziging Preview 7
HttpClientFactory logging verbergt standaard headerwaarden Gedragswijziging RC 1
HttpClientFactory maakt gebruik van SocketsHttpHandler als primaire handler Gedragswijziging Preview 6
HttpListenerRequest.UserAgent kan null-waarden bevatten Bron is niet compatibel Preview 1
URI-queryverwijdering in HttpClient EventSource-gebeurtenissen Gedragswijziging Preview 7
URI-queryheractie in IHttpClientFactory-logboeken Gedragswijziging Preview 7

SDK en MSBuild

Titel Type wijziging Geïntroduceerde versie
dotnet sln add staat ongeldige bestandsnamen niet toe Gedragswijziging 9.0.2xx
dotnet watch niet compatibel met Hot Reload voor oude frameworks Gedragswijziging RC 1
dotnet workload uitvoer van opdrachten wijzigen Gedragswijziging Preview 1
installer opslagplaatsversie niet meer gedocumenteerd Gedragswijziging Preview 5
Verwerking van aangepaste cultuurresources in MSBuild Gedragswijziging 9.0.200/9.0.300
Nieuwe standaard-RID die wordt gebruikt bij het richten op .NET Framework Bron is niet compatibel Algemene Vergadering
Terminal Logger is de standaardinstelling Gedragswijziging Preview 1
Versievereisten voor .NET 9 SDK Bron is niet compatibel Algemene Vergadering
Waarschuwing verzonden voor .NET Standard 1.x-doel Bron is niet compatibel Preview 6
Waarschuwing verzonden voor .NET 7-doel Bron is niet compatibel Algemene Vergadering

Serialisatie

Titel Type wijziging Geïntroduceerde versie
BinaryFormatter gooit altijd Gedragswijziging Preview 6
Nullbare JsonDocument-eigenschappen deserialiseren naar JsonValueKind.Null Gedragswijziging Preview 1
De metagegevenslezer in System.Text.Json haalt nu escape-tekens uit metagegevens-eigenschapsnamen Gedragswijziging Algemene Vergadering

Windows Forms

Titel Type wijziging Geïntroduceerde versie
BindingSource.SortDescriptions retourneert geen null Gedragswijziging Preview 1
Wijzigingen in annotaties voor nullbaarheid Bron is niet compatibel Preview 1
ComponentDesigner.Initialize genereert ArgumentNullException Gedragswijziging Preview 1
DataGridViewRowAccessibleObject.Name beginnende rijindex Gedragswijziging Preview 1
Ondersteuning voor IMsoComponent is optioneel inschakelbaar Gedragswijziging Preview 2
Nieuwe beveiligingsanalyses Bron is niet compatibel RC 1
Geen uitzondering als DataGridView null is Gedragswijziging Preview 1
PictureBox genereert HttpClient-uitzonderingen Gedragswijziging Preview 6
StatusStrip maakt gebruik van een andere standaard renderer Gedragswijziging Algemene Vergadering

WPF (Windows Presentation Foundation)

Titel Type wijziging Geïntroduceerde versie
GetXmlNamespaceMaps typewijziging Gedragswijziging/bron is niet compatibel Preview 3

Zie ook