Partilhar via


Visão geral do suplemento

O modelo de programação do .NET estrutura para suplementos suporta o desenvolvimento de um canal de comunicação que permite a hospedagem de suplementos em uma variedade de cenários adaptáveis.

Observação:

Você pode encontrar código de exemplo adicionais e prévias de tecnologia do cliente de ferramentas para construção suplemento tubulações, na Site de extensibilidade e suplemento estrutura gerenciado no CodePlex.

Modelo de suplemento

O modelo de suplemento consiste em uma série de segmentos que compõem o suplemento pipeline (também conhecido sistema autônomo o pipeline de comunicação), que é responsável por toda a comunicação entre o suplemento e o host.O pipeline é um modelo de comunicação simétricos de segmentos que trocar dados entre um suplemento e seu host.Desenvolver esses segmentos entre o host e o suplemento fornece as camadas de abstração necessárias que suporte ao controle de versão e o isolamento do suplemento.

A ilustração a seguir mostra o pipeline.

Suplemento do pipeline

Os assemblies para esses segmentos não são necessárias para estar no mesmo domínio do aplicativo.Você pode carregar um suplemento no seu próprio domínio novo, em um domínio do aplicativo existente ou até mesmo em domínio do aplicativo do host.Você pode carregar vários suplementos no mesmo domínio do aplicativo, que permite que os suplementos compartilhar recursos e contextos de segurança.

Oferece suporte ao modelo de suplemento e recomenda, um limite opcional entre o host e o suplemento, que é chamado de limite de isolamento (também conhecido sistema autônomo um limite de sistema de interação remota).Esse limite pode ser um limite de processo ou de domínio do aplicativo.

O segmento de contrato no meio do pipeline é carregado no domínio de aplicativo do host e domínio do aplicativo do suplemento.O contrato define os métodos virtual que o host e o uso do suplemento para trocar tipos entre si.

Passar pelo limite de isolamento, os tipos devem ser contratos ou tipos serializáveis.Tipos não contratos ou tipos serializáveis devem ser convertidos para contratos por segmentos de adaptador no pipeline.

sistema autônomo segmentos de modo de exibição do pipeline são classes base abstratas ou interfaces que fornecem o host e o suplemento com um modo de exibição de métodos que compartilhem, conforme definido pelo contrato.

Para obter mais informações sobre desenvolvimento segmentos de pipeline, consulte Desenvolvimento de pipeline.

As seções a seguir descrevem os recursos do modelo de suplemento.

controle de versão independente

O modelo de suplemento permite hosts e suplementos para a versão independente.sistema autônomo resultado, o modelo de suplemento permite que sistema autônomo seguintes cenários:

  • Criar um adaptador que permite que um host para usar um suplemento criado para uma versão anterior do host.

  • Criar um adaptador que permite que um host para usar um suplemento criado para uma versão posterior do host.

  • Criar um adaptador que permite que um host usar o add-ins criados para um host diferente.

Detecção e ativação

Você pode ativar um suplemento usando um token de uma coleção que representa os suplementos encontrados a partir de um armazenamento de informações.Suplementos são encontrados pesquisando o tipo que define o modo de exibição do host de suplemento.Você também pode encontrar um add-in específico pelo tipo que define o suplemento.O armazenamento de informações consiste em dois arquivos de cache: o armazenamento de pipeline e o armazenamento de suplemento.

Para obter informações sobre como atualizar e reconstruir o armazenamento de informações, consulte Descoberta de suplemento. Para obter informações sobre como ativar suplementos, consulte Ativação de suplemento e Como: Ativar suplementos com isolamento diferente e níveis de segurança.

Níveis de isolamento e processos externos

O modelo de suplemento suporta vários níveis de isolamento entre um add-in e seu host ou entre suplementos.A partir do lesistema autônomot isolado, esses níveis são sistema autônomo segue:

  • O suplemento é executado no mesmo domínio do aplicativo do host.Isso não é recomendado porque você perde o isolamento e recursos descarregando que quando você usa diferentes domínios de aplicativo.

  • Vários suplementos são carregados para o mesmo domínio do aplicativo que seja diferente do domínio do aplicativo usado pelo host.

  • Cada suplemento é carregado exclusivamente em seu próprio domínio do aplicativo.Este é o nível mais comuns de isolamento.

  • Vários suplementos são carregados para o mesmo domínio do aplicativo em um processo externo.

  • Cada suplemento é carregado exclusivamente em seu próprio domínio do aplicativo em um processo externo.Esse é o cenário mais isolado.

Para obter mais informações sobre o uso de processos externos, consulte Como: Ativar suplementos com isolamento diferente e níveis de segurança.

Gerenciamento de tempo de vida

Como o modelo de suplemento ultrapassar os limites de domínio e o processo de aplicativo, coleta de lixo por si só não é suficiente para liberar e recuperar objetos.O modelo de suplemento fornece um mecanismo de gerenciamento de tempo de vida que usa tokens e contagem de referência e geralmente não requer programação adicional.Para obter mais informações, consulte Gerenciamento de tempo de vida.

Fazer distinção entre os suplementos e hosts

A diferença entre um suplemento e um host é simplesmente que o host é o que ativa o suplemento.O host pode ser o maior dos dois, sistema autônomo um palavra processamento do host e seus corretores ortográficos; ou aplicativo pode ser o menor dos dois, sistema autônomo um cliente de sistema de sistema sistema de mensagens instantâneas que incorpora um mídia player.O modelo de suplemento suporta suplementos em cenários de cliente e servidor.São exemplos de suplementos do servidor de suplementos que fornecem servidores de email com verificação de vírus, filtros de spam e proteção de IP.Cliente suplemento exemplos suplementos de referência para os processadores de texto, recursos especializados para programas gráficos e jogos e verificação de vírus de clientes de email locais.

Consulte também

Conceitos

Domínios de Aplicativos e Assemblies

Outros recursos

Suplementos e extensibilidade