2009-06-05 19 views
10

Soy un recién graduado con una licenciatura en Ciencias de la Computación. Como la mayoría de la escuela hoy en día, ya no enseñan a los estudiantes C o C++ avanzado (solo un curso introductorio en C++ ... Con lecciones hasta punteros). El lenguaje de programación estándar prescrito en el plan de estudios es C# (.NET stack).Quiero aprender COM. ¿Cómo debo proceder?

Recientemente, me contrataron como desarrollador de software junior. El 95% de nuestra base de código está en C++ y nuestros productos utilizan COM/DCOM. El otro 5% está en .NET. Mi responsabilidad actual es mantener un proyecto escrito en .NET (ASP.NET) y aún no estoy obligado a estudiar C++ y otras tecnologías. Pero quiero aprender COM lo más pronto posible para poder ayudar en otros proyectos.

Así que estoy buscando el consejo de esta comunidad sobre cómo puedo aprender COM. Mis preguntas actuales son las siguientes:

  1. ¿Alguna lectura obligatoria? (Temas de prerrequisitos)
  2. ¿Un buen sitio para aprender los conceptos básicos de COM?
  3. Un tipo de programa simple de apreciar realmente el "fin" de COM (Un programa de chat, tal vez?)

Gracias! :)

PD: ¿Debo marcar esto como wiki de la comunidad?

+2

Sólo recuerde que hay una buena razón por la cual se produjeron alternativas a COM. Haga una búsqueda en "DLL Hell" ... – RobS

+2

Solo quería agregar que la mayoría de las escuelas no enseñan solo la pila MS. Muchos todavía enseñan en C/C++/Java. –

+1

@Rob: Sí. Pero la mayoría de las compañías hoy todavía usan COM. Entonces es bueno aprenderlo. @Bob: Sí. Algunas universidades aquí enseñan Java. – Ian

Respuesta

7

El libro de Don Box sobre COM es la referencia definitiva. Amazon link.

Cuidado es una lectura difícil, pero cubre todo en profundidad. Y recuerda, como Don dijo ... COM IS LOVE.

No creo que puedas encontrar un montón de sitio web, COM era una tecnología actualizada hace mucho tiempo, pero si puedes olvidarte de eso créeme ... ¡es mejor!

+2

Acepto completamente. En este libro (Essential COM), especialmente el primer capítulo merece la pena leerlo, porque explica los conceptos y las razones detrás de COM. Si entiendes eso por completo, el resto no es tan difícil ... –

+0

Acabo de verificar y tenemos este libro (Es un libro VIEJO) en nuestra biblioteca. :) ¡Gracias! – Ian

+1

Puede descargar el capítulo 1 de forma gratuita, por ejemplo desde: http://www.informit.com/content/images/0201634465/samplechapter%5Cchap01.pdf –

1

Recomendaría el libro ATL Internals, puede ser un poco viejo, pero le enseñará los fundamentos básicos de COM. Como comentó el póster, el Don Box también es bueno.

+0

No estoy de acuerdo. Este libro fue excelente para entender los fundamentos de cómo funciona ATL * internamente *. Descubrí que distraerme de comprender cómo usar ATL (y mucho menos COM en general). No abriría este libro hasta que comprenda algunos fundamentos. – Aardvark

+0

Antes de leer este libro, no sabía nada sobre COM. Me enseñó ATL y COM. ¿Tal vez debería recomendarse a un buen programador que tenga una sólida comprensión de los paradigmas de programación? –

0

Es obvio, pero ¿ha visitado microsoft site for COM? Así es como empecé, luego busqué información en Google cuando me quedé con algo (que era mucho, COM es desagradable en algunos puntos). También les pregunté mucho a mis compañeros de trabajo, nada mejor que la explicación cara a cara sobre algún vudú que se puede ver en el código

+0

En la medida de lo posible, quiero mantenerme alejado de MSDN ya que implica una discusión realmente técnica. (Al menos por ahora) – Ian

