Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La compatibilité est un objectif important de chaque version de .NET Framework. La compatibilité garantit que chaque version est additive, de sorte que les versions précédentes continuent de fonctionner. En revanche, les modifications apportées aux fonctionnalités précédentes (par exemple, pour améliorer les performances, résoudre les problèmes de sécurité ou corriger les bogues) peuvent entraîner des problèmes de compatibilité dans le code existant ou les applications existantes qui s’exécutent sous une version ultérieure.
Chaque application cible une version spécifique de .NET Framework par :
- Définition d’une infrastructure cible dans Visual Studio.
- Spécification de l’infrastructure cible dans un fichier projet.
- Application d’un TargetFrameworkAttribute au code source.
Lors de la migration d’une version de .NET Framework vers une autre, il existe deux types de modifications à prendre en compte :
Modifications du runtime
Les problèmes d’exécution sont ceux qui surviennent lorsqu’un nouveau runtime est placé sur une machine et que le comportement d’une application change. Lors de l’exécution sur une version plus récente que celle qui était ciblée, .NET Framework utilise un subterfuge afin de simuler l’ancienne version ciblée. L’application s’exécute sur la version la plus récente, mais agit comme si elle s’exécute sur l’ancienne version. La plupart des problèmes de compatibilité entre les versions de .NET Framework sont atténués par le biais de ce modèle excentrique. Par exemple, si un binaire a été compilé pour .NET Framework 4.0, mais s’exécute sur un ordinateur avec .NET Framework 4.5 ou version ultérieure, il s’exécute en mode de compatibilité .NET Framework 4.0. Cela signifie que la plupart des modifications apportées à la version ultérieure n’affectent pas le binaire.
La version de .NET Framework cible par une application est déterminée par la version cible de l’assembly d’entrée pour le domaine d’application dans lequel le code s’exécute. Tous les autres assemblys chargés dans ce domaine d’application ciblent cette version. Par exemple, dans le cas d’un exécutable, la version cible par l’exécutable est le mode de compatibilité sous lequel tous les assemblys de ce domaine d’application s’exécutent.
Modifications de reciblage
Les modifications de reciblage sont celles qui surviennent lorsqu’un assembly est recompilé pour cibler une version plus récente. Le fait de cibler une version plus récente signifie que l'assemblage adopte les nouvelles fonctionnalités tout en pouvant rencontrer des problèmes de compatibilité avec les anciennes fonctionnalités.
Classification de l’impact
Dans les articles qui décrivent les modifications de runtime et de reciblage, par exemple, les modifications de reciblage pour la migration vers .NET Framework 4.8.x, les éléments individuels sont classés par leur impact attendu comme suit :
majeure
Modification significative qui affecte un grand nombre d’applications ou qui nécessite une modification substantielle du code.
mineure
Modification qui affecte un petit nombre d’applications ou qui nécessite une modification mineure du code.
Cas limite
Modification qui affecte les applications dans des scénarios très spécifiques qui ne sont pas courants.
Transparent
Modification qui n’a aucun effet notable sur le développeur ou l’utilisateur de l’application. L’application ne doit pas nécessiter de modification en raison de cette modification.