Respostas:
É 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.
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 ICalculator
que 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 FooCorpCalculator
objeto COM, escrito em Python, ou talvez, se precisarem de mais velocidade, possam escolher um NinjaCalculator
escrito 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ê.
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 .
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.