潘爱民的专栏

原创 《COM原理与应用》还要修订吗?收藏

新一篇:  推荐《编程之美》

 《COM原理与应用》还要修订吗?
潘爱民,2007.8.25
 
最近一段时间来,常常冒出一个念头,那就是,是否要修订一下《COM原理与应用》。97、98年的时候,因为看到市面上关于COM的书籍非常少,所以萌生了自己写一本COM书的念头,将近10年以后,市面上关于COM的书籍依然很少,是否再来一次写作呢?跨度十年为写同一个技术选题,这在计算机领域中是少见的,尤其是有关编程的题目。
 
《COM原理与应用》是我第一次尝试写作,原本没有多少期望,只是要打发一点时间,顺便整理一下自己的编程知识而已。后来的销量和受欢迎程度都超过了我的想象,我没有从这本书获得多少报酬,只是一点辛苦的稿费而已。
 
以前在学校工作的时候,还经常拿出COM的材料给年轻的同学们讲讲课,离开学校以后,便很少再介绍COM了,工作中用得不多。开始淡忘这个主题了。然而,近两年来,常常看到周围的同事为了COM而发愁,几乎可以说,不少人并非自愿地在学习和使用COM。
 
一年前,有一次晚上坐城铁时,邻座的小伙子正在看书,我无意中瞥见书上的一个图很熟悉,定睛看了一下,是COM接口图(且是我的书)。原来他在学习COM。而且,我还了解到,这本书06年还重印过(目前尚不清楚07年是否重印)。一本在我心目中很久远的编程技术书居然还在卖和读,不免心中一阵窃喜。
 
然而,真正打动我并由此想到修订的是工作中的种种需要。有许多同事和学生在使用DirectDhow,他们要写各种filter,免不了要跟COM打交道;还有些同事常常提起BHO的技术,因为他们要在IE中增加各种功能;有的同事和同学甚至还要用到AtiveScript技术,这更离不开COM了;又有一些同事要使用COM组件来实现跨进程,甚至远程通讯。这一切都离不开COM,甚至需要一定的精通程度才能做好编码和调试工作。尽管COM不再是热门的技术,但是在Windows平台上进行底层开发或者中间层开发的程序员时时处处能感受到COM的存在。
 
98年我开始COM写作的时候,毕竟还是经验不足,而且有些章节是边学边写的,所以,难免有些话题缺乏实践经验。而且,以我现在的眼光来看,很多地方在选材上也略有偏颇,比如COM开发部分讲述ATL太过于简略,在实际工作中很多人反映ATL太难学;COM应用部分还有更多的内容可以作一些细致的介绍,包括跟.NET的互操作;等等。局限于当时的眼光和精力,差不多也是尽力而为了。现在若再修订这本书,内容上可以做较大的变动,但需要耗费的精力绝不亚于当初的付出,这也是我难于下决心的原因。
 
另外,凡事讲究顺应时势,之所以现在看不到那么多关于COM的书籍,甚至原有的几本经典之作也已经绝版了,无外乎大家都看好了.NET和Java的广阔应用前景。而我呢,更喜欢钻研一点底层技术,是否还回到COM这个话题上,也着实很是矛盾。不知道是否还值得花上一年的业余时间来做这件看似逆潮流的事情呢?要做的话就在08年了,现在还不得而知。
 

发表于 @ 2007年08月26日 23:13:00|评论(loading...)|编辑

旧一篇: 最近的几个讲座

评论

