COM (Component Object Model)
COM (Component Object Model) - Resumo para Concursos
Definição e Objetivo
COM (Component Object Model) é um padrão de arquitetura de software da Microsoft para criação de componentes binários reutilizáveis. Seu objetivo é permitir a interoperabilidade entre linguagens e processos, seguindo o paradigma de orientação a objetos.
Principais Características
- Binário: Componentes são distribuídos como código binário (não fonte)
- Reutilização: Permite "montar" aplicações com componentes independentes
- Interoperabilidade: Componentes podem ser escritos em diferentes linguagens
- Local/Remoto: Funciona tanto localmente (DLLs) quanto remotamente (DCOM)
Conceitos Fundamentais
- Interfaces: Contratos binários com métodos (sem implementação)
- IUnknown: Interface base com métodos QueryInterface, AddRef e Release
- GUIDs: Identificadores únicos globais para interfaces e classes
- HRESULT: Tipo de retorno padrão para tratamento de erros
Vantagens
- Atualização de componentes sem recompilar aplicações
- Integração entre linguagens (ex: C++ e Visual Basic)
- Suporte a versionamento via novas interfaces
Desvantagens
- Complexidade no gerenciamento de referências
- Problemas com "DLL Hell" (conflito de versões)
- Principalmente restrito ao ecossistema Microsoft
Relacionamento com Outras Tecnologias
- DCOM: Extensão para comunicação remota
- COM+: Evolução com serviços adicionais (transações, segurança)
- .NET: Sucessor com CLR, mas mantém interoperabilidade via RCW/CCW