2009-12-20 16 views
6

Ultimamente ho sentito parlare molto della COM nel mio lavoro. Ho anche imparato che COM è vecchia. COM è deprecato. Non c'è futuro per COM. Anche questi sono veri?Perché dovrei imparare COM?

Voglio imparare COM perché voglio sapere qual è il grande clamore su di esso, ma non sono in grado di convincermi che questo è un motivo valido per spendere così tanto tempo e impararlo.

Quindi, Nessuno può dirmi:

  1. Perché dovrei imparare COM?
  2. Una volta che imparo COM cosa posso fare usandolo? Intendo le sue applicazioni.
+3

Hai mai utilizzato MS Word e inserito un'immagine nel documento? Se è così, stai usando COM. –

risposta

8

Proprio non vedo COM in corso in qualsiasi momento presto. Se vuoi essere un esperto di Windows, devi capire come funziona.

4

Learning COM (o almeno di essere au fait con i suoi concetti) significa che è possibile integrare con migliaia di componenti esistenti, tra cui Microsoft Word ed Excel.

Io lavoro in gran parte nel dominio Java, ma avendo una scarsa conoscenza di COM significa che posso interfacciare efficacemente con Word ed Excel (in particolare) per creare/leggere programmi in modo programmatico. Non ho una conoscenza approfondita, ma ne ho un po ', e avendo questo aumenta notevolmente la mia produttività.

4

Dovresti imparare abbastanza su COM per sapere che non vuoi saperne di più.

I dettagli di COM, in particolare da un'applicazione multithread o C++, sono estremamente irritanti e non vorrei augurarli a nessuno (non li conosco personalmente, ma ne so abbastanza per saperlo).

Pertanto, se è necessario chiamare una libreria COM, è necessario acquisire una quantità sufficiente di COM per poterlo fare, quindi interrompere. Idealmente, usa un linguaggio come C# o Delphi dove alcuni (o si spera la maggior parte) dei dettagli sono gestiti in modo relativamente trasparente.

Ci sono molte librerie COM in giro, ma se pensi di volerne usare una, dovresti dare un'occhiata alla sua documentazione specifica su come fare questo - probabilmente ha un ragionevole esempio che puoi semplicemente adattarti per il tuo utilizzare senza troppi sforzi. Se così non fosse, allora chiaramente non è molto buono e non dovrebbe essere usato.

+0

Suoni atrocemente irritanti per iperbolici. COM appartamenti (sto assumendo che sia quello che stai ricevendo dal commento multi-thread) e il marshalling non sono complessi, specialmente se ti prendi il tempo per leggere le giuste risorse. Inoltre, in C++ puoi usare l'ATL come strato di astrazione per nascondere la maggior parte delle cose di materiale sintetico. –

+0

Abbastanza giusto, forse lo stavo esagerando. Ma è ancora più bello non doversi preoccupare di loro :) – MarkR

4

COM è senz'altro la pena di imparare almeno ad un certo livello se sei uno sviluppatore di Windows. Un altro caso comune per il suo utilizzo, oltre agli altri già citati, è l'implementazione di binary behaviors e BHOs per Internet Explorer. Sono entrambi implementati usando le interfacce COM tra IE e il tuo codice.

Vorrei anche consigliare un paio di risorse per l'apprendimento COM:

  1. Don Box di Essential COM. È un'eccellente descrizione del perché COM è così com'è e ti aiuta davvero a capire meglio cosa sta succedendo. Se ti prendi il tempo di leggere questo libro, allora avrai una comprensione fondamentale degli interni di COM che ti serviranno molto bene.
  2. Questi due articoli: {1, 2} ... sono una buona discussione sul particolare argomento degli appartamenti COM, alluso a "irriducibilmente irritante" (ingiustamente, imho) nella risposta di MarkR.
+0

Il primo capitolo di Essentail COM offre una panoramica generale del problema che la COM sta cercando di risolvere: vale sicuramente la pena leggerlo anche se si sfoglia il resto del libro. –