#wanderpeople 发表于2007-09-04 20:03:50  IP: 222.35.146.*
我希望您修订一下,因为在工业控制领域,COM技术还在被广泛应用,而市面上很难见到好的COM书籍了,我们在公司能参考的多数是电子书,看着很累。
期待见到您的新书。
#eglic 发表于2007-09-06 17:50:48  IP: 221.221.177.*
期待修订版尽快出来
#xia renjie 发表于2007-09-11 02:18:24  IP: 222.212.85.*
COM原理比ATL更容易懂,修订时希望将ATL内容多讲些.
#xia renjie 发表于2007-09-11 02:21:20  IP: 222.212.85.*
同时将.net的内容多多联系下顺应潮流.
#UMU 发表于2007-09-11 17:37:25  IP: 222.76.226.*
不如写 .NET 原理,能用 SDK 写出 .NET 程序比较牛屄
#yellow_sun 发表于2007-09-15 02:27:46  IP: 220.248.229.*
支持潘老师的工作,非常期待!不会矛盾的,记得看过一篇文章,说到微软招不到懂COM编程的工程师,因为懂那个编程的,现在都已经到了项目总监的位置(我想指的可能是时间和年代久远),只有高薪请他们去微软做。现在没有几个人懂COM底层的东西,动不动就是.NET或是Java之类的。

不过书有没有市场到是一个问题,有时候很好的技术,却没有多少人愿意去看的,到是那些.NET之类的东东,人们都一窝蜂的去搞。

我真心的希望潘老师可以把那本Windows NT File System Internals译出来,可以说我算是一直在等,驱动开发网的那本,我不相信它的翻译质量,因为您是Windows Internals的译者,我觉得这本File System Internals如果不是您译的话,别人就更不适合了。

现在做文档和桌面安全的人越来越多,如果有高质量的文件系统驱动开发方面的资料,这方面的软件会成熟不少。
#applelure 发表于2007-09-21 21:46:23  IP: 219.148.157.*
现在COM+发展的怎么样?
#snow_yb 发表于2007-09-27 10:11:28  IP: 221.238.129.*
我是强烈期待
#zrhown 发表于2007-10-08 16:24:25  IP: 202.106.189.*
我很想学,但不知如何下手!
#opengis 发表于2007-10-29 10:33:03  IP: 59.108.112.*
期待中,现在能看到的书基本都是2000年以前的了,所以很希望能有一本新的COM书的出现~~
#freetank 发表于2007-11-11 00:11:11  IP: 121.68.92.*
我的看法是没有必要。
如果新手真要学COM的话,我认为第一本书只能是《Inside OLE2》,该书在老潘的书上留有有明显的烙印:)
真要务实的干windows底层的话,我认为除了COM还有一个被忽略的领域:Windows security:LRSECURITY_ATTRITUBES到底是什么?logon session?windows station?DACL?NTLM/kerberos?。。。。该领域的权威当属Keith Brown的《Programming Windows Security》,该书有很烂的中文版,且无e书。若我是老潘你的话,我情愿:(若不考虑版权报酬:)把此书再翻译一次放在网上,或自己写一本,加上.NET Code Security,WCF的安全机制等等
#freetank 发表于2007-11-11 00:38:17  IP: 121.68.92.*
我总结的COM学习路线图
不二法门:抛却浮躁
C++(好书很多)->Programming Applications for Microsoft Windows->Inside OLE2->Essential COM->ATL Internals->Programming Windows Security->Programming Server-Side Applications for Microsoft Windows 2000->Inside Windows 2000 Distributed Services->Inside COM+->Transaction COM+:Building Scalable Applications->挺进.NET(书略)
#lazyter1 发表于2007-12-03 19:12:30  IP: 218.247.142.*
修订吧,为了配置一批真正的C++高手。



