Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net NET组件和COM组件之间有什么区别_.net_Com - Fatal编程技术网

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

.net NET组件和COM组件之间有什么区别,.net,com,.net,Com,NET组件和COM组件之间的区别是什么?有时我们在项目中使用.NET组件,有时我们使用COM引用。NET组件是托管代码(内存处理由您完成) 是软件组件的接口标准。COM组件是非托管代码(使用引用计数执行内存处理) 发件人: COM和.NET有何关联? COM和.NET是互补开发 技术。NET公共语言 运行时提供双向, 与COM的透明集成。这 意味着COM和.NET应用程序 并且组件可以使用功能 从每个系统。这保护了你的健康 对COM的现有投资 应用程序,同时允许您 以受控的方式利用.NET 步伐

NET组件和COM组件之间的区别是什么?有时我们在项目中使用.NET组件,有时我们使用COM引用。NET组件是托管代码(内存处理由您完成)

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

发件人:

COM和.NET有何关联?

COM和.NET是互补开发 技术。NET公共语言 运行时提供双向, 与COM的透明集成。这 意味着COM和.NET应用程序 并且组件可以使用功能 从每个系统。这保护了你的健康 对COM的现有投资 应用程序,同时允许您 以受控的方式利用.NET 步伐。COM和.NET可以实现类似的功能 结果。NET框架提供了 数量可观的开发人员 包括更强健的, 基于证据的安全模型, 自动内存管理和本机 Web服务支持。新的 开发,微软推荐.NET 作为首选技术,因为 其强大的托管运行时 环境和服务


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

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


参见.p>>p> com组件是非托管C++代码组件,旨在使软件在二进制级上可重用。NET组件类似于1)它们可以在CLR语言上创建,而COM组件只能用C++构建2)它们是在托管运行时运行的。我认为这些是本质的区别

编辑:


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

有关此主题的更多信息

《特定常规武器公约》:


RCW:

这不完全正确。COM组件可以用多种不同的语言来创建,其中包括C++、VB和.NET语言,例如C语言或VB.NetVB语言。我从5.0天起就不使用了,但这可能是真的。VB如何处理一些COM函数指针参数指针?实际上,VB 6是COM语言(在某种意义上说,VB完全是围绕COM构建的,显然它不如C++强大,但是它提供了与COM对象一起工作的最简单方法),托管与未绑定不是真正的区别。您还可以使用.NET语言创建COM组件。这样的问题是不正确的,因为.NET组件和COM组件不是互补的;不过它仍然是一个.NET组件…@Mitch:我认为你应该更正你的答案。仍然有许多COM组件是用VB6编写的,它使用引用计数来自动处理内存处理。这就是为什么点COM==非托管vs..NET==托管不正确的原因。@Mitch:引用计数如何表示没有内存泄漏?而且,即使在.NET中,您也无法避免泄漏。顺便说一句,COM组件也不一定使用非托管代码实现。正如您所说,COM是一种接口标准(好吧,这只是吹毛求疵;-)CLR真的是使用COM编写的吗?我知道很多框架库都是现有COM库的包装器,但实际运行时本身是否使用COM库?@sipwiz我没有查看整个框架库,但我还没有找到任何COM。@jrh,我已经删除了该语句。这是基于Don Box关于CLR内部的书,我在2005年读过这本书,现在已经没有了。它是针对非常早期版本的.NET编写的(早在“.NETCore”之前),我怀疑其中一些在本书出版之前就已经过时了。只要说.NET不再是基于COM的(如果曾经是的话)。