resistente note caracteristicas agua c++ com

c++ - note - razones para elegir com



note 8 caracteristicas (4)

me preguntaba por qué uno elegiría Com como su "tecnología" de desarrollo de software

mi primer sin embargo es machine / programming _language independence

lo que es tuyo ?


La principal ventaja de COM es que es una tecnología de interoperabilidad ampliamente aplicable.

  • COM es muy compatible con Windows sin tener que instalar nada.
  • Ofrece amplias capacidades de interoperabilidad para diversas combinaciones de aplicaciones administradas / no administradas y aplicaciones en diferentes idiomas: al cliente no le importa cómo funciona el servidor y viceversa.
  • Si ya tiene una gran base de código no administrada (como por ejemplo tenemos millones de líneas de código C ++) y desea exponer su funcionalidad a clientes en una variedad de idiomas, COM definitivamente será su elección: ATL hace que la creación de servidores COM sea bastante fácil y los clientes lo harán poder usar sin esfuerzo adicional.
  • No olvide COM + que es excelente si tiene un servidor COM in-proc no administrado de 32 bits y desea exponerlo a un cliente de 64 bits; muchas veces solo necesita varios clics del mouse y no necesita codificar nada. nuevo en absoluto.
  • COM es compatible con los modelos de subprocesamiento (consulte este artículo para obtener más información) que le permiten decidir la escalabilidad que necesita de su componente COM y cuánto está dispuesto a pagar por eso, y ningún cliente podrá usar su componente de forma errónea y sufrir daños debido a acceso concurrente a los datos.

COM es el estándar de facto para la automatización y el IPC en Windows (aunque .Net ha comenzado a cambiar el enfoque), por lo que hay áreas en las que simplemente no tiene (o no tuvo) una opción:

  • Extensiones de caparazón
  • ActiveX crea en COM
  • Extensiones de Internet Explorer
  • extendiendo aplicaciones de MS Office
  • Scriptability para JScript, VBScript, ... con un binario

Antes del evento de .Net, casi toda la automatización de las aplicaciones de MS se hacía a través de COM y algunas firmas también se subían a ese tren.

También DCOM es, si está dispuesto a limitarse a Windows, una tecnología confiable y comprobada para componentes distribuidos.


Como dijo gf, la gente lo usa para la automatización. Además, solo se puede acceder a grandes partes de Windows como objetos COM. DirectX es un ejemplo.


Mi primer pensamiento es - ¡no lo hagas! Si puede mantenerse alejado de COM / DCOM.

Por supuesto, si necesita integrarse con aplicaciones heredadas, no tendrá otra opción, pero incluso entonces, use COM solo para cruzar fronteras gestionadas / no gestionadas.

Si la compatibilidad heredada no es un problema, manténgase administrado. .NET tiene todo lo que COM puede ofrecer y más. Y la complejidad y estabilidad del código .NET no se compara con el código COM equivalente.

He estado trabajando con la integración de Visual Studio por algún tiempo. Originalmente era todo COM, pero MS convierte lentamente varias piezas para gestionar. El nuevo marco Editor basado en MEF reduce la cantidad de código necesario en órdenes de magnitud. Y no te metas con el registro. Que alivio.