Vue d'ensemble des compléments
Mise à jour : novembre 2007
Le modèle de programmation du .NET Framework pour les compléments prend en charge le développement d'un pipeline de communication qui permet l'hébergement de compléments sous divers scénarios adaptables.
Remarque : |
---|
Vous trouverez des exemples de code supplémentaires, ainsi que des présentations technologiques destinées aux clients des outils de génération de pipelines de compléments, sur le site Managed Extensibility and Add-In Framework (en anglais) de CodePlex. |
Modèle de complément
Le modèle de complément se compose d'une série de segments qui constituent le pipeline du complément (également appelé pipeline de communication), qui est responsable de toutes les communications entre le complément et l'hôte. Le pipeline est un modèle de communication symétrique des segments qui échangent des données entre un complément et son hôte. Le développement de ces segments entre l'hôte et le complément fournit les couches d'abstraction requises qui prennent en charge le versioning et l'isolation du complément.
L'illustration suivante représente le pipeline.
Pipeline de complément
Il n'est pas nécessaire que ces segments soient dans le même domaine d'application. Vous pouvez charger un complément dans son nouveau domaine d'application, dans un domaine d'application existant ou même dans le domaine d'application de l'hôte. Vous pouvez charger plusieurs compléments dans le même domaine d'application, ce qui permet aux compléments de partager des ressources et des contextes de sécurité.
Le modèle de complément prend en charge et recommande une limite facultative entre l'hôte et le complément, appelée limite d'isolation (ou limite d'accès distant). Cette limite peut être un domaine d'application ou une limite de processus.
Le segment de contrat au milieu du pipeline est chargé dans le domaine d'application de l'hôte et dans le domaine d'application du complément. Le contrat définit les méthodes virtuelles que l'hôte et le complément utilisent pour échanger des types.
Pour passer à travers la limite d'isolation, les types doivent être des contrats ou des types sérialisables. Les types qui ne sont pas contrats ou des types sérialisables doivent être convertis en contrats par les segments d'adaptateur dans le pipeline.
Les segments de vue du pipeline sont des classes de base abstraites ou des interfaces qui fournissent à l'hôte et au complément une vue des méthodes qu'ils partagent, comme défini par le contrat.
Pour plus d'informations sur le développement de segments de pipeline, consultez Développement de pipeline.
Les sections suivantes décrivent les fonctionnalités du modèle de complément.
Versioning indépendant
Le modèle de complément permet aux hôtes et aux compléments d'effectuer un versioning indépendant. En conséquence, le modèle de complément permet les scénarios suivants :
Création d'un adaptateur qui permet à un hôte d'utiliser un complément créé pour une version antérieure de l'hôte.
Création d'un adaptateur qui permet à un hôte d'utiliser un complément créé pour une version ultérieure de l'hôte.
Création d'un adaptateur qui permet à un hôte d'utiliser des compléments construits pour un hôte différent.
Découverte et activation
Vous pouvez activer un complément en utilisant un jeton d'une collection qui représente les compléments recherchés dans une banque d'informations. La recherche des compléments s'effectue en recherchant le type qui définit la vue de l'hôte du complément. Vous pouvez également rechercher un complément spécifique selon le type qui définit le complément. La banque d'informations se compose de deux fichiers cache : le magasin de pipeline et le magasin de complément.
Pour plus d'informations sur la mise à jour et la régénération de la banque d'informations, consultez Découverte de compléments. Pour plus d'informations sur l'activation des compléments, consultez Activation de compléments et Comment : activer des compléments avec différents niveaux d'isolement et de sécurité.
Niveaux d'isolement et processus externes
Le modèle de complément prend en charge plusieurs niveaux d'isolement entre un complément et son hôte ou entre compléments. Voici les niveaux d'isolation, du moins élevé au plus élevé :
Le complément s'exécute dans le même domaine d'application que l'hôte. Ce niveau n'est pas recommandé, car vous perdez les fonctions d'isolation et de déchargement que vous obtenez lorsque vous utilisez différents domaines d'application.
Plusieurs compléments sont chargés dans le même domaine d'application qui est différent du domaine d'application utilisé par l'hôte.
Chaque complément est chargé exclusivement dans son propre domaine d'application. Il s'agit du niveau d'isolement le plus courant.
Plusieurs compléments sont chargés dans le même domaine d'application dans un processus externe.
Chaque complément est chargé exclusivement dans son propre domaine d'application dans un processus externe. Il s'agit du scénario le plus isolé.
Pour plus d'informations sur l'utilisation de processus externes, consultez Comment : activer des compléments avec différents niveaux d'isolement et de sécurité.
Gestion de la durée de vie
Étant donné que le modèle de complément couvre les limites de domaine d'application et de processus, le garbage collection seul ne suffit pas pour libérer et récupérer des objets. Le modèle de complément fournit un mécanisme de gestion de la durée de vie qui utilise des jetons et un décompte de références et ne requiert généralement pas de programmation supplémentaire. Pour plus d'informations, consultez Gestion de la durée de vie.
Distinction entre les compléments et les hôtes
La différence entre un complément et un hôte est que l'hôte est celui qui active le complément. L'hôte peut être le plus grand des deux (par exemple, une application de traitement de texte et ses vérificateurs orthographiques) ou le plus petit (par exemple, un client de messagerie instantanée qui incorpore un lecteur multimédia). Le modèle de complément prend en charge les compléments dans les scénarios client et serveur. Les compléments de serveur incluent, par exemple, des compléments qui fournissent des serveurs de messagerie avec une analyse de virus, des filtres de courrier indésirable et une protection IP. Les compléments de client incluent, par exemple, des compléments de référence pour les applications de traitement de texte, des fonctionnalités spécialisées pour les programmes graphiques et les jeux, et une analyse de virus pour les clients de messagerie locaux.
Voir aussi
Concepts
Domaines d'application et assemblys