.NET组件和COM组件之间有什么区别

时间:2009-03-27 03:42:23

标签: .net

.NET组件和COM组件之间有什么区别,有时我们使用.NET组件包含在我们的项目中,有时我们包含COM引用。背后的想法是什么?提前谢谢。

4 个答案:

答案 0 :(得分:13)

.NET组件是托管代码(为您完成内存处理)

COM是软件组件的接口标准。 COM组件是非托管代码(使用引用计数执行内存处理)。

来自here

  

COM和.NET如何相关?

     

COM和.NET是互补发展   技术。 .NET公共语言   运行时提供双向,   与COM透明集成。这个   表示COM和.NET应用程序   和组件可以使用功能   来自每个系统。这可以保护你的   COM的现有投资   应用程序,同时允许您   在受控制的情况下利用.NET   步伐。 COM和.NET可以达到类似的效果   结果。 .NET Framework提供   开发人员数量众多   的好处包括更强大,   循证安全模型,   自动内存管理和本机   Web服务支持。对于新的   开发,微软推荐.NET   作为首选技术因为   强大的托管运行时   环境和服务。

答案 1 :(得分:6)

COM组件是非托管C ++代码组件,旨在使软件在二进制级别可重用。 .NET组件类似,1)它们可以在CLR语言上创建,而COM组件只能用C ++构建2)它们是在托管运行时下运行的。我认为这些是必要的差异。

编辑:

C ++是COM中最“自然”的语言,但COM组件可以用多种语言创建。感谢大家的评论。

答案 2 :(得分:5)

.NET组件在CLR中运行,而COM组件本质上是本机Windows DLL。

.NET组件还会暴露比COM组件更多的元数据。重新设计的部分原因是为了使组件更具互操作性。特别是,.NET组件不会针对数据布局和调用约定做出特定于平台的假设。

请参阅Don Box

答案 3 :(得分:1)