#flynetcn 发表于2007-12-07 09:56:21  IP: 124.254.12.*
参考一下现在那本书的销售情况吧。
#yin138 发表于2007-12-07 17:19:29  IP: 220.168.124.*
哦,这么都人都在支持啊,我看过那本书的前两部分,不过后面的没有看了,因为我不知道用在那里,在使用VB6开发的时候就知道应该如果使用资源,好像我学COM就知道了这些,呵呵.真是.....,不过能再有本能让我很容易懂的书就好了,Inside COM那本书,我看完了,懂了一些,但看老师的这本书就有模糊了,我在想是不是我看的不够详细,呵呵,上面有人说到Inside OLE,我想我还是应该看一下这本书吧,希望自己能加倍努力.
#fgynew 发表于2007-12-14 15:10:56  IP: 218.83.157.*
我两年前在学校里读《COM原理与应用》的,说实在的,我觉得这是一本理论方面的书,实践性不是很强.当然了,我学com费了好大的劲.我参加工作2年了,几乎每一个项目都用到了com,现在这个项目,甚至用到了atl server.用到的好多类库比如msxml, ado等等,都是com组件.这个对com的要求就更高了.我强烈的建议这本书书重写,有些章节没有必要在讲了,有些章节需要仔细地讲.现在vs2008都快出来,所以建议多给些应用的实例.
#tjmiaowang 发表于2008-01-05 22:02:38  IP: 221.221.147.*
观望,嘿嘿,我还正在看《Com原理与应用》
#lazyter1 发表于2008-01-08 13:29:23  IP: 218.247.142.*
牛 ,居然我回帖的校验码是ATL1


等待。
#xierenhui 发表于2008-01-23 17:42:33  IP: 125.33.195.*
写吧,潘大哥,我就是一路跟这本书过来的
#wkzust 发表于2008-02-02 10:03:32  IP: 218.108.52.*
支持修订!!!
#savage54321 发表于2008-02-13 20:26:33  IP: 123.113.130.*
To Pan Aimin:
COM is dead, don't think about it. You need to do some job at .net Remoting, web service or WCF to tutor young people.
#softarts 发表于2008-02-21 17:45:00  IP: 202.108.140.*
我倒是觉得有必要讲讲net与com的interop
essential com已经讲得很好了
#lazyter1 发表于2008-03-04 16:49:07  IP: 59.108.74.*
希望潘老师能公布一下时间,我们都能着那。

#linxiangyao 发表于2008-03-14 22:00:27  IP: 121.15.99.*
关于com只看了两本书,com本质论,com原理与应用,而这都是和潘老师有关。还是很感谢潘老师的,要是国内多点这样的人就好。
#zixu4728 发表于2008-03-25 15:36:59  IP: 222.66.131.*
非常期待!
#jin_whu 发表于2008-04-05 18:12:34  IP: 125.33.75.*
能不能在这里问个问题,我在学习COM组件聚合时,有个地方一直没明白。为了实现组件A聚合组件B的某个接口ISomeInterface;对A初始化的时候,创建内部组件B,并把A的this指针传给B,内部组件返回INondelegatingUnknown接口并传给A的成员变量m_pUnknownInner,最后在A中查询ISomeInterface时,使用了m_pUnknownInner->QueryInterface(...);可是INondelegatingUnknown的定义中没有QueryInterface啊,只有NondelegatingQueryInterface。 这是为什么?
#linuxmao 发表于2008-04-26 00:12:30  IP: 219.140.155.*
TO: jin_whu
你是武大的?我今天刚刚看了这里,觉得是那里写错了,应该用NondelegatingQueryInterface。
#HowdyHappy 发表于2008-06-01 15:30:25  IP: 125.73.45.*
修或不修?有结果了吗,不能让人干着急呀
#xuleicsu 发表于2008-06-13 09:53:20  IP: 211.144.106.*
非常希望尽快修订
#joyjjjz 发表于2008-06-22 15:10:44  IP: 60.176.203.*
已经08年来了哎
#cheungmine 发表于2008-06-26 19:07:00  IP: 211.148.7.*
完全没必要,多少新东西出来啊。而学习COM是很费功夫的,最可恨的是COM是为跨平台而设计的,到现在只能跨语言而已。
所以,任何时候别信 MS的宣传。比如我就没看到谁用COM+来做项目。我自己费了2年的时间,精通了COM+,结果找工作都用不到。
有这个时间还不如学ACE和TAO。
别再鼓捣COM来害人了。
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © 潘爱民