+1

lo que sea que quieras decir con eso, creo que msdn es la primera fuente de información sobre cualquier cosa hecha por MS, obtienes historia detrás, referencia de API, muestras ... y luego puedes buscar en Google porque sabes qué para ingresar en el cuadro de texto de búsqueda :) – grapkulec

2

Lea el libro de Don Box para saber todo lo que pueda desear (y olvidar) sobre COM .

En cuanto a la finalidad de COM: Mientras que C++ (fuente) da código reutilización, COM le da (compilado) componente reutilización.

+0

Si compilo algo en un archivo DLL y le digo a todos que lo copien en su máquina, se lo considera como un componente de compilación "compilado" ¿no? – Ian

+1

a la derecha, excepto que COM va un poco más allá (polimorfismo basado en interfaz, recuento de referencias para administración de memoria, etc.) –

9

Para aprender las ideas básicas detrás de COM, nunca me he encontrado nada mejor que Inside COM por Dale Rogerson. Este es un libro antiguo, pero explica muy claramente por qué se necesita COM y cómo se implementa, y puede recoger una copia de segunda mano en Amazon.

En cuanto a los libros de Don Box, los he leído todos y creo que son bastante pobres. Box neverr explica la motivación del código que describe y utiliza ejemplos profundamente poco realistas. Pero me doy cuenta de que esta es una opinión minoritaria.

+1

He recomendado este libro varias veces en SO. ¡Este es el lugar para comenzar Ian! – Aardvark

8

que tengo en mi biblioteca estos libros en COM que recomiendo:

  1. 1995 - Kraig Brockshmidt - Inside OLE 2ª edición
  2. 1998 - Don Box - COM esencial
  3. 1999 - George Pastor - Dentro de ATL
  4. 2000 - Andrew Troelsen - desarrollador de taller a COM y ATL 3.0
  5. 2006 - Christopher Tavares - ATL Internos: Trabajar con ATL 8, 2ª edición

y si usted dice que tiene algunos antecedentes .NET está el

  1. 2003 - Julian Templeman - Programación COM con Microsoft .NET

Espero que esto ayude.

+0

Inside OLE2 es bueno, pero es un monstruo. – Aardvark

2

Algunos libros clásicos ya mencionados aquí. También incluiré Diseño de aplicaciones basadas en componentes por Mary Kirtland.

Es antiguo (como se menciona la mayoría de los títulos mencionados), y está dirigido principalmente a desarrolladores de empresas. Tiene una buena visión general de COM sin adentrarse demasiado en las malas hierbas, habla sobre el desarrollo de 3 niveles, analiza MTS (el libro es anterior a COM +) y sus usos. También habla sobre el diseño de componentes de datos y negocios, y camina a través del desarrollo de una aplicación de muestra.

No estoy seguro de qué tan bien ha envejecido, pero recuerdo que hace 10 años fue una gran introducción al mundo de COM. La fuerza del libro es que asume que no sabes nada sobre el tema. Equilibra muy bien la teoría con implementaciones prácticas en una progresión lógica. Creo que también hay algo de ASP (clásico) allí ... así que por el amor de todo lo que es santo omita esa parte. :)

Recuerdo que el Dr. GUI tenía algunos excelentes artículos COM (por ejemplo, la GUÍA suave del Dr. GUI para COM) pero no pudo rastrearlos.

2

Hay un montón de contenido disponible en línea en MSDN :-)

  1. Para Entender COM http://msdn.microsoft.com/en-us/library/windows/desktop/ms680573(v=vs.85).aspx

  2. Para utilizar COM http://msdn.microsoft.com/en-us/library/windows/desktop/ms690156(v=vs.85).aspx

Después de leer estos siguen este tutorial para desarrollar un proyecto completo de muestra de extremo a extremo.

http://www.codeguru.com/cpp/com-tech/activex/tutorials/article.php/c5567/Step-by-Step-COM-Tutorial.htm

Cuestiones relacionadas