.NETコンポーネントとCOMコンポーネントの違いは何ですか?.NETコンポーネントを使用してプロジェクトに組み込むこともあります。何が背後にあるアイデアですか?前もって感謝します。.NETコンポーネントとCOMコンポーネントの違い
答えて
.NETコンポーネントは、(メモリ処分があなたのために行われます)
COMは、ソフトウェアコンポーネントのインタフェース規格であるコード管理されています。 COMコンポーネントはアンマネージコードです(メモリの廃棄は参照カウントを使用して実行されます)。 hereから
:
どのようにCOMと.NETが関連していますか?
COMと.NETは補完的な開発です 技術。 .NET共通言語 ランタイムは、双方向のCOMとの透過的な統合 を提供します。この は、COMおよび.NETアプリケーション およびコンポーネントが各システムの機能 を使用できることを意味します。これにより、COM アプリケーションへの既存の投資 が保護され、 は制御された ペースで.NETを活用できます。 COMと.NETは同様の結果を得ることができます。 .NET Frameworkは、より堅牢な エビデンスベースのセキュリティモデル、 自動メモリ管理、およびネイティブ Webサービスのサポートを含む、 の重要な数字の の開発者を に提供します。新しい の開発では、 環境とサービスのため、 の優先テクノロジとして.NET を使用することをお勧めします。
.NETコンポーネントはCLRで実行されますが、COMコンポーネントは本質的にネイティブのWindows DLLです。
.NETコンポーネントは、COMコンポーネントよりもはるかに多くのメタデータを公開します。この再設計は、コンポーネントの相互運用性を高めるために一部行われました。特に、.NETコンポーネントは、データレイアウトと呼び出し規約についてプラットフォーム固有の前提を作成しません。
Don Boxを参照してください。
CLRは実際にCOMを使って書かれていますか?私はフレームワークライブラリの多くは、既存のCOMライブラリの周りのラッパーですが、実際のランタイム自体はCOMライブラリを使用して知っている? – sipwiz
@sipwiz私は[CoreCLR repo](https://github.com/dotnet/coreclr)全体を見ていませんでしたが、まだCOMは見つかりませんでした。 – jrh
@jrh、私はこの声明を削除しました。それは、2005年に私が読んだCLRの内部についてのDon Boxの本に基づいており、もう何もコピーを持っていません。これは、非常に初期のバージョンの.NET(* .NET *の前は*)に対して書かれたもので、本の一部が印刷される前に期限切れとなっていたと思われます。 .NETがもはやCOMベースではないと言っても過言ではありません。 – harpo
COMコンポーネントは、ソフトウェアをバイナリレベルで再利用できるように設計されたアンマネージC++コードコンポーネントです。 NETコンポーネントは類似している1)CLR言語で作成することができますが、COMコンポーネントはC++のみで構築することができます。2)管理されたランタイムで実行することを意図しています。私はそれらが本質的であると思う違い。
EDIT:
C++はCOMの中で最も "自然" 言語ですが、COMコンポーネントは、多くの言語で作成することができます。人々のコメントありがとう。
これはあまり真実ではありません。 COMコンポーネントは、C#やVB.NetなどのC++、VB、.NET言語の多くの異なる言語で作成できます。 –
VB?私は5.0日からそれを使用しませんが、それは本当かもしれません。 VBでは、いくつかのCOM関数のためのポインター・ポインター・パラメーターなどの処理方法を教えてください。 –
divo私は調査してあなたが正しいと思う;) –
このトピックに関するいくつかの詳細
CCW:http://msdn.microsoft.com/en-us/library/f07c8z1c.aspx
RCW:unmanged対マネージドhttp://en.wikipedia.org/wiki/Runtime_Callable_Wrapper
- 1. .NETコンポーネントからCOMコンポーネントを呼び出す
- 2. COMコンポーネントから.NETコンポーネントを使用できますか?
- 3. COMコンポーネントを分離する方法.Net
- 4. comコンポーネントの使用方法
- 5. VB6 COMコンポーネントを使用している.NET
- 6. Angular 2コンポーネントとWebコンポーネントの違いは何ですか?
- 7. WampServerとコンポーネントのインストールとの違い
- 8. 私は、たとえば、ActiveXのCOMコンポーネントを使用するWebアプリケーション持っているのActiveX COMコンポーネント
- 9. .NET Query Builderコンポーネント
- 10. .net 2.0 IRCコンポーネント
- 11. Excel .netコンポーネント?
- 12. cakephp 2.1の "コンポーネント"と "プラグイン"の違いは?
- 13. SAMLライブラリ/コンポーネントfor .NET
- 14. comコンポーネントのスレッドモデルを変更する
- 15. 第三者コンポーネントのCOM代理人
- 16. Tlbimp .netとCOMコンポーネントはまだ登録する必要があります
- 17. HTMLのDiffコンポーネントfor .NET
- 18. .net Compact FrameworkのサードパーティUIコンポーネント?
- 19. C#.NETと外部コンポーネントの翻訳
- 20. com +コンポーネントを呼び出す方法は?
- 21. COM Interopコンポーネントがメモリに残る
- 22. COMコンポーネントを使用しようとしています
- 23. Firefoxの拡張機能とCOMコンポーネントの間のIPC
- 24. C++ XPCOMコンポーネントとCOMサービス間の通信(IPC)
- 25. コンポーネント図のコンポーネントUML
- 26. COMコンポーネントを使用する.NETアプリケーションを配布する方法は?
- 27. 誰も登録不要のCOMと.NETコンポーネントを正常に使用していますか?
- 28. Flex:MXMLの「コンポーネント」とMXMLの「モジュール」の違いは何ですか?
- 29. COM +コンポーネントを呼び出すとき0x80131902を取得する
- 30. ExtJs 4のTreeGridとTreePanelコンポーネントの違いは何ですか?
は実際に違いはありません。 .NET言語でCOMコンポーネントを作成することもできます。 .NETコンポーネントとCOMコンポーネントは相補的ではないため、そのような問題は完全ではありません。 –
regasmを使用すると、COMから.NETコンポーネントをすべて使用できます。それはまだ.NETコンポーネントです... –
@Mitch:私はあなたの答えを修正する必要がありますと思います。さらに多くのCOMコンポーネントがVB6で記述されています。このコンポーネントは、参照カウントを使用してメモリの廃棄を自動的に処理します。そのため、COM ==管理されていない点と.NET ==管理されている点が正しいわけではありません。 –