8

WCFよりもコンポーネントを開発するためにCOMを使用する場合に得られる大きな利点は何ですか?WCFではなくCOMでできることはありますか?

4

6 に答える 6

8

いいえ、まだ死んでいませんが、死の床にあります、それは確かです。COMを使用/必要とする多くのレガシーシステムがまだ存在していることがわかります。これにより、COMはあと数年は使用できますが、長期的には使用できなくなります。

WCFに関しては、COMで実行できるものとできないもののいくつかのエッジケースがあるかもしれませんが、さらに重要なことに、レガシーのものに関連して、Windowsスタックに配置できるほぼすべての言語にCOMバインディングがあるということです。ただし、WCFバインディングはまだすべての人(言語)に対して準備ができていません

于 2008-11-18T06:23:06.007 に答える
8

システムをどれだけ深く掘り下げたいかによって異なります。アンマネージ言語が死ぬことはないのと同じように、COM は決して死ぬことはありません。

簡単に言うと、Vista+ 用のデスクトップ アプリケーションを開発する場合、おそらく COM をわざわざ使用する必要はなくなるでしょう。

于 2008-11-18T06:27:17.137 に答える
5

COMが死んだとは思わない。Vista を見ると、COM アーキテクチャ/テクノロジが非常に多く使用されています。Vista のすべてのものは COM Dll/Exe です。Vista は XP に比べて COM を多用しているように感じます。

Vista で何かを拡張したい場合は、COM を使用してインターフェイスを実装する必要があります。

于 2008-11-18T15:39:58.270 に答える
4

いくつかの異なる側面があります。

  1. 複数のコンピューターで実行され、複数のコンピューターとやり取りするコンポーネント (サービスとして)
  2. ローカルでのみ実行され、ABI を介して複数のベンダーによって実装されたコンポーネントと対話するコンポーネント。
  3. サードパーティのコンポーネントとやり取りする必要のない、単一のベンダーによって作成されたコンポーネント。
  4. 単一のアプリケーションにコンパイルできる、ソース コードで利用可能な複数のベンダーのコンポーネント。

(ABI = アプリケーション バイナリ インターフェイス。COM は ABI の例です。)

側面 1 については、COM はほとんど死んでいます。

アスペクト 2 には引き続き COM が必要であり、今後も引き続き必要です。Windows Imaging Component は、新しいイメージ コーデックを誰でも実装できるようにする拡張性の好例です。.Net は、この点で有力な候補です。

側面 3 については、COM を検討する価値はありますが、これは各ソフトウェア ベンダーごとに決定する必要があります。社内向けのコンポーネント開発者が製品として販売される日が来るかもしれません。ここでも .Net が適しているようです。

側面 4 については、多くのオープンソース プロジェクトのソース コードを単純に適合させて組み合わせることができます。COM や ABI は必要ありません。

残念ながら、アンマネージ ABI としての COM は、コードとデータが同じメモリ空間にあり、スタックがデータと実行コール スタックの両方に使用されるため、バグから防御するのが困難です。1 つの COM コンポーネントの悪用可能な穴を利用して、同じアドレス空間にロードされた他の COM コンポーネントを不安定にすることができます。

于 2010-06-30T09:23:59.420 に答える
0

私が間違っていなければ、.NET は COM や WFC などの技術を置き換えることを意図しています。.NET よりも COM または WFC を選択する理由 (レガシ コード以外) はありますか?

于 2008-11-18T07:12:57.170 に答える
0

COM は死んでいます。COM は長生きします。

Windows 8 は興味深い曲線をたどっています。

http://kennykerr.ca/2011/10/18/the-road-to-windows-8/

http://msdn.microsoft.com/en-us/library/windows/apps/hh699871.aspx

于 2012-11-06T23:55:05.243 に答える