Escenarios de canalizaciones de complementos
El modelo de objetos de canalización de los complementos proporciona la flexibilidad necesaria para que las aplicaciones host y los complementos interoperen del modo siguiente:
Compatibilidad con versiones anteriores. Los hosts o los complementos con las versiones más recientes pueden trabajar con sus homólogos de versiones anteriores.
Aislamiento Puede mover uno o varios complementos a un dominio de aplicación del proceso del host o de un proceso aislado.
Uso compartido. Puede utilizar un complemento en varias canalizaciones de comunicación.
En la ilustración siguiente se muestra una canalización de comunicación simple y sus segmentos.
Canalización de comunicación estándar
Compatibilidad con versiones anteriores
Hay dos escenarios en los que se muestra la compatibilidad con versiones anteriores.
Host nuevo, complementos antiguos
En la ilustración siguiente se muestra cómo un nuevo host puede trabajar con un complemento antiguo.
Canalización de la comunicación con un host nuevo y un complemento antiguo
En este escenario de compatibilidad con versiones anteriores, el nuevo host (Host v2) puede funcionar con un complemento antiguo (Complemento v1) porque su adaptador de conversión (Adaptador de conversión v1-> v2) convierte los tipos en un formato que el complemento anterior puede reconocer.
El nuevo complemento (Complemento v2) cuenta con su propia vista y sus segmentos de adaptador para comunicarse con el nuevo host.
Host antiguo, complementos nuevos
En la ilustración siguiente se muestra cómo un host antiguo puede trabajar con complementos nuevos.
Canalización de la comunicación con un host antiguo y un complemento nuevo
En este escenario de compatibilidad con versiones anteriores, el nuevo complemento (Complemento v2) puede trabajar con un host antiguo (Host v1) porque su adaptador de conversión (Adaptador de conversión v2-> v1) convierte los tipos en un formato que el host antiguo puede reconocer.
Variación de los niveles de aislamiento
Puede activar los complementos en un nuevo proceso o dominio de aplicación utilizando las sobrecargas adecuadas del método Activate. Este aislamiento puede ser necesario por las razones siguientes:
Para supervisar las situaciones en las que la aplicación host cambia y los complementos antiguos no pueden ajustar las nuevas dependencias. Por ejemplo, esto podría ocurrir cuando la aplicación host se actualiza a una nueva versión de .NET Framework.
Para lograr plena confiabilidad mientras el complemento ejecuta su propio proceso.
Para crear un recinto para el complemento. Por ejemplo, si una aplicación host y un complemento tienen niveles diferentes de confianza según se especificó en la enumeración AddInSecurityLevel.
En la ilustración siguiente se muestra una canalización de la comunicación con dos complementos, uno de los cuales está en un proceso aislado. En la ilustración, OOP hace referencia a un proceso aislado.
Canalización de la comunicación con un complemento aislado
En este escenario, el programador de la canalización tiene dos versiones diferentes del contrato y los adaptadores: una está optimizada para la comunicación entre dominios de aplicación y la otra para la comunicación entre procesos. Ni los complementos ni el host necesitan conocer las diferencias porque utilizan las mismas vistas con independencia del contrato y el nivel de aislamiento.
Complementos compartidos
Puede utilizar un complemento con varios hosts, siempre y cuando ese complemento sea compatible con los hosts. Por ejemplo, puede utilizar un complemento compartido para implementar una barra de herramientas que proporcione una búsqueda de Internet en una aplicación web del host. Otro ejemplo es un complemento compartido que proporcione filtros de correo basura y protección antivirus a servidores o clientes de correo electrónico.
Para permitir que el complemento opere con su nuevo host, debe crear un nuevo adaptador de conversión que convierte la vista del complemento en el contrato del host.
En la ilustración siguiente se muestra cómo un complemento (Add-in A) pueden estar compartido por dos aplicaciones host (Host A y Host B).
Canalización de la comunicación con un complemento compartido