¿Qué significa el objeto COM?

9

¿Qué es? Según tengo entendido, es una especie de tecnología especial de Microsoft para algunos objetos. ¿Pero qué exactamente?

Sergey
fuente

Respuestas:

3

Básicamente es una tecnología antigua utilizada para escribir programas en el entorno de Windows. Es grande y complejo y no fue agradable de administrar / apoyar. El marco .NET es su reemplazo.

Morgan T.
fuente
1
¿No se utilizan objetos COM en .NET framework?
Sergey
3
Se pueden llamar desde .NET, pero son un sistema completamente diferente. Se llama COM Interop. Puede explorarlos un poco en su computadora, en Panel de control >> Herramientas administrativas >> Servicios de componentes.
Morgan T.
2
COM no irá a ninguna parte en el corto plazo. Es ampliamente utilizado por los propios productos de Microsoft. Por lo tanto, creo que es un poco engañoso que lo llames "básicamente una tecnología antigua". Sí, se introdujo por primera vez a principios de los 90, por lo que técnicamente es "antiguo" en el sentido de que ha existido hace un tiempo, pero debe tener cuidado de no indicar que está obsoleto o desactualizado.
Cody Gray
12

Un objeto COM es básicamente un cuadro negro que implementa alguna interfaz conocida. También puede registrarse en Windows para que los programas puedan obtenerlo.

Por ejemplo, digamos que hay alguna interfaz ICalculator, que escribo mi programa para usar. Ahora puedo intercambiar cualquier objeto, escrito en cualquier lenguaje de programación (ya que es una interfaz binaria) que implementa ICalculator. Luego, en tiempo de ejecución, puedo proporcionar algún tipo de opción a mis usuarios para que puedan elegir usar el FooCorpCalculatorobjeto COM, escrito en Python, o tal vez si necesitan más velocidad pueden elegir un NinjaCalculatorescrito en C. El punto es que escribo que mi programa dependa de una interfaz, no de una implementación, y luego elija usar el objeto COM real que implementa la interfaz más tarde.

Hay mucho más, por supuesto, pero ese puede ser un ejemplo que lo haga más concreto para usted.

dsolimano
fuente
4

Ver este artículo de Wikipedia: Modelo de objetos componentes

Component Object Model (COM) es un estándar de interfaz binaria para componentes de software introducido por Microsoft en 1993. Se utiliza para permitir la comunicación entre procesos y la creación de objetos dinámicos en una amplia gama de lenguajes de programación. El término COM se usa a menudo en la industria de desarrollo de software de Microsoft como un término general que abarca las tecnologías OLE, OLE Automation, ActiveX, COM + y DCOM.

Un objeto COM a menudo se implementa en un archivo DLL. Pueden ser utilizados por programas para una variedad de funciones. El término "objeto", como se usa aquí, se refiere a objetos en la programación orientada a objetos .

bwDraco
fuente
1
Por eso hice esta pregunta. porque la Wikipedia no lo respondió. La definición es muy abstracta y no veo ningún ejemplo real.
Sergey
1

COM es un conjunto de tecnologías específicas de Windows para permitir la reutilización del código y la interoperabilidad, principalmente en el nivel del binario (no necesariamente en el nivel del código fuente).

A principios de la década de 1990, Bill Gates no permitió que el equipo de desarrollo de Powerpoint implementara un propio subsistema de gráficos para el producto Powerpoint, porque Microsoft ya tenía Excel. Entonces desarrollaron una especificación para permitir que sus productos internos intercambien datos y llamen a las demás funciones. Microsoft generalizó estas API, las publicó y muchas más pautas de diseño de código.

Ver este video de 2006: Tony Williams: Co-inventor de COM

Creo que ahora, en 2012, COM sigue siendo el núcleo de WMI y Office.

knb
fuente