Compatibilité des applications dans le .NET Framework
Article
La compatibilité est un objectif important de chaque version du .NET Framework. La compatibilité garantit que chaque version est additive et que les versions précédentes continueront de fonctionner. En revanche, les modifications apportées aux fonctionnalités précédentes (par exemple, pour améliorer les performances, résoudre des problèmes de sécurité ou corriger des bogues) peuvent provoquer des problèmes de compatibilité dans le code ou des applications qui s’exécutent sous une version ultérieure.
Chaque application cible une version spécifique de .NET Framework par :
La définition d’une version cible de .NET Framework dans Visual Studio.
La spécification de la version cible de .NET Framework dans un fichier projet.
Les problèmes de runtime 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 .NET Framework sont atténués via ce modèle de subterfuge. Par exemple, si un fichier 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 fichier binaire.
La version .NET Framework que cible 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 que l'exécutable cible 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. Cibler une nouvelle version signifie que l’assembly accepte les nouvelles fonctionnalités ainsi que les éventuels problèmes de compatibilité des anciennes fonctionnalités.
Majeur
Modification importante qui affecte un grand nombre d'applications ou qui nécessite de modifier significativement le code.
Secondaire
Modification qui affecte un petit nombre d’applications ou qui nécessite peu de modifications du code.
Cas limite
Modification qui affecte des applications dans des scénarios très spécifiques qui ne sont pas courants.
Mode transparent
Modification qui n'a pas d'effet visible pour le développeur ou l'utilisateur de l'application. L'application n'a pas besoin d'être modifiée en raison de cette modification.
La source de ce contenu se trouve sur GitHub, où vous pouvez également créer et examiner les problèmes et les demandes de tirage. Pour plus d’informations, consultez notre guide du contributeur.
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Dans ce module, vous apprendrez quand, pourquoi et comment moderniser une application ASP.NET Framework vers ASP.NET Core à l’aide de l’Assistant Mise à niveau.
Générez des solutions de bout en bout dans Microsoft Azure pour créer des fonctions Azure Functions, implémenter et gérer des applications web, développer des solutions qui utilisent le Stockage Azure, et bien plus encore.