形势逼人?com确实是一个非常了不起的技术,但如果靠com来找工作也非易事~~~
形势逼人?com确实是一项非常了不起的技术,但如果靠com来找工作也非易事,本人刚开始学习com,
本人看书学习路径是《com技术内幕》->《com本质》->《com原理与应用》->《深入解析ATL》->大量实践。不知道这个学习路径有没有错~~ 我现在只看了《com技术内幕》
但是总迷茫于以后是否能靠com技术找份工作,因为我深深的明白想学好COM不是半年一年的事情,它牵涉太多太广。和现在流行的java和.net相比。招聘单位也很少要com技术人员(虽然我知道com就是.net的基石)。其实有人说的很对,学习com就是学习它的编程模式,我举双手双脚赞成,(注:我也非常非常非常喜欢com)但也不能为了学习一门技术而找不到工作吧!望过来人指点迷津~~~~
问题点数:50、回复次数:85Top
1 楼huzzyy(压路机)回复于 2005-09-03 22:46:16 得分 1
关注这个话题
帮你顶Top
2 楼caijize(砂子)回复于 2005-09-03 22:54:47 得分 1
顶~Top
3 楼sankt(宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒.)回复于 2005-09-03 23:16:07 得分 1
up
Top
4 楼williamx(WILL)回复于 2005-09-03 23:16:46 得分 1
COM要学,当然不能只学COM。
中文版的 《COM本质论》(潘爱明的)个人认为是垃圾,每个字都认得,一句话就看不懂了。英文的没看过。
《COM+编程指南》前11章非常好,虽然是一本 COM+的书,讲COM却非常的深入浅出,可以达到快速入门的效果。
可以先看,或和《inside com 》一起看。
《inside com 》看的早,咋样,有点想不起来了,记得这书讲的 婆婆妈妈的,但还算清晰。
真像你说的,COM是一种编程方法和模式。个人认为,领会了就行了,不必自己处理细节,有ATL。Top
5 楼dawndu(东南飞)回复于 2005-09-03 23:19:30 得分 0
老实说,你COM的那些东西学的再好,如果要找一个与COM相关的工作的话,很难,因为COM的历史使命已经完成了,也是慢慢退到幕后的时候了.但是学习COM可以让你得到你以前想都没有想过的那些东西,比如,你知道COM在MFC里的工厂类,你就会想,为什么要这么设计,然后你就知道这原来是一个设计模式.为什么COM比dll好,你要了解dll怎么写,怎么工作的吧?学习COM,c++功力一定要到家,这样如果COM学好了,你的语言功底也比较扎实了.还有,你还会联想到Corba与COM的对比,还有ADO是怎么封装的等.
获益最多的是对面向对象的理解,以前我很难体会一个c++的public virtual函数和private virtual函数的区别,学习COM后,觉得有一种"原来你就在这里"的感觉!祝你在学习的路上也有我一样的感悟!Top
6 楼wlwlxj(wlwlxj)回复于 2005-09-03 23:34:19 得分 0
学习COM并开发一年了,想起看过的书,有2本最值得看《COM技术内幕》,《ATL开发指南》,Top
7 楼little_duck(小鸭子)回复于 2005-09-04 23:45:59 得分 0
谢谢各位让我明白了很多东西,但现在的COM是否一点实用价值都没有了吗?真的退入幕后了吗?真的有点可怕,以后.net又会怎样?Top
8 楼wangyangcheng(矛盾)回复于 2005-09-05 00:45:57 得分 0
回复人: dawndu(东南飞) ( ) 信誉:110 2005-09-03 23:19:00 得分: 0
老实说,你COM的那些东西学的再好,如果要找一个与COM相关的工作的话,很难,因为COM的历史使命已经完成了,也是慢慢退到幕后的时候了.但是学习COM可以让你得到你以前想都没有想过的那些东西,比如,你知道COM在MFC里的工厂类,你就会想,为什么要这么设计,然后你就知道这原来是一个设计模式.为什么COM比dll好,你要了解dll怎么写,怎么工作的吧?学习COM,c++功力一定要到家,这样如果COM学好了,你的语言功底也比较扎实了.还有,你还会联想到Corba与COM的对比,还有ADO是怎么封装的等.
获益最多的是对面向对象的理解,以前我很难体会一个c++的public virtual函数和private virtual函数的区别,学习COM后,觉得有一种"原来你就在这里"的感觉!祝你在学习的路上也有我一样的感悟!
---
我还不知道public virtual 函数和private virtual函数的区别呀,请多指教!Top
9 楼little_duck(小鸭子)回复于 2005-09-05 21:09:27 得分 0
真的一点用都没有了,感觉的有点沮丧~~~Top
10 楼thisisll(学习王高李,有个好身体)回复于 2005-09-06 09:40:31 得分 0
我以前应聘过北京一公司据说挺好的
笔试题一半都是com(之前看过点书)
我就答了这一半进入面试
面试人家以为我com很牛
就问com的问题
其实我就知道一点概念
结果被刷了~~~Top
11 楼little_duck(小鸭子)回复于 2005-09-09 22:00:37 得分 0
同情 真是个搀啊~~~~Top
12 楼mdzhao(读破书万卷)回复于 2005-09-11 11:31:30 得分 0
markTop
13 楼weirdy(远古传说)回复于 2005-09-13 09:36:42 得分 0
前景我不知道.不过如果你想什么学习com的话,MSDN98里有本书,INSIDE OLE,看完它,搞懂它的例子程序Top
14 楼wangwenhong1000(乖乖兔)回复于 2005-09-13 09:53:59 得分 0
坚持就是胜利Top
15 楼tanyaliji(努力学习.net)(★)回复于 2005-09-13 18:38:41 得分 0
com && corbaTop
16 楼extreme(FadeToBlack)回复于 2005-09-13 18:52:41 得分 0
markTop
17 楼user32( )回复于 2005-09-14 09:53:33 得分 0
回复人: dawndu(东南飞) ( ) 信誉:110 2005-09-03 23:19:00 得分: 0
老实说,你COM的那些东西学的再好,如果要找一个与COM相关的工作的话,很难,因为COM的历史使命已经完成了,也是慢慢退到幕后的时候了.但是学习COM可以让你得到你以前想都没有想过的那些东西,比如,你知道COM在MFC里的工厂类,你就会想,为什么要这么设计,然后你就知道这原来是一个设计模式.为什么COM比dll好,你要了解dll怎么写,怎么工作的吧?学习COM,c++功力一定要到家,这样如果COM学好了,你的语言功底也比较扎实了.还有,你还会联想到Corba与COM的对比,还有ADO是怎么封装的等.
获益最多的是对面向对象的理解,以前我很难体会一个c++的public virtual函数和private virtual函数的区别,学习COM后,觉得有一种"原来你就在这里"的感觉!祝你在学习的路上也有我一样的感悟!
---
我还不知道public virtual 函数和private virtual函数的区别呀,请多指教!
我也有同感,在C++中我个人感觉两者没什么区别,在COM中你怎么感觉到的呢,:),指点一下Top
18 楼winehero(God helps those who help themselves.)回复于 2005-09-14 09:58:50 得分 0
COM,学习的是其思想,个人认为被取代是个时间问题。。。
学习COM的同时,好好学学其它的吧,为了将来、为了钱途。Top
19 楼xiaonian_3654(你猜猜(我要打光棍,小乔嫁不了))回复于 2005-09-14 16:51:49 得分 0
我还不知道public virtual 函数和private virtual函数的区别呀,请多指教!
我也有同感,在C++中我个人感觉两者没什么区别,在COM中你怎么感觉到的呢,:),指点一下
======================================================
生成asm代码,看虚表Top
20 楼ndbmz6()回复于 2005-09-19 02:22:53 得分 0
upTop
21 楼zhxk(zhangxukun)回复于 2005-09-19 08:03:37 得分 0
根据字面意思呀,public就是可继承,private就是不可继承啊
public可公布,而private只能内部使用啊
这些只是为提高结构设计,而弄的“钻牛角“的玩意儿吧
也许只有有一定规模,一定实力的公司,一定数量的团队,一定级别的人员才会弄这些应用吧
Top
22 楼little_duck(小鸭子)回复于 2005-09-20 21:09:50 得分 0
COM 一个快被遗忘的技术 郁闷啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Top
23 楼TTLOVEVBNET(VC愛好者)回复于 2005-09-21 11:33:17 得分 0
现在召ATL的都不多,我在编程中有时会用到,比如作作控件啊等等,但以不是中国一般工司会用到的东东,所以还是先学数据库,和网络,有时间在学这个吧,我也是学了ATL有一些时间了,不过是兴趣,不是谋生的东东Top
24 楼little_duck(小鸭子)回复于 2005-10-14 15:34:22 得分 0
对Top
25 楼liumazi(刘麻子)回复于 2005-10-16 17:04:21 得分 0
只学com肯定不行Top
26 楼deping_chen(小平)回复于 2005-10-17 11:27:51 得分 0
本人看书学习路径是《com技术内幕》->《com本质》->《com原理与应用》->《深入解析ATL》->大量实践。不知道这个学习路径有没有错
=============================
完全正确。
虽然我知道com就是.net的基石
==========================
错,COM是.net的前身,思想是一脉相承的。例如.net的元数据就是对COM类型库概念的扩展。
中文版的 《COM本质论》(潘爱明的)个人认为是垃圾,每个字都认得,一句话就看不懂了。
真像你说的,COM是一种编程方法和模式。个人认为,领会了就行了,不必自己处理细节,有ATL。
========================================================
不要这么诽谤老潘,你看不懂,是你功力不到。
对于你的第二个观点,我赞同前半部分,后半部分,《深入解析ATL》已经作了说明,如果你不了解COM,不了解ATL,就不可能真正会使用ATL。
我以前应聘过北京一公司据说挺好的
笔试题一半都是com(之前看过点书)
我就答了这一半进入面试
面试人家以为我com很牛
就问com的问题
其实我就知道一点概念
结果被刷了~~~
-----------------------
太可惜了,难得有需要COM知识的公司,进去了可以多向高手能手求教呀。Top
27 楼little_duck(小鸭子)回复于 2005-10-17 21:37:48 得分 0
一个人能学的东西太少了饿Top
28 楼bownk(光光)回复于 2005-10-19 15:28:14 得分 0
虽然我知道com就是.net的基石
===============================
错,COM是.net的前身,思想是一脉相承的。例如.net的元数据就是对COM类型库概念的扩展。
==================================================================================
就目前.net还是以COM技术为基础的吧。CLR不就是一个特殊的COM服务器吗?COM死亡,除非M$把Windows的内核重新构造,前一段时间,M$不是说Longhorn的内核是用.net技术来做,直接支持.net,后来又放弃了,所以COM目前还有空间。Top
29 楼hjunxu(hjun)回复于 2005-10-19 16:01:03 得分 0
要学好com先要学好OOP.Top
30 楼DreamForever(DreamForever)回复于 2005-10-20 20:14:44 得分 0
说实话,纯C才是基石,C++马马虎虎吧。在往上发展的技术多半都越搞越复杂,随时会被淘汰。
有学com的时间,还不如学一种专门的方向,比如网络编程、图形等等,这些技术才是真正不会过时的。
Top
31 楼IloveWorld(我爱这个世界)回复于 2005-10-21 00:13:26 得分 0
呵呵,不会吧,学好COM就代表你的编程思想很高,只有有丰富编程经验的人才能领悟。如果是COM高手,微软都能进去的。Top
32 楼wshcdr(dd)回复于 2005-10-21 10:10:51 得分 0
有学com的时间,还不如学一种专门的方向,比如网络编程、图形等等,这些技术才是真正不会过时的。
/////////////////////////////////////
COM的应用有两个方面,
一自动化,
二ActiveX,
如果做桌面应用,可以考虑自动化,同时可以和很多别的技术相融合,比如和图形图象处理的技术相融合。
如果做网络应用,可以考虑ActiveX,ActiveX可以和网络,图形图象...等等同时应用。
由是观之,COM和别的技术并不冲突,DreamForever(DreamForever)的话未免有失偏颓,某也是菜鸟一棵,一家之见,不当之处,众位看官多多体谅。Top
33 楼kenskens(☆☆☆☆☆☆)回复于 2005-10-24 16:55:33 得分 0
markTop
34 楼celerityok(敏行)回复于 2005-10-24 20:51:09 得分 0
markTop
35 楼WuOu(天堂*蓝珀湖*仰音*诚彦)回复于 2005-10-25 09:21:49 得分 0
markTop
36 楼ximenying(西门)回复于 2005-10-25 09:37:48 得分 20
我认为:COM只是一种框架而已,这种框架比较复杂,但再复杂也还是一种框架,它跟数据库、网络、图形图象等技术不是一个类型的,COM是用来包装这些技术内容的,当然你也可以用其它的框架去包装,所以大家不要拿那些具体的技术去跟COM比,没有可比性,事实上国内的软件开发商少有对COM框架的思想研究的很透彻的,这也就是为什么国产软件看起来都是写死的居多,最多也就是通过几个简单的配置文件去配置,大家可以看看微软的产品,从资源管理器、开发工具到Office系列产品无不是基于COM提供出完美的二次开发接口(也就是所谓的Shell扩展),如果大家经常接触到国外的软件的话,包括业务类系统,很多都开发的非常的灵活,这些都是对COM框架思想的具体应用,COM是一种思想,你精通思想不代表你能写出好的程序,仅代表你能设计出好的程序框架而已,做框架的毕竟是少数人,所以如果你想通过COM来找工作可能是比较难的,实际上就是招写COM的公司其实说白了也不需要你很懂COM,进去后也就是用ATL/WTL写个COM组件、ActiveX控件、或是写个COM服务器之类的,这些活其实你只要对VC的ATL操作的够熟练,再加上你的数据库、网络、图形图象方面的技术,就完全能胜任了。
.......Top
37 楼sunmz_wjxy(孙大圣)回复于 2005-10-25 19:50:08 得分 0
ximenying(西门)
你的话有道理,我现在在一家新加坡公司里,用的就是ATL,烦呀.搞了几个月了.结果还是什么都不懂,反而认为ATL真的很难用.
Top
38 楼vikey_xue(烨子)回复于 2005-10-26 15:23:49 得分 0
COM是一种思想,而思想是不会很快过时的,楼上的说的不错,离开COM,WINDOWS就运行不起来。
DIRECT用途很广泛,它就是基于COM的。Top
39 楼JohnTitor(贱畜)回复于 2005-11-10 22:56:29 得分 0
马克Top
40 楼ruma23(ruma23)回复于 2005-11-11 13:35:12 得分 0
学当然要学,结合当前开发的项目学习,试用,实验。Top
41 楼seansoe(www.sysmgmt.com.cn)回复于 2005-11-11 16:25:16 得分 0
COM, too complex, too uglyTop
42 楼zhaoruixia(比猪多一样)回复于 2005-11-11 23:55:12 得分 0
我同意西门的话,我现在在做一个集成开发环境的框架,想做得像微软的产品那样灵活,真的很难,听了西门的话,发觉自己对于com的思想还是不甚了解的缘故,努力ingTop
43 楼zhaoruixia(比猪多一样)回复于 2005-11-11 23:56:42 得分 0
其实看外文书,看的就是他的思想,弄懂一种思想靠的是悟,而技术可以靠时间和经验来积累和磨练Top
44 楼angel_rabbit(zj_rabbit)回复于 2005-11-13 00:16:16 得分 0
思想才是创新的源泉.
个人感觉做为一名好的程序员,应该深入学习和研究com,作为内功的提升。当然现实中离不开具体某个方向技术的熟练掌握。
学习com中。。。Top
45 楼XXandOO(麦猪)回复于 2005-11-14 17:48:36 得分 0
COM是面向对象技术的一个实现构架,不管它使用了什么样的技巧,其目的都是实现组件复用。DCOM/COM+的范畴已超出复用这个意义,他们的着眼点是更大的透明性和隔离性以及更依赖于系统平台的高层应用。至于.NET则有更大的理想,它是组件复用理论的大变革,至少在实现上是。.NET的内容太丰富了,和COM没有可比性,COM只是.NET构架的实现中起支撑作用的一环而已。Top
46 楼wshcdr(dd)回复于 2005-11-18 09:55:56 得分 0
他们的着眼点是更大的透明性和隔离性以及更依赖于系统平台的高层应用
///////////////////////
更依赖于系统平台么?Top
47 楼kugou123(酷狗)(彪悍的人生,不需要解释 www.xiaozhou.net)回复于 2005-11-20 00:03:50 得分 0
继续学啊。呵呵。技术在进步,人也要进步了。。Top
48 楼little_duck(小鸭子)回复于 2005-11-26 10:13:42 得分 0
呵呵 居然跟进这么多帖子了。COM啊 现在感觉是想学的技术太多,又没有时间。Top
49 楼psusong(栀子花开)回复于 2005-11-26 13:38:23 得分 0
偶2001年的时候开始学习com的,学的不深,给我感觉com本质上就是一种二进制的通信规范或者协议!虽然在工作中用到的时候不是很多,但还是对于考虑问题很有帮助!
Top
50 楼fy_eyas(搬弄是非)回复于 2005-11-26 23:54:55 得分 0
我现在也在学习COM,刚刚开始学。我给你个建议,如果你准备打工的我不知道学COM是否能找到
好的工作,但是如果你准备做共享的话,建议好好学!Top
51 楼manplus(魅力加加)回复于 2005-11-27 01:39:37 得分 0
mark
Top
52 楼little_duck(小鸭子)回复于 2005-11-27 22:35:57 得分 0
说的有道理。 有时间还是应该学学的。Top
53 楼hjunxu(hjun)回复于 2005-11-28 11:11:24 得分 0
COM是一种思想,而思想是不会很快过时的,楼上的说的不错,离开COM,WINDOWS就运行不起来。
DIRECT用途很广泛,它就是基于COM的。
--------------------------------------------
由此面试偶也说com是一种思想,结果被面试官踢出来了。
com应该说是一种标准,说他是思想或框架有点不太准确。Top
54 楼baodi_z(冷冷的太阳)回复于 2005-11-28 12:43:03 得分 0
以目前的情况来看
我个人觉得不要在COM上面钻研太深
楼主学点新的东西先搞定工作再去深入发展一个技术方向比较实际
要深入可以分好多方向,看楼主自己的喜好与能力
例如:
从语言来说可主要有几个方向:C/C++, JAVA, .NET(C#), WEB(指网页设计脚本类语言),还有一些比较专业的冷门的语言(这个我不了解)
Top
55 楼akirya(坏[其实偶不是什么所谓的坏人])回复于 2005-11-28 13:26:23 得分 0
com是好东西啊,除非windows不支持com,否则永远Com都有立足之地。Top
56 楼XXandOO(麦猪)回复于 2005-11-28 23:58:37 得分 0
com是标准不错,但那是指得狭义的com,即二进制模块复用时的vtab和vptr,dcom则是一种跨进程跨网络扩展,关注点是SCM和RPC以及权限控制(激活和访问),COM+又扩展到异步COM等等,DCOM/COM+并不是标准,而是依赖windows的特有实现。未来的windows平台是.net的天下,而在.net中的com已经不明显,甚至可能已经走进CLR中去了(本人还不清楚通用类型的底层交互原理),我想即使深入到il这一层仍然看不到com的具体实现机制,所以对.net中com到底是个什么角色很疑惑,都说.net是个更好的com,我看也只是从com思想(二进制复用)这个角度来说的。.net的两大特点是CLR和webservice,而这两者看不出和com有什么直接关系(jit和soap,这简直是另一个java),所以com可能真的过时了,可以说已经完全被现有技术替代了,我和兄弟们一样不情愿,但是,真的,com,你安息吧。Top
57 楼wshcdr(dd)回复于 2005-11-29 09:49:50 得分 0
即使是.NET, COM的原理并没有变, 所以学一学COM还是没错Top
58 楼onestab()回复于 2005-12-09 02:02:10 得分 0
Because the most software companies in china are in prime level.
.net is not the silver-bullet, and far from popular accepted in production.Top
59 楼little_duck(小鸭子)回复于 2005-12-17 23:08:17 得分 0
学都学不完Top
60 楼zhengstar()回复于 2005-12-18 08:27:16 得分 0
com这东西是个革命性的东东,在单机应用程序时,这是个很有用的技术,后来为了适应网络的需求,又有了dcom,这个东东也很火了一阵,但它有个致命的问题,就是网络的穿透能力,在局域网内dcom技术还没有什么问题,因为端口可以自由的开放,但一旦应用到互联网上,就出问题了,因为互联网上的主机因为安全问题,大部分端口是不能开放的,所以dcom就被限制了。以至于web service出来后马上就把dcom给淘汰了。
不过学习com还是很有益处的,那就是可以增强你的c++功底,你要想把com学好,势必要把c++学好,而c++学好了,你就不用担心找工作的问题了,所以你说找不到工作,问题不是你学的是com,而是你介绍自己侧重点错了。Top
61 楼iamnewsea(笑看江湖)回复于 2005-12-18 10:14:49 得分 0
东西学了就知道了.考虑的太多反而浪费时间.我不知道它好不好,反正正在学.当作增强功力.Top
62 楼little_duck(小鸭子)回复于 2005-12-19 09:28:10 得分 0
说的很对 应该继续努力~~~~~~~~Top
63 楼broccoli(-_-||)回复于 2005-12-19 14:53:14 得分 0
MARKTop
64 楼larrylei(晓马)回复于 2005-12-20 10:34:37 得分 0
从来没时间细看com,但是照样用,直接拿来框架,改改id就用了。Top
65 楼greenabc(green)回复于 2005-12-20 11:15:12 得分 0
我倒是觉得《com原理与应用》应该放到第一位,我看了1/4了,看得懂。Top
66 楼greenabc(green)回复于 2005-12-20 11:19:41 得分 0
并且我对 com 很有信心,我相信它,即使如你所说,我也还是有信心,因为 Com 都能学会,还有什么可怕呢?编程工具都是相通的我认为.Top
67 楼weiym(磨刀霍霍向猪羊)回复于 2005-12-20 12:54:08 得分 0
微软的OFFICE软件,都是用COM搭建的,而且都有二次开发的接口Top
68 楼lzzqqq(Jonersen)回复于 2005-12-20 13:18:27 得分 0
COM的关键是在于它用一个纯虚接口类来实现了二进制层次上的向下兼容性.Top
69 楼rfa(实况狐狸)回复于 2005-12-20 15:41:44 得分 0
哈哈,俺不赞同楼主的标题,俺认为COM更多的是一种思想,而不是什么技术。因为它的很多概念都是建立在其它技术的基础之上的,真正涉及到技术的地方少之又少。
我们学COM关键是要弄明白人家MS为什么要搞COM,我的理解总结起来就是这么一句:
COM的思想就是"大一统"(包括.net和java也是如此),就是"天下大势,合久必分,分久必合"。
Top
70 楼rfa(实况狐狸)回复于 2005-12-20 15:49:13 得分 0
to : hjunxu(hjun) ( 一星(中级))
引用你的:
COM是一种思想,而思想是不会很快过时的,楼上的说的不错,离开COM,WINDOWS就运行不起来。
DIRECT用途很广泛,它就是基于COM的。
--------------------------------------------
由此面试偶也说com是一种思想,结果被面试官踢出来了。
com应该说是一种标准,说他是思想或框架有点不太准确。
我想说的:
这位面试官不懂COM是肯定的了(别给我说知道个进程内组件,进程外组件,STA,MTA这几个名词就敢说是懂COM了),它肯定是一看回答跟标准答案不一致,所以就想也不想就说你错了。呵呵~其实很多面试官都是这个样子的。你当时为何不直接追问他为什么这么解释不准确?让他给个能让大家心悦诚服的答案俺们也好学习学习。还有,如果因为你的解答只是"不准确"就把你踢出来了,这这种公司不去也罢,因为那里没有高人,不会让你有更好的发展空间。
Top
71 楼superlym2005()回复于 2005-12-22 19:02:50 得分 0
触类旁通, 学习COM的思想, 反过来对学习其他的技术是有益的,技术是不断进步的,但它还是需要一点一点积累的.Top
72 楼tmeteor()回复于 2005-12-24 20:21:25 得分 10
.NET Remoting
从COM(Component Object Model)时代到DCOM(Distributed COM),微软扮演了一个推动者的角色。如果说COM提供了一个Windows平台上的对象通讯技术,并且逐渐成为应用程序之间彼此通讯及互动的技术主流,那么DCOM则是解决了计算机的通信和互动技术。
COM的着眼点是在于同一台计算机上不同应用程序之间的通讯需求,跨到另外一台计算机之外,就不是一开始COM所设想到的领域。所幸跨程序的通讯和跨计算机的通讯差异仅在于通讯协议的处理(也就是定位问题),对于数据交换上型别差异的处理并不会因此而有区别。所以要让COM的环境能更进一步延伸到跨计算机的领域,只要妥善解决计算机定位的需求,就有机会克服。同样幸运的是,COM在一开始的设计中完全不去碰触跨计算机的问题,使得要在COM的架构之上再架上一层跨计算机的处理环境并不会去破坏到原本的架构。于是COM的网络延伸版本DCOM(Distributed COM)就此出现,专责让COM组件可以在网络环境下持续提供服务。DCOM最主要处理的是两个议题,第一个议题是网络通讯能力,第二个议题则是权限的问题。之前COM是在同一台计算机中找特定的组件,而DCOM则要更进一步去找网络上的某台计算机,之后沿用COM的机制找到计算机上的组件。
到了.NET当中,跨计算机的问题同样也需要对应的技术进行处理,.NET Remoting就是一个对应于DCOM的技术,它让存活在不同应用程序域(AppDomain,一个 .NET中的新概念)、不同执行程序、以及不同计算机上的对象能够顺畅的进行沟通协作。在累积了长期以来分布式应用的经验之后,微软没有理由把东西设计的更难用。从某种意义来说,.NET Remoting提供了比过去更易于使用的开发架构,用来来支持跨计算机的沟通作业,省却开发人员建立分布式应用程序时必须花费的心力,不过这样一个“出色”的分布式应用应用框架并没有得到本来应该得到的“待遇”。相对于Java的RMI而言,它更加简单同时保持设计方面的弹性,同时摈弃了DCOM的一些缺点,在对于一个前后端必须以有状态紧密结合方式进行互动作业,同时又期望呼叫和数据交换的动作上能以最有效的方式进行的环境而言,.NET Remoting是一个比较恰当的选择方案。
Top
73 楼tmeteor()回复于 2005-12-24 21:17:47 得分 0
Windows Vista是至今以来基于NT代码基础上所做的一次大幅调整。Windows NT系统在1994年发行。经过一些细节方面的修改后1996年发行了Windows NT 4.0版。2000年问世的Windows 2000是对NT 4.0一次重大意义的升级,但也仅仅是一次升级。而在2001年发行的Windows XP很大程度上也只是对Windows 2000界面上的粉饰。
但Windows Vista是一个名副其实的新版本。微软宣布了一款称为WinFX的全新API,来接替承载了20年历程的基于Win16以及Win32包含了图形方面的GDI和网络接口大杂烩的老式API。
WindFX由三项API子集所组成:在Direct3D基础上提供3D加速图像处理,代号为Avalon的Windows Presentation Foundation ;代号为Indigo集简单与安全性于一身的通信API接口Windows Communication Foundation;还有.NET,在大体上能使编写软件变得简便的一套API控制接口。
//楼主可以关注一下新技术!
Top
74 楼wjjssnew(暗恋一个叫张文玲的女孩)回复于 2005-12-26 07:35:37 得分 10
怎么说呢,D3D就是基于COM的 也就是 windows下D3D游戏程序的平台
另外,智能手机 也有COM的"身影"
COM技术不是全部,所以应该了解一下其他方面的知识.
还有,现在开发讲速度,外观.除非客户要求,一般代码是不会优化的.只要没错就行~所以有很多人,说现在程序员多,其中假程序员更多.
这也许是中国软件业,对外项目少的原因之一吧.反过来说,如果你个人搞很深的低层研究,风险太大,周期长,而且政策也没什么支持(潜规则也很多)Top
75 楼a112319124728(彪)回复于 2005-12-26 08:12:56 得分 0
upTop
76 楼little_duck(小鸭子)回复于 2005-12-26 19:39:32 得分 0
COM确实了不起Top
77 楼kaixin110(kydk.com)回复于 2005-12-28 09:26:31 得分 1
search:
十年MFC
Top
78 楼js_gary(李祥)回复于 2006-01-02 13:33:25 得分 0
以前我在学校时也搞过一段时间COM,只是那都是在DELPHI下搞的,那时我觉得台湾的李维大师现实性的第本书不错,现在也在玩VC++,C++,至于COM这方面的书,我觉得还是英文的比较好,特别是那些翻译过来的书,我最不爱看了,因为我对他的英文水平有点怀疑!Top
79 楼Mephisto_76((望美人如梦))回复于 2006-01-24 09:17:20 得分 0
前者众位高手对COM的本质都有所探讨,我也说说自己的看法。
我认为COM首先是一种实现技术,一种应用技术,是微软用来为其Windows平台服务的技术。众所周知,微软有很多Windows的版本,在其上的应用和开发工具等产品线也很长,各种编程语言的实现以及应用软件之间的交互是个巨大的挑战。于是微软提出了COM技术来解决。COM的接口实际上在Windows系统中有唯一一个标识,这个标识对应着一个二进制实体即实现这些接口的组件。因为是系统唯一的,所以其它应用程序通过COM接口的标准途径可以访问它,也可以实现语言访问的无关性。
个人认为上面的东西才是COM的本质。其它的关于COM的东西要不就是为了实现COM这种实体唯一性的手段,要不就是解决现实问题的细枝末节。Top
80 楼snakebite2008(3DFX)回复于 2006-01-24 10:00:33 得分 0
我想也许我们只有亲自做过图形操作系统才能理解为什么需要COM以及类似的东西吧。
但是我们都没有做过Top
81 楼spanzhang(红尘斩丝客)回复于 2006-01-27 10:57:36 得分 1
个人认为COM最重要的是明确了一套接口访问的协议,每个对象都向外界提供了一个门,进门后就可以发现好多好多东东。:)Top
82 楼msvcp60(HOOK)回复于 2006-02-14 12:22:25 得分 1
MS OS里很多COM组件和接口,COM还会坚持一段时间Top
83 楼yesry(噎死你)回复于 2006-02-17 14:38:56 得分 1
天生你才必有用Top
84 楼Atomictry(天影)回复于 2006-02-17 15:45:59 得分 1
我还不知道public virtual 函数和private virtual函数的区别呀,请多指教!
-->> private virtual表示告诉它的子类:子类要重写这个函数,而且子类不要自己调用这个函数,因为这个函数是我父类使用的。
建议去看设计模式的模板方法,倒不一定看COM. COM么,设计模式大杂烩。Top
85 楼wshcdr(dd)回复于 2006-02-17 17:50:47 得分 1
我想也许我们只有亲自做过图形操作系统才能理解为什么需要COM以及类似的东西吧。
但是我们都没有做过
///////////////////////////////
这个绝对和COM的起源无关Top




