Partilhar via


Desenvolvimento de pipeline

O pipeline add-in é o caminho dos segmentos de pipeline, o aplicativo host e o suplemento devem usar para se comunicar entre si.

A ilustração a seguir mostra o pipeline de comunicação e seus segmentos.

Suplemento de pipeline

Modelo de pipeline de suplementos.

O aplicativo de host está em uma extremidade do pipeline e o suplemento é na outra extremidade. A partir de cada extremidade e em direção ao meio, o aplicativo host e o suplemento tem uma classe base abstrata que define um modo de exibição do modelo de objeto que ambos compartilham. Esses tipos (classes) compõem o segmento de pipeline add-in view e o modo de exibição do host do segmento add-in do pipeline. O segmento de pipeline add-in do modo de exibição geralmente contém mais de uma classe abstrata, mas a classe que herda do suplemento é conhecida como base add-in.

O segmento de pipeline do adaptador de adicionar no lado e converter adaptador no lado do host pipeline segmento o fluxo dos tipos entre seus segmentos de pipeline do modo de exibição e o segmento de pipeline do contrato. O segmento de central do pipeline é um contrato que é derivado de IContract interface. Este contrato define os métodos que o aplicativo host e o suplemento irá usar.

Se você carregar o host e o suplemento em domínios de aplicativo separado, você tem um limite de isolamento que separa o escopo do aplicativo host do escopo do suplemento. O contrato é um único assembly que é carregado no host e de domínios de aplicativos de suplemento. O host e o suplemento cada consultem somente sua exibição dos métodos de contrato. Portanto, eles são separados por uma camada de abstração do contrato.

Para desenvolver os segmentos de pipeline, você deve criar uma estrutura de diretório que conterá a eles. Para obter mais informações sobre os requisitos de desenvolvimento e as diretrizes de escopo, consulte Requisitos de desenvolvimento de pipeline.

A ilustração a seguir mostra os tipos que compõem os segmentos de pipeline. Os nomes dos tipos mostrados na ilustração são arbitrários, mas todos os tipos exceto o host e o host de exibir os atributos de suplemento requerem para que eles podem ser descobertos por métodos construir um armazenamento de informações.

Pipeline de suplemento com tipos

Modelo de suplemento com atributos necessários em tipos.

A tabela a seguir descreve os segmentos de pipeline para ativar um add-in. Para obter mais informações sobre esses segmentos, consulte Contratos, exibições e adaptadores.

Segmento de pipeline

Descrição

Host

O assembly de aplicativo que cria uma instância de um suplemento.

Modo de exibição de host do add-in

Representa o modo de exibição do aplicativo host dos tipos de objetos e métodos usados para se comunicar com o suplemento. O modo de exibição do host é uma interface ou classe base abstrata.

Adaptador de host

Um assembly com uma ou mais classes que se adapta a métodos e para o contrato.

Esse segmento de pipeline é identificado usando o HostAdapterAttribute atributo.

Não há suporte para vários módulos assemblies.

Contrato

Uma interface que é derivada de IContract interface e que define o protocolo para tipos de comunicação entre o host e o seu add-in.

Esse segmento de pipeline é identificado, definindo a AddInContractAttribute atributo.

Adaptador de adicionar no lado

Um assembly com uma ou mais classes que se adapta a métodos e para o contrato.

Esse segmento de pipeline é identificado usando o AddInAdapterAttribute atributo.

Cada assembly no diretório do adaptador de adicionar no lado que contém um tipo que tem um AddInAdapterAttribute atributo é carregado para o suplemento do domínio de aplicativo.

Cada assembly no diretório adicionar no lado é carregado em seu próprio domínio de aplicativo.

Vários módulos assemblies não são suportados.

Suplemento do modo de exibição

Um assembly que representa a exibição do suplemento dos tipos de objeto e métodos que são usados para se comunicar com o host. O modo de exibição do suplemento é uma interface ou classe base abstrata.

Esse segmento de pipeline é identificado usando o AddInBaseAttribute atributo.

Cada assembly no diretório AddInViews que contém um tipo que tem um AddInBaseAttribute atributo é carregado para o suplemento do domínio de aplicativo.

Suplemento

Um tipo instanciado que executa um serviço para o host.

Caminho de ativação de pipeline

A ilustração a seguir mostra a ativação de tipos quando um suplemento é ativado. Ele também mostra a passagem de objetos para o host, como, por exemplo, os resultados de um cálculo ou uma coleção de objetos. Este é o cenário mais comum.

Caminho de ativação do add-in para o host

Modelo de suplemento com caminho de ativação.

O caminho de ativação do pipeline ocorre da seguinte maneira:

  1. O aplicativo host ativa o suplemento com o Activate método.

  2. O modo de exibição de add-in, add-in, add no lado adaptador e os assemblies de contrato são carregados para o domínio de aplicativo do suplemento.

  3. Uma instância do adaptador no lado adicionar é criada usando o modo de exibição do suplemento (com a classe identificada pelo AddInBaseAttribute atributo) como o construtor. O adaptador de adicionar no lado herda a partir do contrato.

  4. O adaptador de adicionar no lado, o que é digitado como o contrato, é passado entre o limite de isolamento (opcional) para o construtor do lado do host do adaptador.

  5. O modo de exibição do host do adaptador de suplemento, o lado do host e os assemblies do contrato são carregados para o domínio de aplicativo do host.

  6. Uma instância do adaptador do host é criada usando o contrato como seu construtor. O adaptador de host herda da exibição do host do add-in.

  7. O host tem o add-in, que é digitado como o host exibir do add-in e pode continuar chamando seus métodos.

Tutoriais

Existem três tópicos de explicação passo a passo descrevem como criar tubulações usando Visual Studio:

Consulte também

Conceitos

Cenários do Pipeline de suplemento

Add-ins e extensibilidade