Partager via


Changements importants dans .NET 9

Si vous migrez une application vers .NET 9, les changements cassants répertoriés ici peuvent vous concerner. Les changements sont regroupés par domaine technologique, par exemple ASP.NET Core ou Windows Forms.

Cet article catégorise chaque changement radical comme incompatible binaire ou incompatible source, ou comme un changement de comportement :

  • Binaire incompatible : lorsqu’ils sont exécutés sur le nouveau runtime ou composant, les fichiers binaires existants peuvent rencontrer un changement de comportement cassant, tel qu’un échec de chargement ou d’exécution, et, si c’est le cas, peuvent nécessiter une recompilation.

  • Source incompatible : lorsqu’il est recompilé à l’aide du nouveau kit de développement logiciel (SDK) ou du nouveau composant ou pour cibler le nouveau runtime, le code source existant peut nécessiter des modifications de source pour réussir la compilation.

  • Changement comportemental : le code et les fichiers binaires existants peuvent se comporter différemment lors de l’exécution. Si le nouveau comportement n’est pas souhaitable, le code existant doit être mis à jour et recompilé.

ASP.NET Noyau

Titre Type de changement
DefaultKeyResolution.ShouldGenerateNewKey a modifié la signification Changements de comportement
L’exportation de certificat de développement ne crée plus de dossier Changements de comportement
L’intergiciel Des en-têtes transférés ignore les en-têtes X-Forwarded-* provenant de proxys inconnus Changements de comportement
HostBuilder active ValidateOnBuild/ValidateScopes dans un environnement de développement Changements de comportement
API Mono et Emscripten anciennes non exportées vers un namespace global Source non compatible
Types d'intergiciels avec plusieurs constructeurs Changements de comportement

Conteneurs

Titre Type de changement Version introduite
Les images de conteneurs n'installent plus zlib Changements de comportement Préversion 7
Les images du moniteur .NET sont simplifiées et remplacées par des balises de version uniquement Changements de comportement Préversion 5

Bibliothèques .NET Core

Titre Type de changement Version introduite
L’ajout d’un ZipArchiveEntry avec CompressionLevel définit les indicateurs de bits universels d’en-tête de répertoire central ZIP Changements de comportement Préversion 5
Prise en charge de UnsafeAccessor modifiée pour les génériques non ouverts Changements de comportement Préversion 6
Obsolescences de l’API avec des ID de diagnostic personnalisés Source non compatible (Multiple)
résolution de surcharge ambiguë affectant les opérateurs implicites StringValues Source non compatible Assemblée générale
Longueur maximale de BigInteger Changements de comportement Préversion 6
BinaryReader.ReadString() retourne «\uFFFD» sur des séquences malformées Changements de comportement Préversion 7
La résolution des surcharges en C# préfère les surcharges de type params étendue Source non compatible
Création du type de tableau System.Void non autorisée Changements de comportement Préversion 1
Valeur par défaut Equals() et GetHashCode() levée pour les types marqués avec InlineArrayAttribute Changements de comportement Préversion 6
EnumConverter valide les types enregistrés pour qu’ils soient enum Changements de comportement Préversion 7
FromKeyedServicesAttribute n’injecte plus de paramètre non-clé Changements de comportement RC 1
IncrementingPollingCounter, le premier rappel est asynchrone Changements de comportement RC 1
La limite de taille de la structure de tableau en ligne est appliquée Changements de comportement Préversion 1
InMemoryDirectoryInfo ajoute rootDir au début des fichiers Changements de comportement Préversion 1
Nouvelles surcharges TimeSpan.From*() qui acceptent des entiers Source non compatible Préversion 3
Nouvelle version de certains packages OOB packages Source non compatible Préversion 5
RuntimeHelpers.GetSubArray retourne un type différent Changements de comportement Préversion 1
La surcharge String.Trim(params ReadOnlySpan<char>) a été supprimée Source/Incompatibilité binaire Assemblée générale
Prise en charge de variables d’environnement vides Changements de comportement Préversion 6
Les noms et commentaires de ZipArchiveEntry respectent l’indicateur UTF8 Changements de comportement RC 1

Chiffrement

