Add-ins e extensibilidade

Add-ins fornecem recursos estendidos ou serviços para um aplicativo host. O .NET Framework fornece um modelo de programação que os desenvolvedores podem usar para desenvolver o add-ins e ativá-las em seus aplicativos de host. O modelo consegue isso criando um pipeline de comunicação entre o host e o suplemento. O modelo é implementado usando os tipos de System.AddIn, System.AddIn.Hosting, System.AddIn.Pipeline, e System.AddIn.Contract namespaces.

Esta visão geral contém as seções a seguir:

  • Modelo de suplemento

  • Fazer distinção entre Hosts e suplementos

  • Tópicos relacionados

  • Referência

Observação

Você pode encontrar o código de exemplo adicionais e customer technology previews das ferramentas para construção suplemento tubulações, na site extensibilidade gerenciada e a estrutura de suplemento no CodePlex.

Modelo de suplemento

O modelo de suplemento consiste em uma série de segmentos que compõe o suplemento pipeline (também conhecido como o pipeline de comunicação), que é responsável por toda a comunicação entre o add-in e o host. O pipeline é um modelo de comunicação simétricos dos segmentos de trocar dados entre um add-in e o seu host. Desenvolver esses segmentos entre o host e o suplemento fornece necessárias camadas de abstração que dão suporte a versões e o isolamento de suplemento.

A ilustração a seguir mostra o pipeline.

Suplemento de pipeline

Modelo de pipeline de suplementos.

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

O modelo de suplemento oferece suporte à e recomenda, um limite opcional entre o host e o suplemento, que é chamado de limite de isolamento (também conhecido como um limite de remoting). Esse limite pode ser um limite de processo ou de domínio de aplicativo.

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

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

Os 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 dos métodos que compartilhem, conforme definido pelo contrato.

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

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

Versionamento independente

O modelo de suplemento permite hosts e suplementos para a versão independente. Como resultado, o modelo de suplemento permite os seguintes cenários:

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

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

  • Criação de 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 add-in 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-se para o tipo que define o modo de exibição do host do add-in. Você também pode encontrar um add-in específico pelo tipo que define o add-in. 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 add-ins, consulte Ativação de suplemento e Como: Ativar suplementos com níveis de segurança e isolamento de diferente.

Níveis de isolamento e de processos externos

O modelo de suplemento oferece suporte a vários níveis de isolamento entre um add-in e o seu host ou add-ins. Partindo de menos isolado, esses níveis são:

  • O suplemento é executado no mesmo domínio de aplicativo do host. Isso não é recomendado porque você perde o isolamento e o descarregamento de recursos que você obtém ao usar diferentes domínios de aplicativo.

  • Vários suplementos são carregados no mesmo domínio de aplicativo é diferente do usado pelo host de domínio de aplicativo.

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

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

  • Cada suplemento é carregado exclusivamente em seu próprio domínio de 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 níveis de segurança e isolamento de diferente.

Gerenciamento da vida útil

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

Voltar ao topo

Fazer distinção entre Hosts e suplementos

A diferença entre um suplemento e um host é simplesmente que o host é o que ativa o add-in. O host pode ser o maior dos dois, como, por exemplo, um aplicativo de processamento de texto e de seus corretores ortográficos; ou o host pode ser o menor dos dois, como, por exemplo, um cliente de mensagens instantâneas que incorpora um media player. O modelo de suplemento oferece suporte a suplementos em cenários de cliente e o servidor. Os suplementos do servidor exemplos de suplementos que fornecem os servidores de email com verificação de vírus, filtros de spam e proteção de IP. Exemplos de suplemento do cliente incluem suplementos de referência para os processadores de texto a recursos especializados para programas gráficos, jogos e antivírus para clientes de e-mail local.

Voltar ao topo

Tópicos relacionados

Título

Descrição

Desenvolvimento de pipeline

Descreve o pipeline de comunicação dos segmentos do aplicativo host do add-in. Fornece exemplos de código nos tópicos de explicação passo a passo que descrevem como construir o pipeline e como implantar os segmentos no pipeline em Visual Studio.

Descoberta de suplemento

Descreve como tornar o add-ins detectável por aplicativos de host.

Ativação de suplemento

Descreve como ativar e desativar add-ins.

Suplemento de desempenho

Descreve como usar o carregamento de assembly de domínio neutro e imagens nativas para melhorar o desempenho do suplemento.

Como: Ativar suplementos com níveis de segurança e isolamento de diferente

Descreve como ativar suplementos em uma variedade de cenários de nível de segurança, o processo e o domínio de aplicativo.

Como: Usar dados de qualificação

Descreve como aplicar e acessar dados personalizados atribuídos aos suplementos e segmentos de pipeline.

Experiência do desenvolvedor de suplemento

Descreve como desenvolver um suplemento para usar os segmentos necessários do pipeline add-in.

Domínios de Aplicativos e Assemblies

Descreve o relacionamento entre domínios de aplicativo, que fornecem um limite de isolamento de segurança, confiabilidade e versionamento e assemblies.

Voltar ao topo

Referência

System.AddIn

System.AddIn.Contract

System.AddIn.Hosting

System.AddIn.Pipeline

Voltar ao topo