Exécution côte à côte

L'exécution côte à côte désigne la possibilité d'exécuter plusieurs versions d'une application ou d'un composant sur le même ordinateur. Vous pouvez avoir plusieurs versions du Common Language Runtime et plusieurs versions d'applications et de composants qui utilisent une version du runtime sur le même ordinateur simultanément.

L'illustration suivante montre l'utilisation par plusieurs applications de deux versions différentes du runtime sur le même ordinateur. Les applications A, B et C utilisent la version 1.0 du runtime, l'application D utilise la version 1.1 du runtime.

Exécution côte à côte de deux versions du runtime

Exécution côte à côte

Le .NET Framework se compose du Common Language Runtime et d'environ deux douzaines d'assemblys qui contiennent les types d'API. Le runtime et les assemblys .NET Framework sont gérés séparément. Par exemple, la version 1.0 du runtime correspond en fait à la version 1.0.3705.0, tandis que la version 1.0 des assemblys .NET Framework correspond à la version 1.0.3300.0.

L'illustration suivante montre l'utilisation par plusieurs applications de deux versions différentes d'un composant sur le même ordinateur. Les applications A et B utilisent la version 1.0 du composant, l'application C utilise la version 2.0 du même composant.

Exécution côte à côte de deux versions d'un composant

Exécution côte à côte

L'exécution côte à côte vous donne davantage de contrôle sur les versions d'un composant auxquelles se lie une application ainsi que sur la version du runtime utilisée par une application.

Avantages de l'exécution côte à côte

Avant Windows XP et le .NET Framework, les conflits de DLL se produisaient, car les applications étaient incapables de faire la distinction entre les versions incompatibles du même code. Les informations de type contenues dans une DLL étaient liées uniquement à un nom de fichier. Une application ne disposait d'aucun moyen pour déterminer si les types contenus dans une DLL correspondaient aux mêmes types ayant servi à générer l'application. En conséquence, la nouvelle version d'un composant risquait de remplacer l'ancienne version et de provoquer l'interruption des applications.

L'exécution côte à côte et le .NET Framework fournissent les fonctionnalités suivantes permettant d'éliminer les conflits de DLL :

  • Assemblys avec nom fort.

    L'exécution côte à côte utilise des assemblys avec nom fort pour lier des informations de type à une version spécifique d'un assembly. Cela permet d'éviter la liaison d'une application ou d'un composant à une version non valide d'un assembly. Les assemblys avec nom fort permettent également à plusieurs versions d'un fichier de se trouver sur le même ordinateur et d'être utilisé par des applications. Pour plus d'informations, consultez Assemblys avec nom fort.

  • Stockage de code prenant en compte la version.

    Le .NET Framework permet le stockage de code prenant en compte la version dans le Global Assembly Cache. Le Global Assembly Cache est un cache de code à l'échelle de l'ordinateur présent sur tous les ordinateurs où est installé le .NET Framework. Il stocke des assemblys basés sur les informations de version, de culture et de l'éditeur et prend en charge plusieurs versions de composants et d'applications. Pour plus d'informations, consultez Global Assembly Cache.

  • Isolement

    À l'aide du .NET Framework, vous pouvez créer des applications et des composants qui s'exécutent de manière isolée. L'isolement est une fonctionnalité essentielle de l'exécution côte à côte. Elle implique la connaissance des ressources que vous utilisez et le partage de celles-ci en toute confiance entre plusieurs versions d'une application ou d'un composant. L'isolement comprend également le stockage de fichiers d'une façon spécifique à la version. Pour plus d'informations sur l'isolement, consultez Indications pour la création d'applications et de composants pour l'exécution côte à côte.

Compatibilité des versions

Les versions 1.0 et 1.1 du .NET Framework sont conçues pour être compatibles. Une application générée avec le .NET Framework version 1.0 doit s'exécuter sur la version 1.1 et une application générée avec le .NET Framework version 1.1 doit s'exécuter sur la version 1.0. Notez toutefois que les fonctionnalités API ajoutées dans la version 1.1 du .NET Framework ne fonctionnent pas avec la version 1.0 du .NET Framework. Les applications créées avec la version 2.0 s'exécuteront uniquement sur la version 2.0. Les applications de la version 2.0 ne pourront pas être utilisées avec la version 1.1 ou avec les versions antérieures.

Les versions du .NET Framework sont traitées en tant que bloc unique comportant le runtime et les assemblys .NET Framework associés (un concept appelé unification d'assemblys). Vous pouvez rediriger la liaison d'assembly pour inclure d'autres versions des assemblys .NET Framework. Toutefois, substituer la liaison d'assembly par défaut présente des risques et doit faire l'objet de tests rigoureux avant déploiement.

Rubriques connexes

Titre

Description

Localisation des informations de version du runtime

Décrit la manière dont le runtime localise les informations relatives à la version du runtime à charger pour une application.

Vue d'ensemble de l'unification des assemblys .NET Framework

Explique la manière dont le runtime traite les références aux différentes versions des assemblys .NET Framework.

Détermination de la version du runtime à charger

Décrit les étapes que suit le runtime pour déterminer la version du runtime à charger pour une application.

Redirection de liaison d'assembly

Explique comment lier une application à une version spécifique d'un assembly.

Exécution côte à côte et références d'assembly partiellement qualifiées

Explique les implications liées à l'utilisation de références d'assembly partiellement qualifiées dans des applications destinées à être exécutées côte à côte.

Exécution côte à côte et fichiers de stratégie de l'éditeur

Fournit des informations et des procédures concernant l'utilisation de fichiers de stratégie d'éditeur pour rediriger la liaison d'assembly.

Exécution côte à côte et assemblys satellites

Explique le traitement des assemblys satellites dans l'exécution côte à côte.

Détermination de la version installée du .NET Framework

Fournit des informations sur l'installation et l'utilisation de plusieurs versions du .NET Framework.

Comment : utiliser un fichier de configuration de l'application pour cibler une version du .NET Framework

Décrit comment créer un fichier de configuration qu'une application peut utiliser pour cibler une version du Common Language Runtime.

Création de plusieurs versions d'une application ou d'un composant

Fournit des informations sur la manière de créer et de déployer des applications et des composants conçus pour l'exécution côte à côte.

Détermination d'une stratégie de maintenance pour les applications et les composants

Explique comment créer un modèle de service pour des composants et des applications gérés.

Exécution côte à côte in-process

Explique comment utiliser l'activation d'hôte du runtime côte à côte in-process pour exécuter plusieurs versions du CLR dans un même processus.

Assemblys dans le Common Language Runtime

Fournit une vue d'ensemble conceptuelle des assemblys.

Domaines d'application

Fournit une vue d'ensemble conceptuelle des domaines d'application.

Référence

<supportedRuntime>, élément