Partilhar via


Diretrizes para a criação de assemblies lado a lado

As diretrizes a seguir discutem como criar os seus próprios assemblies lado-a-lado COM ou Win32. Talvez não seja necessário criar seus próprios assemblies lado a lado se a funcionalidade necessária for fornecida por um dos assemblies lado a lado da Microsoft com suporte. Nesse caso, use os conjuntos fornecidos pela Microsoft e siga os procedimentos para utilizar conjuntos paralelos em Usando aplicativos isolados e conjuntos paralelos.

Primeiro, considere se o seu componente é um candidato adequado para uma montagem lado a lado. Para obter mais informações, ver Deve fornecer um componente partilhado como uma implementação lado a lado?

Para criar uma montagem lado a lado, siga estas diretrizes:

  • Decida quais recursos incluir na montagem. Lembre-se de que um conjunto consiste em um ou mais arquivos que são sempre entregues a aplicações e clientes em conjunto. O assembly serve como a unidade fundamental usada para nomear, vincular, versionar, implantar e configuração padrão. Como regra geral, quando não se sabe se dois recursos pertencem ao mesmo assembly, recomenda-se que eles sejam criados para entrar em assemblies separados. Normalmente, um assembly lado a lado consiste em uma única DLL.
  • Crie um assembly manifesto para o assembly. O manifesto deve descrever o objeto COM ou as bibliotecas de tipos na montagem. Para obter mais informações sobre o que deve ser incluído em um manifesto de assembly, consulte assembly manifests.
  • Avalie o uso de objetos quando mais de uma versão do assembly for executada no sistema. Determine se versões diferentes do assembly exigem estruturas de dados separadas, como arquivos mapeados em memória, pipes nomeados, mensagens e classes registradas do Windows, memória compartilhada, semáforos, mutexes e drivers de hardware. Todas as estruturas de dados usadas em versões de assembly devem ser versões compatíveis com versões anteriores. Decida quais estruturas de dados podem ser usadas entre versões e quais estruturas de dados devem ser privadas para uma versão. Determine se as estruturas de dados compartilhadas exigem objetos de sincronização separados, como semáforos e mutexes.
  • Elabore a sua DLL para funcionar corretamente como um agrupamento paralelo, aderindo às diretrizes em Elaboração de uma DLL para um agrupamento paralelo.
  • Crie um conjunto de ficheiros de cabeçalho e funções auxiliares para fornecer um método fácil de versionar chaves do registo que contêm o estado do assembly. Os assemblies geralmente salvam suas configurações de estado em chaves do Registro. As configurações do Registro devem ser gravadas em uma base de versão individual para isolar várias versões de assembly que podem ser executadas ao mesmo tempo. Projete o seu assembly e DLL lado a lado para armazenar e manipular corretamente o estado do assembly durante cenários de partilha lado a lado. Siga as diretrizes em Armazenamento de estado de criação para assemblies lado a lado.
  • Os desenvolvedores de aplicativos que usam assemblies privados devem proteger o diretório do aplicativo. Se o aplicativo for instalado usando o Windows Installer, o diretório do aplicativo poderá ser protegido usando a tabela LockPermissions. Normalmente, o sistema recebe acesso de leitura, gravação e execução a assemblies privados; todos os outros processos recebem apenas acesso de leitura e execução.
  • Teste a montagem usando cenários com compartilhamento lado a lado para garantir que ela seja uma montagem lado a lado válida. A instalação bem-sucedida do conjunto não é suficiente para garantir que ele funcionará conforme o esperado.
  • Adote um método para numerar atualizações para sua montagem. Cada montagem está associada a um número de versão composto por quatro partes. Da esquerda para a direita, as partes principais, menores, de construção e de revisão são separadas por pontos. Altere o número principal ou menor de um assembly para uma versão incompatível com versões anteriores. Altere apenas as partes de compilação e revisão para alterações compatíveis com versões anteriores da montagem. Por exemplo, um desenvolvedor pode adotar um método de numeração no qual todos os números de versão 1.0.0.* se referem a versões de atualização para a versão assembly 1.0.0.0.