本书全面介绍微软COM+和DNA体系结构,使读者建立和掌握COM+/DNA应用开发环境。深入学习COM/DCOM的主要概念,介绍如何使用Visual C++和Visual Basic建立服务器/客户应用的程序设计方法,以及错误处理和程序调试的基本技术。本书还重点介绍使用COM+实现多层应用的原理与方法。全面介绍了Windows 2000环境下的COM+安全特性,介绍使用AD0、SQL Server进行数据库程序设计的基本技巧,以及使用微软Web应用工具Active Server Pages创建Web应用的方法。本书适合于具有一定程序设计经验的读者自学COM+编程。\r\n
\r\n
第一部分 COM++和Windows DNA介绍 \r\n\r\n 第1章 什么是COM++ \r\n\r\n 1. 1 对象的基本概念 \r\n\r\n 1. 2 Mcrosoft 的COM++历程 \r\n\r\n 1. 3 COM++的定义 \r\n\r\n 1. 4 COM的作用预览 \r\n\r\n 1. 5 小结 \r\n\r\n 第2章 三层应用和Windows DNA \r\n\r\n 2. 1 分布式系统的发展过程 \r\n\r\n 2. 2 Windows DNA总体结构 \r\n\r\n 2. 3 Windows DNA分层 \r\n\r\n 2. 4 小结 \r\n\r\n 第3章 Windows DNA \r\n\r\n 3. 1 总体结构 \r\n\r\n 3. 2 Windows 2000 \r\n\r\n 3. 3 Windows 2000 Server \r\n\r\n 3. 4 开发工具 \r\n\r\n 3. 5 COM十预览 \r\n\r\n 3. 6 小结 \r\n\r\n 第二部分 C0M基础 \r\n\r\n 第4章 COM客户:概念及编程 \r\n\r\n 4. 1 银行账户管理服务器程序 \r\n\r\n 4. 2 COM服务器的结构 \r\n\r\n 4. 3 COM术语及概念 \r\n\r\n 4. 4 COM客户端程序编程模型 \r\n\r\n 4. 5 开发一个COM客户端程序 \r\n\r\n 4. 6 COM客户端编程的其他话题 \r\n\r\n 4. 7 Windows 注册表和COM \r\n\r\n 4. 8 小结 \r\n\r\n 第5章 C++和对象组件模型(COM) \r\n\r\n 5. 1 对象. 组件和COM \r\n\r\n 5. 2 C++和COM \r\n\r\n 5. 3 用C++实现COM类 \r\n\r\n 5. 4 小结 \r\n\r\n 第6章 进程内COM服务器 \r\n\r\n 6. 1 COM服务器的概念 \r\n\r\n 6. 2 用C++实现一个进程内COM服务器 \r\n\r\n 6. 3 使用DLL \r\n\r\n 6. 4 用VisualBasic实现一个进程内COM服务器 \r\n\r\n 6. 5 小结 \r\n\r\n 第7章 Active模板库 \r\n\r\n 7. 1 Active Template Library(Active模板库) \r\n\r\n 7. 2 VisualC++和ATL \r\n\r\n 7. 3 IDL的多接口 \r\n\r\n 7. 4 ATL的COM包装类 \r\n\r\n 7. 5 小结 \r\n\r\n 第8章 Visual C++对COM的支持 \r\n\r\n 8. 1 Visual C++及COM客户端程序 \r\n\r\n 8. 2 Visual C++的COM服务类 \r\n\r\n 8. 3 小结 \r\n\r\n 第9章 EXE服务器 \r\n\r\n 9. 1 应用程序集成与oIE \r\n\r\n 9. 2 EXE服务器的结构 \r\n\r\n 9. 3 用ATL实现的EXE服务器 \r\n\r\n 9. 4 小结 \r\n\r\n 第10章 DCOM介绍 \r\n\r\n 10. 1 将已有的COM对象进行远程分布 \r\n\r\n 10. 2 DC0M编程 \r\n\r\n 10. 3 DC0M体系结构 \r\n\r\n 10. 4 小结 \r\n\r\n 第11章 自动过程(Automation)及用Visual Basic进行C0M编程 \r\n\r\n 11. 1 自动过程 \r\n\r\n 11. 2 ATL和VBScript下的自动过程 \r\n\r\n 11. 3 Visual C++自动过程控制器(Automation Controller) \r\n\r\n 11. 4 自动过程与VisualBasic \r\n\r\n 11. 5 集合 \r\n\r\n 11. 6 小结 \r\n\r\n 第12章 错误处理及调试 \r\n\r\n 12. 1 使用HRESULT \r\n\r\n 12. 2 COM错误接口 \r\n\r\n 12. 3 自动过程异常事件 \r\n\r\n 12. 4 Visud Basic的COM错误处理 \r\n\r\n 12. 5 程序跟踪及调试 \r\n\r\n 12. 6 小结 \r\n\r\n 第13章 COM中的多线程 \r\n\r\n 13. 1 开发并行程序 \r\n\r\n 13. 2 COM中的套间(apartment)及多线程 \r\n\r\n 13. 3 在COM中实现多线程 \r\n\r\n 13. 4 小结 \r\n\r\n 第三部分 Windows DNA及COM+ \r\n\r\n 第14章 COM+体系结构基础 \r\n\r\n 14. 1 为什么要用COM+ \r\n\r\n 14. 2 可声明的. 基于属性的编程 \r\n\r\n 14. 3 COM+目录管理器 \r\n\r\n 14. 4 COM+术语 \r\n\r\n 14. 5 COM+体系结构 \r\n\r\n 14. 6 小结 \r\n\r\n 第15章 C0M+入门 \r\n\r\n 15. 1 Visual Basic的CO+组件 \r\n\r\n 15. 2 Visual C++的COM+组件 \r\n\r\n 15. 3 COM+管理对象 \r\n\r\n 15. 4 远程发布COM+应用 \r\n\r\n 15. 5 小结 \r\n\r\n 第16章 COM+中的并行 \r\n\r\n 16. 1 同步与套间 \r\n\r\n 16. 2 同步与活动(Activity) \r\n\r\n 16. 3 编程示例 \r\n\r\n 16. 4 小结 \r\n\r\n 第17章 Windows 2000和COM+安全性 \r\n\r\n 17. 1 安全性的基本问题 \r\n\r\n 17. 2 Windows 2000系统管理入门 \r\n\r\n 17. 3 NT安全性 \r\n\r\n 17. 4 COM安全性 \r\n\r\n 17. 5 COM+安全性 \r\n\r\n 17. 6 小结 \r\n\r\n 第18章 SQLServer和ADO指南 \r\n\r\n 18. 1 SQLServer 7. 0基础 \r\n\r\n 18. 2 用SQLServer 7. 0管理数据库 \r\n\r\n 18. 3 统一数据访问 \r\n\r\n 18. 4 数据库编程入门 \r\n\r\n 18. 5 ActiveX数据对象编程 \r\n\r\n 18. 6 三层COM+应用程序 \r\n\r\n 18. 7 电子交易游戏案例研究 \r\n\r\n 18. 8 小结 \r\n\r\n 第19章 COM+中的事务 \r\n\r\n 19. 1 事务处理的规则 \r\n\r\n 19. 2 Microsoft的事务技术 \r\n\r\n 19. 3 用COM+进行自动事务处理 \r\n\r\n 19. 4 COM+下的事务编程 \r\n\r\n 19. 5 小结 \r\n\r\n 第20章 COM+的Web应用程序 \r\n\r\n 20. 1 传统的Web技术 \r\n\r\n 20. 2 Internet编程 \r\n\r\n 20. 3 Microsoft Web技术 \r\n\r\n 20. 4 Active ServerPages和COM+ \r\n\r\n 20. 5 小结 \r\n\r\n 第21章 MSMQ和队列组件 \r\n\r\n 21. 1 消息队列和MSMQ \r\n\r\n 21. 2 MSMQ的使用和编程 \r\n\r\n 21. 3 队列组件 \r\n\r\n 21. 4 小结 \r\n\r\n 第22章 COM+事件 \r\n\r\n 22. 1 COM中的事件和连接指针 \r\n\r\n 22. 2 CoM+中的松耦合事件与发布/订阅(publisher/subscriber)模型 \r\n\r\n 22. 3 COM+事件举例 \r\n\r\n 22. 4 小结 \r\n\r\n 第23章 COM+和可伸缩性 \r\n\r\n 23. 1 Microsoft集群技术(Cluster Technology) \r\n\r\n 23. 2 COM+组件负载平衡 \r\n\r\n 23. 3 对象缓冲池 \r\n\r\n 23. 4 COM+的重要意义 \r\n\r\n 22. 5 小结 \r\n\r\n 附录A 参考资料 \r\n\r\n 附录B 案例研究:电子商务游戏案例学习 \r\n\r\n B. 1 建立 \r\n\r\n B. 2 游戏指南 \r\n\r\n B. 3 游戏的分布式版本 \r\n
\r\n
本书旨在为学习COM+并用其建造基于Microsoft的Windows DNA体系结构的三层应用程序提供一个实用指南. 本书基于多年的COM编程及教学的经验, 侧重于开发者的需求, 同时对COM+的其他人员, 包括结构分析员及系统管理员都会有相当大的帮助.
学习COM+这一门新技术非常愉快而且有趣, 但也会很艰难, 因为他涉及到非常多的概念及工具. 本书的目的在于尽可能将所涉及的内容在本书内予以全面介绍, 并对演示COM+的主要服务的示例中所需要的知识提供基本介绍(见第1章中关于什么是COM+的讨论). 特别是本书还将对集成到COM+的COM基础加以系统的论述, 所以本书将是非常易读的, 即使是对那些以前不曾有过COM经验的人也是如此. 关于COM的章节会被明确地予以标出, 所以对那些已有COM经验的人可以直接跳到COM+的章节上.
本书分为三部分. 本书的第1部分介绍COM+以及微软公司的分布式互联网络应用结构(即Microsoft Distributed interNet Application, 或Windows DNA). Windows DNA结构是微软公司用来建立可靠的三层分布应用的蓝图. COM+是这个结构的基础核心. 本书从介绍COM+的总体概念着手, 也就是先来看一下整个森林. 对COM十技术的介绍是从历史的角度来进行的, 即COM+是对象和组件技术的发展结果. 而对Windows DNA的介绍则重点在于理解它是微软的传统分布式应用和基于Web应用的所有软件的组成原理. 在第1部分中还有一章用来建立一个用于实习本书内容的实习环境(Testbed). 由于将会有许多作业要做, 最好是早一些来建立该实习环境, 这样就可以随时解决学习中碰到的难题.
本书第二部分对COM+的底层COM进行全面介绍. 第三部分则介绍COM+本身, 并介绍如何建造Windows DNA模型下的多层应用程序.
本书使用C++和Visual Basic作为主要的开发语言. COM的优势之一是他的语言无关性, 且一个应用程序的不同部分可以用其各自最适合的语言进行开发, 这种方法在应用开发中非常有用. 第三部分中同时使用了C++和Visual Basic, 但C++要用得多一些, 因为C++在帮助理解COM的概念上要比Visual Basic略强一些. Visual Basic有时隐藏了太多的细节. 另一方面, 在第三部分中, 我们侧重于VisualBasic多一些, 因为我们只对COM+提供的一些重要的服务感兴趣, 而不希望陷到C++的比较复杂的代码之中. 例如, 我们使用Visual Basic作为一个简单的接口通过ADO对数据库进行访问, 由Visual Basic实现的数据库访问组件可以方便地被C++实现的商业对象所调用. 请注意, 在实际应用中, 上述使用顺序可能正好相反. 用C++通过OLE DB实现一个数据库组件, 以及用VisualBasic实现商业逻辑可能效率会更高. 本书会有助于这种混合语言的应用开发.
对Java来说, 用Microsoft版本的Java, Visual J++实现COM组件是非常灵活的. 事实上, Java的“一个类可实现多个界面”的特点使Java最适用于COM. 虽然对Java的使用证明了用户对跨平台操作的兴趣, 但标准Java并不提供这种对COM的支持. Visual J++的未来很难预料, 这是因为有迹象表明微软有可能将转换到他自己的呢称“COOL”的语言上去, 由于这些原因, 而且为了使本书的内容集中在一定的范畴之内, 我们将集中讲述C++和Visual Basic.
同时使用C++和Visual Basic固然很好, 但很可能读者会更倾向于其中某一种语言, 这是否会影响本书的使用性呢?本书的结构试图使其同时适用于C++和Visual Basic程序员. 一个C++程序员将会毫无困难地创建简单的VisualBasic客户程序. 对Visual Basic服务器的实现也作了全面介绍, 从而对第三部分中VisualBasic的使用作了一定的准备. 如果是Visual Basic程序员, 将第一部分读完, 然后读第4. 6和9至13章, 重点是概念部分. 第11章应该仔细学习一下, 这样就可以作好学习第三部分的准备工作了. 第三部分主要是由V1sualBM5c组成的.
另一个重要的题目是数据库编程, 同样, 某些读者可能没有很多的背景知识, 可能有些读者曾经使用过类似于Access的桌面数据库, 但对SQLServer没有任何经验. 第18章提供了一个完整的使用SQLServer 7. 0的教程, SQLServer 7. 0实际上是一个非常易于使用的数据库. 在这一部分中, 还包括一个对OLE DB和ADO的讨论, 数据库是在事务和Web应用开发两章中使用的.
许多公司都已开始转向基于Web的应用, Web应用的最大好处是易于客户端的配置, 实际上客户端所需要的就是一个Web浏览器, 客户可以通过浏览器在世界的任何地方运行应用程序. 使用COM+, 服务器功能会相当强, 本书最长的一章, 第20章将包括Web编程基础和如何在中间件使用COM+.
NT4. 0上的Windows DNA中两个重要的技术是Microsoft Message Queue(微软消息队列MSMQ)和Microsoft Transaction Server(微软事务服务器MTS). 第21章将对MSMQ的使用进行介绍. MSMQ由于其提供了队列组件(Queued Component)的底层结构而在COM+中有着重要的地位, 而且当需要某些扩充的特性时, MSMQ有时会直接用到COM+应用程序中. MTS则不同, 他完全归入了COM+, 而并不作为单独的实体出现. 除了第一部分的综述外, 不会再对MTS有任何深入的讨论. 本书重点是讨论COM+应用开发过程, 第二部分讨论的COM的基础概念也很重要, 但MTS之类可以略去.
学习一门新技术的重要一步是操作练习, 本书贯穿始终的是许多程序实例, 完整的代码在随机的CD—ROM中提供. 在某些章节中有一些示范练习, 引导读者怎样完成上机操作, 大多数例子有意设计得非常简单和精炼, 突出概念的理解, 但另一方面, 这种小程序不能实际说明怎样创建一个完整的三层应用. 为此本书包括了一个完整的“E1ectronic Commerce Game TM”的实例研究, 希望读者能从这两种实例中得到启发和收获.
本书提供的COM+实例使用的是Beta版软件(Windows 2000 Beta3). 最终产品中会有一些变化. 的确, Microsoft在本书的编写过程中就已经进行了一些修改. 存储器数据库(InMemory Database, IMDB)从Windows 2000的最终发行包中被删除, 同时, 组件负载平衡(Component Load Balance:GLB)服务被移出而成为一个单独的产品. 据此, 作者在本书中也删除了IMDB章节, 但保留关于CLB的一些内容. 本书所提供的应用是作者在写作时所能使用的最先进的. 我将在我的Web站点www. 0bjectInnovations. com登载最新的关于COM+的消息. 该站点会镜像到出版公司的Web站点上, 在COM+部分将包括对本书的修订和更新. 程序实例的更正和新技术的资料及实例.
COM+也许是Microsoft推出的最激动人心的新技术. 很难想象还有什么人比Bob 0berg更有资格来写一本关于COM+的大部头的书. Bob具有高水平技术人员. 优秀作者和天才老师的素质. 多年来, Bob一直从事教学工作, 并为UCI公司编写教材. 对那些急欲学到新的软件技术的学生, 他总是怀着极大的热情和耐心去满足他们的要求, 他的这些优点甚至在书中也有所反映.
我最喜欢《深人学习:COM+高级编程》这本书的原因是它的内容广泛. 他不仅写了COM+, 还包括了COM基础及Windows DNA的一些相关技术. 本书的COM基础部分提供了对COM和DCOM的最好介绍, 对这一点我并不感到惊奇, 因为Bob在很长一段时间里一直在教授COM. 0LE和Activex. 他在UCI公司教授的第一门微软课程“用MFC应用程序实现0LE”. 他自己的“COM和0LE”课程. “COM及DCOM”课程和“使用Activex进行Internet编程”等课程都得到广大学生的赞赏. Bob总是善于非常快地掌握一门新技术. 现在, 他开始热心鼓励人们学习COM+, 并使大家非常清楚地了解这一门技术.
COM+的学习是一次相当大的挑战, 因为他涉及到数据库事务处理. 安全性. Web编程等等. Bob在本书中对这些重要的内容都有全面的介绍, 从而使本书更易于理解. 光盘中有许多很好的例子和程序, 这些实例已全部集成到本书中, 书中还有很多演示. 该书的学习使我感觉犹如上了一门Bob的课程. 第1章中曾把COM+的学习比作一次旅途, 我非常愉快地走道本书的所有行程, 我相信你也会旅途愉快.
UCI总裁Andrew Scoppa