.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コンポーネントにpdfコンポーネントがありません
- 2. COMコンポーネントを分離する方法.Net
- 3. .NETコンポーネントからCOMコンポーネントを呼び出す
- 4. COMコンポーネントから.NETコンポーネントを使用できますか?
- 5. VB6 COMコンポーネントを使用している.NET
- 6. comコンポーネントの使用方法
- 7. 私は、たとえば、ActiveXのCOMコンポーネントを使用するWebアプリケーション持っているのActiveX COMコンポーネント
- 8. Adobe Reader COMコンポーネント例外
- 9. WampServerとコンポーネントのインストールとの違い
- 10. .netからActive Reports 2.0 comコンポーネントを呼び出す方法は?
- 11. Angular 2コンポーネントとWebコンポーネントの違いは何ですか?
- 12. JIRAカスタマイズとラベルとコンポーネントの違い
- 13. .net 2.0 IRCコンポーネント
- 14. Excel .netコンポーネント?
- 15. .NET Query Builderコンポーネント
- 16. ESBとBigデータのtMongoDBコンポーネントの違い
- 17. QMLのコンポーネントとインスタンシエータの違いは?
- 18. cakephp 2.1の "コンポーネント"と "プラグイン"の違いは?
- 19. Aureliaのコンポーネントとカスタム要素の違い
- 20. vueインスタンスとvueコンポーネントの違いは?
- 21. Tlbimp .netとCOMコンポーネントはまだ登録する必要があります
- 22. SAMLライブラリ/コンポーネントfor .NET
- 23. 第三者コンポーネントのCOM代理人
- 24. comコンポーネントのスレッドモデルを変更する
- 25. 角度2の子コンポーネントと親コンポーネントの違いは何ですか?
- 26. .Net Framework 4.7とコンポーネントの異なるバージョン
- 27. C#.NETと外部コンポーネントの翻訳
- 28. COMコンポーネントを使用しようとしています
- 29. .net Compact FrameworkのサードパーティUIコンポーネント?
- 30. HTMLのDiffコンポーネントfor .NET
は実際に違いはありません。 .NET言語でCOMコンポーネントを作成することもできます。 .NETコンポーネントとCOMコンポーネントは相補的ではないため、そのような問題は完全ではありません。 –
regasmを使用すると、COMから.NETコンポーネントをすべて使用できます。それはまだ.NETコンポーネントです... –
@Mitch:私はあなたの答えを修正する必要がありますと思います。さらに多くのCOMコンポーネントがVB6で記述されています。このコンポーネントは、参照カウントを使用してメモリの廃棄を自動的に処理します。そのため、COM ==管理されていない点と.NET ==管理されている点が正しいわけではありません。 –