.NET组件和COM组件之间有什么区别,有时我们使用.NET组件包含在我们的项目中,有时我们包含COM引用。背后的想法是什么?提前谢谢。
答案 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)