このページの本文へ

前へ 1 2 次へ

Windows Info 第376回

COM(Component Object Model)は古い技術だが、いまだに現役 あらためて解説する

2023年04月23日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

COMの後継となるのが「.NET Framework」
ただし、今でも現役で使われている

 しかし、COMにはいくつか問題があった。たとえば、機能を追加するなどコンポーネントのバージョンアップをする場合、互換性を保たないと、旧アプリケーションやサードパーティのアプリケーションが動作しない可能性があった。同一のコンポーネントは、1つしか登録できないという制約があり、システムディレクトリにおかれていたため、古いコンポーネントを同梱したアプリケーションが新しいコンポーネントを上書きしてしまう可能性があった。

 COMを使うActiveXも一時は隆盛を極めたが、セキュリティ的な問題が多発し、結果的に制限された形でしか利用できないようになり、後継のEdgeでは廃止されている。

 ネットワークを介してCOMを呼び出せるようにしたものがDCOM(Distributed COM)である。コンポーネントを別のマシンに置き、ネットワークを介して呼び出せるようにしたものだ。このDCOMは、のちに改良されてCOM+と呼ばれるようになった。

 このCOMやCOM+の後継となるのが.NET Framework(やCLR:Common Language Runtime)である。逆に言えば、.NET FrameworkはCOMの問題を解決できるような仕組みとして作られた。しかし、前述のようにCOMを廃止することはできず、.NET Frameworkでは、COMコンポーネントを簡単に扱えるようにしてある。

 .NET Frameworkでは、COMのコンポーネントに対応するものとして「アセンブリ」を定義する。アセンブリには、リフレクションと呼ばれる仕組みがあって、アセンブリが含むクラスやそのメソッド、引数などの情報を調べることができる。アセンブリは、原則、特定のアプリケーション(他のアセンブリ)から呼び出すことが前提となるローカルなものだが、「グローバル・アセンブリキャッシュ」(GAC。Global Assembly Cache)にインストールすることで他のプログラム(アセンブリ)から利用可能になる。

 現在ではソフトウェア開発で、COMコンポーネントを作ることは少なくなったが、Windowsのコンポーネントを呼び出して使うことは結構ある。COMは古い技術だが、いまだに現役と言える。

   

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン