Risposte:
È fondamentalmente una vecchia tecnologia utilizzata per scrivere programmi in ambiente Windows. È grande e complesso e non è stato divertente gestirlo / supportarlo. Il framework .NET è il suo sostituto.
Un oggetto COM è fondamentalmente una scatola nera che implementa alcune interfacce note. Può anche registrarsi con Windows in modo che i programmi possano bloccarlo.
Ad esempio, supponiamo che ci sia qualche interfaccia ICalculator
che scrivo per usare il mio programma. Ora posso scambiare qualsiasi oggetto, scritto in qualsiasi linguaggio di programmazione (poiché si tratta di un'interfaccia binaria) che implementa ICalculator
. Quindi in fase di esecuzione, posso fornire una sorta di opzione ai miei utenti in modo che possano scegliere di utilizzare l' FooCorpCalculator
oggetto COM, scritto in Python, o forse se hanno bisogno di più velocità possono scegliere uno NinjaCalculator
scritto in C. Il punto è che scrivo il mio programma dipende da un'interfaccia, non da un'implementazione, e quindi sceglie di utilizzare l'oggetto COM effettivo che implementa l'interfaccia in un secondo momento.
C'è molto di più, ovviamente, ma potrebbe essere un esempio che lo rende più concreto per te.
Vedi questo articolo di Wikipedia: Component Object Model
Component Object Model (COM) è uno standard di interfaccia binaria per la componentistica software introdotto da Microsoft nel 1993. Viene utilizzato per consentire la comunicazione tra processi e la creazione dinamica di oggetti in una vasta gamma di linguaggi di programmazione. Il termine COM viene spesso utilizzato nel settore dello sviluppo software Microsoft come termine generico che comprende le tecnologie OLE, OLE Automation, ActiveX, COM + e DCOM.
Un oggetto COM è spesso implementato in un file DLL. Possono essere utilizzati dai programmi per una varietà di funzioni. Il termine "oggetto" qui utilizzato si riferisce agli oggetti nella programmazione orientata agli oggetti .
COM è un insieme di tecnologie specifiche di Windows per consentire il riutilizzo e l'interoperabilità del codice, principalmente a livello del binario (non necessariamente a livello del codice sorgente).
All'inizio degli anni '90 Bill Gates non consentiva al team di sviluppo di Powerpoint di implementare un proprio sottosistema di creazione di grafici per il prodotto Powerpoint, poiché Microsoft aveva già Excel. Quindi hanno sviluppato una specifica per consentire ai propri prodotti interni di scambiare dati e chiamare funzioni reciproche. Microsoft ha generalizzato queste API, le ha pubblicate e molte più linee guida per la progettazione del codice.
Guarda questo video del 2006: Tony Williams: co-inventore di COM
Penso che ora nel 2012 COM sia ancora al centro di WMI e Office.