Introdução à interoperabilidade COM (Visual Basic)

O COM (Component Object Model) permite que um objeto exponha a funcionalidade dele a outros componentes e aplicativos host. Embora os objetos COM tenham sido fundamentais para a programação do Windows por muitos anos, os aplicativos projetados para o CLR (Common Language Runtime) oferecem muitas vantagens.

Os aplicativos do .NET Framework eventualmente substituirão os desenvolvidos com COM. Até lá, talvez seja necessário usar ou criar objetos COM usando o Visual Studio. A interoperabilidade com COM ou a interoperabilidade COM permite que você use objetos COM existentes durante a transição para o .NET Framework no seu próprio ritmo.

Usando o .NET Framework para criar componentes COM, você pode usar a interoperabilidade COM sem registro. Isso permite controlar qual versão de DLL está habilitada quando mais de uma versão está instalada em um computador e permite que os usuários finais usem XCOPY ou FTP para copiar seu aplicativo para um diretório apropriado nos computadores deles onde ele pode ser executado. Para obter mais informações, consulte Interoperabilidade COM sem Registro.

Código e Dados Gerenciados

O código desenvolvido para o .NET Framework é chamado de código gerenciado e contém metadados usados pelo CLR. Os dados usados por aplicativos .NET Framework são chamados de dados gerenciados porque o runtime gerencia tarefas relacionadas a dados, como alocar e recuperar memória e executar verificação de tipo. Por padrão, o .NET do Visual Basic usa código e dados gerenciados, mas você pode acessar o código não gerenciado e os dados de objetos COM usando assemblies de interoperabilidade (descritos posteriormente nesta página).

Assemblies

Um assembly é o bloco de construção principal de um aplicativo .NET Framework. É uma coleção de funcionalidades que é criada, com versão e implantada como uma única unidade de implementação que contém um ou mais arquivos. Cada assembly contém um manifesto do assembly.

Bibliotecas de Tipos e Manifestos de Assembly

As bibliotecas de tipos descrevem características de objetos COM, como nomes de membros e tipos de dados. Os manifestos de assembly executam a mesma função para aplicativos .NET Framework. Eles contêm informações sobre:

  • Identidade, versão, cultura e assinatura digital do assembly.

  • Arquivos que compõem a implementação do assembly.

  • Tipos e recursos que compõem o assembly. Isso inclui aqueles que são exportados dele.

  • Dependências de tempo de compilação em outros assemblies.

  • Permissões necessárias para que o assembly seja executado corretamente.

Para obter mais informações sobre assemblies e manifestos do assembly, consulte Assemblies no .NET.

Importando e Exportando Bibliotecas de Tipos

O Visual Studio contém um utilitário, o Tlbimp, que permite importar informações de uma biblioteca de tipos para um aplicativo .NET Framework. Você pode gerar bibliotecas de tipos de assemblies usando o utilitário Tlbexp.

Para obter informações sobre Tlbimp e Tlbexp, consulte Tlbimp.exe (Importador de Biblioteca de Tipos) e Tlbexp.exe (Exportador de Biblioteca de Tipos).

Assemblies de Interoperabilidade

Os assemblies de interoperabilidade são assemblies do .NET Framework que fazem a ponte entre o código gerenciado e não gerenciado, mapeando membros de objeto COM para membros .NET Framework gerenciados equivalentes. Os assemblies de interoperabilidade criados pelo .NET do Visual Basic lidam com muitos dos detalhes de trabalhar com objetos COM, como o marshalling de interoperabilidade.

Marshalling de Interoperabilidade

Todos os aplicativos .NET Framework compartilham um conjunto de tipos comuns que permitem a interoperabilidade de objetos, independentemente da linguagem de programação usada. Os parâmetros e os valores retornados de objetos COM às vezes usam tipos de dados que diferem daqueles usados no código gerenciado. O marshalling de interoperabilidade é o processo de empacotamento de parâmetros e retornar valores em tipos de dados equivalentes à medida que eles se movem de e para objetos COM. Para obter mais informações, consulte Marshaling de Interoperabilidade.

Confira também