COM组件和.NET组件有什么区别?

empty890 2007-07-18 09:02:14
如题,希望能解释的清楚点
...全文
723 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞跃 2011-06-21
  • 打赏
  • 举报
回复
嗯,受教了,还在找这方面的资料呢
justin_zeng1986 2011-05-16
  • 打赏
  • 举报
回复
学习学习!!
shoushii 2007-07-18
  • 打赏
  • 举报
回复
mark study
blankfang 2007-07-18
  • 打赏
  • 举报
回复
学习
CyberKnightGIC 2007-07-18
  • 打赏
  • 举报
回复
差别太大了,我说几点:
1.数据结构:COM组件是二进制的数据,.Net组件使用的是IL,因此需要.Net Framework.
2.内存管理:还记得COM的AddRef和Release吗?:), .Net是托管的,因此有GC
3.Metadata: .Net的元数据包含了丰富的类型信息,因此你或者Compiler可以用反射提供诸如智能提示,方法调用等等一系列的功能
4.安全:.Net提供强类型程序集,需要Public Key, 语言,程序名和版本号来唯一确定某个特定的 .net组件,查找组件的位置有一套机制。 COM仅仅依靠注册表和dll文件名来确定组件,因此,DLL Hell的问题出现了 :)
还有很多,呵呵,最本质的还是存储结构和运作方式上的不同
LutzMark 2007-07-18
  • 打赏
  • 举报
回复
组件对象模型(COM , Component Object Model) 让你直接和API打交道

COM与.NET
蓝屏与抛异常
非托管与托管
提升了安全又不影响性能,.net就是在COM基础上的进步
F15Eagle 2007-07-18
  • 打赏
  • 举报
回复
这一帖星光灿烂啊,关注……
lovingkiss 2007-07-18
  • 打赏
  • 举报
回复
嗯,这个问题是的,忘记了——是,COM组件删除是经常遇到问题的。
而且非常常见
amandag 2007-07-18
  • 打赏
  • 举报
回复
组件是通过接口访问的
=====================
只订立规范,不定义具体该如何做
amandag 2007-07-18
  • 打赏
  • 举报
回复
使用起来——没啥差别,版本问题,一般本来也不是特别常见,大家很少一台机器弄个多个版本的系统的。
==================================
不是这个意思,如果A开发了组件com1,B的应用程序用到了com1开发了程序Bcom,这时候A又升级了版本到com1.1,C的应用程序用到了com1.1开发了程序Ccom,那么用户D上面如果先装Ccom,再装Bcom,就会出现旧版本的组件替换新版本的组件的问题(相信大家以前都见过这样的提示信息),而且用户D在两个应用程序都安装好无论删除那一个都有可能出现另一个运行不了,因为共享的组件被删除了
empty890 2007-07-18
  • 打赏
  • 举报
回复
组件是通过接口访问的,这个能解释下吗??
  • 打赏
  • 举报
回复
楼上说的也是一点,嘿嘿
冷月孤峰 2007-07-18
  • 打赏
  • 举报
回复
com组件是非托管对象,可以不需要.net框架而直接运行,而.net组件是托管对象,必须有.net框架才能运行
lovingkiss 2007-07-18
  • 打赏
  • 举报
回复
使用起来——没啥差别,版本问题,一般本来也不是特别常见,大家很少一台机器弄个多个版本的系统的。

==================================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明:<我的帖子我做主,结贴率保持100%>
优惠接单开发,信誉保证,Q64180940(请清楚注明业务还是技术咨询)
==================================================================
amandag 2007-07-18
  • 打赏
  • 举报
回复
COM组件是以前微软推荐的东东

.NET组件是现在微软推荐的东东

都可以实现组件的重用,最大的区别是,现在的.NET组件解决了版本问题,也就是说允许多个不同的版本的同一组件在一台机器上安装,而这个是以前COM组件的致命问题
真相重于对错 2007-07-18
  • 打赏
  • 举报
回复
com 是为实现二进制复用的一种技术,windows操作系统是多任务的,也就有不同应用程序之间交互的问题,一开始windows采用dde方式,后来改用ole也就是com的前身,在发展就是com ,之后又是com+ , 再就是 .net.
因为是为了不同的应用程序通讯,而不同的语言开发的程序模型是打不相同的,例如同样是c++
vc 和 bc 类的实现方式就不一样。所以采用接口调用。
com 是非常复杂的技术,了解它可以看看《com 本质论》和《com 原理》
.net 组件和com组件不仅是版本控制问题,有专家说.net是更好的com,我觉的.net与com的最大区别在于.net是自描述的,也就是说你拿到一个.net 的dll ,这个dll就包含了它所提供的类型信息的标准描述。所以使用者直接引用即可。

而com是同一种复杂的技术达到使用者来了解一个com组件具体提供了什么方法,什么属性,脚本语言可以使用自动化方式,而象c++等则通过tlb等来了解更简单
SassyBoy 2007-07-18
  • 打赏
  • 举报
回复
名字已说明一切~~
Fan52027 2007-07-18
  • 打赏
  • 举报
回复
Mark
mpss 2007-07-18
  • 打赏
  • 举报
回复
受教了
hamehameha 2007-07-18
  • 打赏
  • 举报
回复
学习
加载更多回复(5)

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