回答:
これは基本的に、Windows環境でプログラムを作成するために使用されている古いテクノロジーです。それは大きくて複雑であり、管理/サポートするのが面白くありませんでした。.NETフレームワークはその代わりです。
COMオブジェクトは基本的に、既知のインターフェイスを実装するブラックボックスです。また、プログラムをWindowsに登録して、プログラムがそれを取得できるようにすることもできます。
たとえば、ICalculator
使用するプログラムを作成するためのインターフェイスがあるとします。これで、を実装する任意のプログラミング言語で記述されたオブジェクト(バイナリインターフェースであるため)を入れ替えることができますICalculator
。その後、実行時に、ユーザーFooCorpCalculator
にPythonで記述されたCOMオブジェクトの使用を選択できるように、またはおそらくより高速が必要な場合NinjaCalculator
はCで記述されたものを選択できるように、ユーザーに何らかのオプションを提供できます。ポイントは、私のプログラムは、実装ではなくインターフェイスに依存し、後でインターフェイスを実装する実際のCOMオブジェクトを使用することを選択します。
もちろん他にもたくさんありますが、それはあなたにとってより具体的な例になるかもしれません。
このウィキペディアの記事を参照してください:コンポーネントオブジェクトモデル
コンポーネントオブジェクトモデル(COM)は、1993年にMicrosoftによって導入されたソフトウェアコンポーネントのバイナリインターフェイス標準です。これは、幅広いプログラミング言語でプロセス間通信と動的オブジェクト作成を可能にするために使用されます。COMという用語は、Microsoftソフトウェア開発業界では、OLE、OLEオートメーション、ActiveX、COM +、およびDCOMテクノロジを包括する包括的な用語としてよく使用されます。
多くの場合、COMオブジェクトはDLLファイルに実装されます。これらは、プログラムでさまざまな機能に使用できます。ここで使用される「オブジェクト」という用語は、オブジェクト指向プログラミングにおけるオブジェクトを指します。
COMは、主にバイナリのレベル(必ずしもソースコードのレベルではない)でのコードの再利用と相互運用を可能にするWindows固有のテクノロジのセットです。
1990年代初頭、ビルゲイツは、パワーポイント開発チームがパワーポイント製品用の独自のチャートサブシステムを実装することを許可しませんでした。MicrosoftにはすでにExcelがあったからです。そこで、自社製品がデータを交換し、相互に関数を呼び出すことができるようにする仕様を開発しました。マイクロソフトはこれらのAPIを一般化し、公開し、さらに多くのコード設計ガイドラインを公開しました。
2006年のこのビデオを見る:トニーウィリアムズ:COMの共同発明者
2012年現在、COMはWMIとOfficeの中核にあると思います。