.NET组件和COM组件之间有什么区别,有时我们使用.NET组件包含在我们的项目中,有时我们包含COM引用.背后的想法是什么?提前致谢.
.NET组件是托管代码(内存处理已完成)
COM是软件组件的接口标准.COM组件是非托管代码(使用引用计数执行内存处理).
从这里:
COM和.NET如何相关?
COM和.NET是互补的开发技术..NET公共语言运行时提供与COM的双向,透明集成.这意味着COM和.NET应用程序和组件可以使用每个系统的功能.这可以保护您在COM应用程序中的现有投资,同时允许您以受控的速度利用.NET.COM和.NET可以实现类似的结果..NET Framework为开发人员提供了大量优势,包括更强大,基于证据的安全模型,自动内存管理和本机Web服务支持.对于新开发,Microsoft建议使用.NET作为首选技术,因为它具有强大的托管运行时环境和服务.
COM组件是非托管C++代码组件,旨在使软件在二进制级别可重用..NET组件类似,1)它们可以在CLR语言上创建,而COM组件只能用C++构建2)它们是在托管运行时下运行的.我认为这些是本质区别.
编辑:
C++是COM中最"自然"的语言,但COM组件可以用多种语言创建.感谢大家的评论.
.NET组件在CLR中运行,而COM组件本质上是本机Windows DLL.
.NET组件还暴露出比COM组件更多的元数据.重新设计的部分原因是为了使组件更具互操作性.特别是,.NET组件不会针对数据布局和调用约定做出特定于平台的假设.
见唐盒子.