描述:
由于项目需要,开始学习COM,好像入门没有传说中的那么难。看了3天,对基本的原理和知识有了一定程度的了解,可能是对J2EE的EJB有些基础的原因,加上比较熟悉C++,所以入门COM也还感觉可以。但是有一点疑惑,是今天看到的,为什么说COM的思想还在但是技术已经淘汰了?淘汰的是什么内容呢?根据我目前的理解,COM技术其实只是一种编程思想,为了达到面向对象和组件技术而采用的一种编写程序的标准而已,和J2EE中的EJB有异曲同工之妙,甚至在实现上都雷同,都是有Proxy/Stub之说,那所谓的技术的淘汰究竟指的是什么的淘汰,取而代之的又是什么技术呢?.NET么?
解决方案1:
曾经我也很迷茫,当时由于项目的需要学习com,开发的时候决定使用atl,听说潘爱民翻译的 <深入解析ATL>不错,就到书店去买,结果跑了很多书店,最后才在上海交大昂立书店买到,我就奇怪了,去年的时候还有很多,今年就没了,不会这门东西淘汰了吧?为了搞清学习这个东西道理是不是浪费时间,我翻阅了很多新技术和老技术发展的书和文档,个人认为com与.net的关系是这样的;
1)com是.net技术的前身.这也意味着从技术的角度说.com思想是仍在的,是相对底层的,实现起来相对要麻烦的多,而.net的实现就要上层的多(微软是通过加入clr等之流的东东),因此单从实现角度上来说要容易很多(譬如至少不用管繁琐的注册表等),这样可以以更多的经历放在系统架构等高层技术上,这对企业应用软件开发是很有利的.然而没有免费的午餐,.net在开发上的效率是以运行效率降低一些作为成本的(中间加了一层clr嘛)但如果我是搞游戏开发或嵌入式等相关领域,我就会毫不犹豫的选择com,他更快.
其实在.net和老的com之间,微软是支持过渡的( 也就是可以互调用).
2)市场上用的技术永远没有上面说的这么快.我觉得现在很多公司用的东西都是com,(当然是指他们的产品中以前就用到了这种技术),他们并没有那么快适应.net或者是他们决定全改为.net
以上只是我个人对.net和com之间的认识,仅供参考
看看.net和VB6.0有多大区别了吗?我觉得只是在库的设计上,用起来觉得感觉差不多,我觉得.net和COM很像的,VB6.0用com 也用new的不用delete,.net也是一样?难道都是托管???还有好像早期的VB也不生成本地代码,在VB6.0学习版也是一样的?是不是MSIL的前身?直到现在,我用C#还是在找VB的感觉呵.
技术是在不段格新的.可以说window95过了时,但不能说windows过了时,可能过了时的是.ocx(16位)过了时但是.dll的COM还是很时髦的...COM过时了吗?
现在大家用的windows...核心就是COM堆出来的~~
如果你说过时了,那么windows就是淘汰品了...
踏踏实实干点事,,莫浮躁!!切记 ,切忌!
.net内部开发的时候就叫COM2.0,但是不是新版本出了就可以说旧版本已经淘汰了,DDE和OLE2.0已经快十年没有更新了,但是现在还在用。
解决方案5:com思想看不出来有淘汰的迹象.
解决方案6:.Net是com发展而来