Titre Type de changement Version introduite
API supprimées de System.Security.Cryptography.Pkcs netstandard2.0 Source non compatible Assemblée générale
SafeEvpPKeyHandle.DuplicateHandle référence le gestionnaire Changements de comportement Préversion 7
Certains constructeurs X509Certificate2 et X509Certificate sont obsolètes Source non compatible Préversion 7
Durée de vie simplifiée de la clé privée Windows Changements de comportement Préversion 7

Déploiement

Titre Type de changement Version introduite
Packages d'exécution MonoVM obsolètes pour Windows/macOS/Linux Source non compatible Préversion 7

Entity Framework Core

Modifications importantes dans EF Core 9

Interopérabilité

Titre Type de changement Version introduite
Prise en charge CET par défaut Incompatibilité binaire Préversion 6

Compilateur JIT

Titre Type de changement Version introduite
Les conversions de valeurs à virgules flottantes à valeurs en valeurs entières sont saturantes Changements de comportement Préversion 4
Suppression de certaines API de SVE Source non compatible RC 2

Mise en réseau

Titre Type de changement Version introduite
Éléments d’API obsolescents Source non compatible Préversion 6
Rapport de métriques HttpClient server.port inconditionnellement Changements de comportement Préversion 7
La journalisation de HttpClientFactory masque par défaut les valeurs d’en-tête Changements de comportement RC 1
HttpClientFactory utilise SocketsHttpHandler comme gestionnaire principal Changements de comportement Préversion 6
HttpListenerRequest.UserAgent peut accepter la valeur Null Source non compatible Préversion 1
Masquage des requêtes URI dans les événements EventSource de HttpClient Changements de comportement Préversion 7
Masquage des requêtes URI dans les journaux IHttpClientFactory Changements de comportement Préversion 7

Kit SDK et MSBuild

Titre Type de changement Version introduite
dotnet sln add n’autorise pas les noms de fichiers non valides Changements de comportement 9.0.2xx
dotnet watch incompatible avec le rechargement à chaud pour les anciens frameworks Changements de comportement RC 1
dotnet workload Changement de la sortie des commandes Changements de comportement Préversion 1
La version dépôt de installer n’est plus documentée Changements de comportement Préversion 5
Gestion des ressources culturelles personnalisées avec MSBuild Changements de comportement 9.0.200/9.0.300
Nouveau RID par défaut utilisé pour le ciblage de .NET Framework Source non compatible Assemblée générale
Terminal Logger est par défaut Changements de comportement Préversion 1
Configuration requise pour le kit SDK .NET 9 Source non compatible Assemblée générale
Avertissement émis pour la cible .NET Standard 1.x Source non compatible Préversion 6
Avertissement émis pour la cible .NET 7 Source non compatible Assemblée générale

Sérialisation

Titre Type de changement Version introduite
BinaryFormatter renvoie toujours Changements de comportement Préversion 6
Les propriétés JsonDocument nullables sont désérialisées en JsonValueKind.Null Changements de comportement Préversion 1
Le lecteur de métadonnées System.Text.Json remplace désormais les noms de propriétés de métadonnées Changements de comportement Assemblée générale

Windows Forms

Titre Type de changement Version introduite
BindingSource.SortDescriptions ne retourne pas Null Changements de comportement Préversion 1
Modifications apportées aux annotations de nullabilité Source non compatible Préversion 1
ComponentDesigner.Initialize génère ArgumentNullException Changements de comportement Préversion 1
Index de ligne de départ DataGridViewRowAccessibleObject.Name Changements de comportement Préversion 1
Le support IMsoComponent est à activer Changements de comportement Préversion 2
Nouveaux analyseurs de sécurité Source non compatible RC 1
Aucune exception si DataGridView a la valeur Null Changements de comportement Préversion 1
PictureBox déclenche des exceptions HttpClient Changements de comportement Préversion 6
StatusStrip utilise un autre convertisseur par défaut Changements de comportement Assemblée générale

WPF (Windows Presentation Foundation)

Titre Type de changement Version introduite
GetXmlNamespaceMaps Modification de type Changement de comportement/Source incompatible Préversion 3

Voir aussi