Tengo problemas para entender XPCOM. ¿Cómo es diferente de COM?
XPCOM es la versión multiplataforma (de ahí el XP
bit) de COM de Mozilla.
¿Qué lo hace cruzar la plataforma?
Se implementa en una biblioteca que ha sido portada a muchas plataformas por los contribuyentes al proyecto de código abierto Mozilla. Puedes construirlo o descargar un archivo binario para cualquier plataforma que desees y, en la remota posibilidad de que quieras utilizarlo en una plataforma que aún no es compatible, debería ser sencillo abrirlo tú mismo.
Además, hace Component Object Model significa que cada funcionalidad se implementa en el componente así que podemos usar sin conocer los detalles aplicación?
Sí, mancha. La idea es un marco independiente del lenguaje que permita que diferentes componentes se comuniquen e interactúen, sin requerir ningún conocimiento especial del idioma en el que se implementa ningún componente en particular. Por lo tanto, el código de JavaScript puede invocar el código C++, por ejemplo.
Esto se logra con componentes que publican interfaces bien definidas, usando un lenguaje llamado IDL (o, en el caso de XPCOM, XPIDL). Estas interfaces hacen uso de tipos bien definidos con asignaciones en cada uno de los idiomas de soporte. Cada interfaz hereda de una interfaz base común, que proporciona métodos estándar para el recuento de referencias y la inferencia de tipos (llamada IUnknown
en COM y nsISupports
en XPCOM).
¿Alguien me puede ayudar a entender esto por favor?
En cuanto a los recursos en línea, hay zonas dedicadas tanto en el MSDN (for COM) y la MDC (for XPCOM). Si realmente quiere entender la motivación de COM y por qué es así, le recomiendo que elija Don BoxEssential COM. Y, por supuesto, si tiene preguntas específicas que necesitan respuesta, siempre puede venir aquí para preguntarlas. :)