描述:
COM很多人说是过去了,但对我来说却只是新生。
我现在大部分时间就是在学习COM等相关的知识。其实以前我也不想去学COM,但我现在发现其实COM的确是个不错东东。
但是COM是的的确确的在走下坡路了,为什么会这样呢? 由于本人知识面太窄的原因,至今我也不清楚COM技术现在到底被哪些技术所取代,COM所具有的优点又被哪些东西所取代,或是说哪些东西比COM更好。
现在,我写程序改在VC.NET下了,但有一点最明显的是我在这个新的开发平台中竟不会创建COM工程了,我想不会这么决吧??不会要我在6.0中先建好再转到.net中吧。
各位大虾,帮忙提个醒,指条路啊!!!
解决方案1:
作为COM技术、ATL技术的一些核心技术或者思想,我想还是很有学习的意义吧
顺便问问各位大侠,STL现在应用如何?
com的实现在vc 6.0下是比较复杂的,特别是用atl的时候。但是atl在.net 2003,也就是vc7.1中,atl开发组对以前很复杂而繁琐的开发过程进行了包装,展现在我们面前的开发过程其实跟6.0下使用mfc一样简单。从我的体验来讲,在你不熟悉com规范的条件下,你都可以用atl快速的开发组件。atl的属性编程极大的简化了代码量。应该说,com作为一种标准和规范,其中包含了许多的模式。我赞同把com当成思想来学习,而不是简简单单的当成技术来看待。
解决方案3: 我觉得COM还大有可为,一直在成长(从COM,DCOM,COM+)。
不过开发COM比较繁琐,要程序员掌握更多底层及细节的支持,当然速度可以大大提升。
现在对COM有竞争力的有:
1.CORBRA,
2.EJB,
3.WebService,
具体就不说了,可能EJB及WebService使用比COM简单,但速度慢。以后的发展方向。。。
.net可以两种方法开发com:
1.用MFC的建立重量级com:
1).如果建立dll的com,可以选MFC DLL,然后在附件功能里面选支持自动化。
2).如想建立EXE型的com,可以在高级功能里面支持自动化。
3).如果你建立工程时忘记了,可以以后在工程里面手工加入,不过这就要看你的本领了,最好不要这样!除非你时技术狂热者或者逼上梁山了。。。。
2.用ATL建立轻量级COM。这个楼上几位讲了,然后再添加ATL简单对象,具体不讲了。。。
谁说在.net下不能创建com? vc.net同样提供了ATL 7.0给客户创建com并且别之前的atl版本更规范和强大
解决方案5: 简单来说,所有的技术出现都是为了解决技术和战略的需要,
不能说哪一种技术过时了,现在用标准C写程序的大有人在。
用VC6写程序的也不占少数吧(我也是其中一员)。
楼主通过学习COM不要当做一种技术,要当做一种思想来学。
(个人意见仅供参考)
这个可以以接口方式来解释,微软为了解决在不同语言共享写好的模块,所以产
生COM和ACTIVEX,后来JAVA利用了中间代码来解决了这个问题,所以微软又在
。NET中使用了MSIL文件,用以解决跨语言的问题,来抗横JAVA
COM不过是组件技术的一种,只要是技术,都会过时的。COM也不例外。
组件思想是好的,但COM、CORBRA 都太复杂了。学习、应用成本太高。被更简单,至少是应用学习更简单的组件技术代替是不可避免的。
而且COM从出现到现在已经有十多年的历史了,MS推出.NET取代它也是情理之中的事。
VS2003中是可以创建COM组件的,创建一个ATL工程,在类视图中添加一个类试试?
mfc dll其实也是com啊