team com ole

com - team foundation server 2018 download



¿Cuál es la diferencia entre COM y OLE? (3)

COM es OLE evolucionado. OLE era un conjunto de interfaces y mecanismos de almacenamiento de datos para facilitar el intercambio de datos entre las aplicaciones. COM fue la extensión natural del uso de interfaces no solo para compartir datos, sino también para la funcionalidad en tiempo de ejecución, donde los datos se enfrentaron con mecanismos reales para facilitar su uso. Siempre lo he descrito más o menos como la diferencia entre C y C ++, donde con C, puede compartir archivos de encabezado y estructuras, y con C ++ comparte objetos encapsulados.

Como una especie de tribuna, sigo extrañando OLE Structured Storage, ya que hay algo agradable acerca de compartir el almacenamiento de datos opacos entre los sistemas colaboradores. Al ver que arrastrar y soltar / portapapeles aún depende de él, me pregunto qué será el reemplazo de .Net.

¿Cuál es la diferencia entre COM y OLE, si hay alguno?


La tecnología OLE es anterior a COM como una entidad separada por una cantidad de tiempo significativa. Antes de eso, OLE se implementó como una forma de Incrustar y Vincular Objetos. El ejemplo clásico es el de incrustar una hoja de cálculo dentro de un documento de Word. La tecnología subyacente de COM se habilitó para que otros lenguajes como VB pudieran interactuar también con esos objetos.

Luego, históricamente, teníamos muchos programadores tipo servidor que buscaban cosas geniales como la independencia del lenguaje, el recuento de referencias y el enhebrado de modelos con envidia, pero en realidad no les importaba demasiado la tecnología de incrustación. Lo lógico era dividir la funcionalidad del servidor subyacente como COM: esta era una API de bajo nivel más natural.

Ambas tecnologías todavía existen. OLE está relacionado con o puede ser lo mismo que ActiveX en estos días.


  • OLE = Enlace e incrustación de objetos
  • DDE = Intercambio dinámico de datos
  • COM = Modelo de objetos componentes

OLE: este es un método de vincular partes de un documento a partes de otro. Por ejemplo, tener una diapositiva de PowerPoint con un gráfico de Excel incrustado en ella. Cuando se actualice la hoja de cálculo de Excel, la tabla también debería actualizarse. ¡Cuando vuelves a abrir Powerpoint, mágicamente tiene! (Este ejemplo es un objeto vinculado). Los objetos incrustados son los mismos, solo que la hoja de cálculo de Excel no existe en un archivo externo, los datos de la hoja de cálculo están contenidos en el archivo de PowerPoint.

Puede incrustar Excel, Word y Powerpoint entre sí con objetos vinculados. Otras aplicaciones se escribieron específicamente para admitir que se incrustado en Word, como el Editor de ecuaciones de Microsoft.

OLE 1 se creó en DDE, que utilizaba mensajes de Windows para notificar a las aplicaciones cuando cambiaban los datos de origen, y generalmente pasaba los datos a través de los identificadores de memoria globales HGLOBAL.

OLE 2 se creó en COM.

COM es un modelo de componente orientado a objetos y neutral de lenguaje y ABI basado en DCE RPC. Como sistema RPC, admite llamadas remotas entre procesos en la misma máquina y, más tarde, con DCOM en diferentes máquinas. Inicialmente COM se usó como parte de la arquitectura de MAPI (que usa el modelo de objetos COM pero no los servicios de registro COM) antes de iniciarse formalmente por sí mismo como un modelo de objeto general completo con registro y activación de objetos y otros servicios. (Monikers y almacenamiento estructurado, por ejemplo).

La automatización OLE no tiene nada que ver con OLE, solo es una conexión de marca. Automatización OLE es un subconjunto visual y básico compatible de COM que solo admite tipos de datos básicos (por ejemplo, enteros o estructuras sin signo) pero que incluyen objetos (interfaces COM).

Sin embargo, los controles OLE están relacionados con OLE. Son componentes visuales dirigidos principalmente a los usuarios de Visual Basic desde VB 4 en adelante, pero los elementos visuales se proporcionan usando las funciones de integración de OLE 2. También se pueden alojar (en teoría, si se escriben correctamente) mediante cualquier elemento capaz de albergar un OLE 2 objeto incrustado, y también se usaban a menudo en aplicaciones C ++. Por lo general, utilizan interfaces compatibles con OLE Automation para programar en tiempo de ejecución.

El control ActiveX es un término de marketing para objetos COM, desde el momento en que Microsoft intentaba popularizar la tecnología para extender aplicaciones web.