O que significa o objeto COM?

9

O que é isso? Pelo que entendi, é um tipo de tecnologia especial da Microsoft para alguns objetos. Mas o que exatamente?

Sergey
fonte

Respostas:

3

É basicamente uma tecnologia antiga usada para escrever programas no ambiente Windows. É grande e complexo e não era agradável de gerenciar / dar suporte. A estrutura .NET é sua substituição.

Morgan T.
fonte
1
objetos COM não são usados ​​no .NET framework?
Sergey
3
Eles podem ser chamados do .NET, mas são um sistema completamente diferente. Chama-se COM Interop. Você pode explorá-los um pouco no seu computador - em Painel de Controle >> Ferramentas Administrativas >> Serviços de Componentes.
Morgan T.
2
O COM não chegará a lugar algum tão cedo. É amplamente utilizado pelos produtos da Microsoft. Eu acho, portanto, um pouco enganador que você chame de "basicamente uma tecnologia antiga". Sim, foi introduzido pela primeira vez no início dos anos 90, portanto tecnicamente é "antigo" no sentido de que já existe há algum tempo, mas você precisa tomar cuidado para não indicar que está obsoleto ou desatualizado.
Cody Grey
12

Um objeto COM é basicamente uma caixa preta que implementa alguma interface conhecida. Ele também pode se registrar no Windows para que os programas possam acessá-lo.

Por exemplo, digamos que exista alguma interface ICalculatorque eu escreva meu programa para usar. Agora posso trocar qualquer objeto, escrito em qualquer linguagem de programação (já que é uma interface binária) que implementa ICalculator. Então, em tempo de execução, posso fornecer algum tipo de opção aos meus usuários, para que eles possam usar o FooCorpCalculatorobjeto COM, escrito em Python, ou talvez, se precisarem de mais velocidade, possam escolher um NinjaCalculatorescrito em C. O ponto é: eu escrevo meu programa depende de uma interface, não de uma implementação e, em seguida, opte por usar o objeto COM real que implementa a interface posteriormente.

Há muito mais, é claro, mas esse pode ser um exemplo que a torna mais concreta para você.

dsolimano
fonte
4

Veja este artigo da Wikipedia: Modelo de Objeto Componente

O Component Object Model (COM) é um padrão de interface binária para componentes de software introduzido pela Microsoft em 1993. É usado para permitir a comunicação entre processos e a criação dinâmica de objetos em uma grande variedade de linguagens de programação. O termo COM é frequentemente usado no setor de desenvolvimento de software da Microsoft como um termo abrangente que abrange as tecnologias OLE, OLE Automation, ActiveX, COM + e DCOM.

Um objeto COM geralmente é implementado em um arquivo DLL. Eles podem ser usados ​​por programas para uma variedade de funções. O termo "objeto", conforme usado aqui, refere-se a objetos na programação orientada a objetos .

bwDraco
fonte
1
foi por isso que fiz essa pergunta. porque a Wikipedia não respondeu. A definição é muito abstrata e não vejo nenhum exemplo real.
Sergey
1

O COM é um conjunto de tecnologias específicas do Windows para permitir a reutilização e a interoperabilidade do código, principalmente no nível do binário (não necessariamente no nível do código-fonte).

No início dos anos 90, Bill Gates não permitiu que a equipe de desenvolvimento do Powerpoint implementasse um subsistema de gráficos próprio para o produto Powerpoint, porque a Microsoft já possuía o Excel. Então, eles desenvolveram uma especificação para permitir que seus produtos internos trocassem dados e chamassem as funções uns dos outros. A Microsoft generalizou essas APIs, as publicou e muito mais diretrizes de design de código.

Veja este vídeo de 2006: Tony Williams: co-inventor da COM

Acho que agora em 2012, o COM ainda está no centro do WMI e do Office.

knb
fonte