《Visual Basic高效编程》的特色在于它包含近50条最出色的编程实践准则,可以给从事实际开发工作的程序员提供具体的指导,以设计出更好的应用系统,编写出更优秀的代码。无论读者感兴趣的领域是COM、数据库,或者是使用MTS和COM+来开发分布式系统,本书都会给读者提供已在实践中证明的永远行之有效的解决方案,这些解决方案是本书的多位作者在VB应用领域多年咨询和培训中获得的经验浓缩和提炼。
《Visual Basic高效编程》着眼于一般的编程实践,从防错性编程到错误处理以及面向对象设计。另外,本书涉及COM使用过程中的关键性问题:接口、兼容性以及类的设计。在介绍成功的Web编程实践之后,随之介绍了构建多层应用系统时所应遵循的准则。本书还着重介绍了VB最重要的应用方向中数据库和高效数据访问方面的技巧和问题。
本书亮点:
·合理的编程实践和面向对象程序设计原则,这些原则不仅适用于VB6,在VB.NET中也同样适用。
·编写在MTS和COM+环境中都能正确运行的代码。
·不必配置所有的组件就可提高程序的可扩缩性。
·在Web应用程序中使用XML、IIS和ASP。
·设计类以实现高效数据库访问。
·作为卓有成效的实践经验的结晶,《Visual Basic高效编程》能使读者提高自身的编程技能,成为更高效的软件开发人员。
译者序
原书序
致谢
第1章 由随意编程转变为遵循软件工程原则
1.1 规则1-1:最大限度地发挥VB编译期类型检查的潜能
1.1.1 在每个模块的顶端使用Option Explicit语句
1.1.2 避免不经意地使用Variant数据类型
1.1.3 在VB IDE中运行时, 使用Start With Full Compile命令
1.2 规则1-2:使用Debug.Assert显式声明假设
1.3 规则1-3:编译期条件不同时, 考虑使用#If语句
1.4 规则1-4:抛出错误以提示异常
1.5 规则1-5:有效的错误处理:局部捕获, 全局处理
1.6 规则1-6:了解类型和类的区别
1.7 规则1-7:采用面向对象的设计方法
1.8 规则1-8:推荐采用用户自定义类型而不是类来定义值类型
1.9 规则1-9:一般任务的自动化
第2章 设计. 构建和使用基于COM的组件
2.1 规则2-1:从接口的角度进行思考
2.2 规则2-2, 使用自定义接口
2.3 规则2-3:最好使用IDL独立定义自定义接口
2.4 规则2-4:使用自定义回调避免基于类的事件的局限性
2.5 规则2-5:要谨慎保持兼容性
2.5.1 脚本客户端程序
2.5.2 已编译的客户端程序
2.5.3 版本兼容的接口
2.6 规则2-6:选用正确的COM激活技术
2.6.1 COM激活
2.6.2 New操作符
2.6.3 CreateObject
2.6.4 GetObject
2.6.5 GetObjectContext.CreateInstance和Server.CreateObject
2.6.6 性能考虑
2.7 规则2-7:慎重使用Class_Terminate
2.8 规则2-8:根据会话而不是实体来建模
2.9 规则2-9:除了简单的小规模应用系统, 避免使用ActiveX可执行程序
第3章 MTS. COM+和VB-中间层
3.1 规则3-1:理解MTS和COM+应用程序设计
3.2 规则3-2:不要在MTS或COM+中使用单例
3.3 规则3-3:了解New. CreateObject及GetObjectContext.CreateInstance的适用场合
3.3.1 MTS和Windows NT4
3.3.2 COM+和Windows 2000
3.3.3 使用New遇到的更多问题
3.4 规则3-4:理解使用SetComplete的真实目的
3.5 规则3-5:对事务自动中止方式的思考
3.6 规则3-6:不要重新设计DBMS
3.7 规则3-7:不必配置所有组件
3.8 规则3-8:避免将以后会后悔的东西编译进DLL
3.9 规则3-9:将代码从MTS向COM+移植的实践技巧
3.9.1 在COM+中不再需要调用GetObjectContext.CreateInstance
3.9.2 将Me作为参数传递时, 不再需要调用SafeRef
3.9.3 当事务中的次要对象返回错误时要小心, 可能会获得形如"Method~of Object Failed~"的错误信息, 而不是所指定的在错误传播之前返回的丰富错误信息
3.9.4 使用ObjectConstruct字符串
3.9.5 在COM+应用程序中进行进程内调用时执行声明性安全校验
3.9.6 在COM+中刷新组件命令不再是必需的
3.9.7 在安装Windows 2000以前版本的计算机上, COM+导出的客户安装程序需要Microsoft Installer(MSI)
3.10 规则3-10:编写运行于MTS和COM+中的代码的实践技巧
3.10.1 创建对象时坚持使用GetObjectContext.CreateInstance
3.10.2 使用可编程控制的安全措施对访问权限进行校验, 而不要依赖于声明性安全措施
3.10.3 事务性方法调用失败时, 在次要对象中最好使用DisableCommit而不是SetAbort
3.10.4 不要无意中将DLL安装到用户计算机上
3.10.5 坚持使用ObjectContext接口
3.10.6 分发对象引用时继续使用SafeRef
第4章 Web和VB
4.1 规则4-1:理解IIS体系结构
4.1.1 IIS的内部结构
4.1.2 提高服务器的可扩缩性
4.2 规则4-2:管理应用程序状态以达到最高效率
4.2.1 使用BAS模块数据
4.2.2 使用SPM
4.2.3 使用ASP Application对象
4.2.4 权衡各种方案的利弊
4.3 规则4-3:管理会话状态以达到最大可扩缩性
4.3.1 将会话限制在单机上
4.3.2 在客户机上存储会话信息
4.3.3 使用cookie
4.3.4 QueryString变量
4.3.5 隐藏的表单域
4.3.6 在数据库中存储状态信息
4.4 规则4-4:理解DCOM和HTTP的区别
4.4.1 使用RPC和DCOM进行通信
4.4.2 使用HTTP通信
4.4.3 在分布式应用程序中不使用ASP
4.4.4 使用HTTP的不利方面
4.5 规则4-5:为脚本环境(如ASP)编写COM组件
4.5.1 创建默认接口
4.5.2 向可编写脚本的对象传递参数
4.5.3 关于自定义接口
4.5.4 解决方案
4.6 规则4-6:理解COM对象与ASP之间如何交互
4.6.1 ASP内置对象
4.6.2 VB COM对象和STA
4.6.3 充分利用STA线程模型
4.6.4 在VB中如何访问ASP内置对象
4.6.5 直接访问ASP内置对象的好处
4.6.6 使用ASP内置对象的弊端
4.7 规则4-7:使用XML代替专有数据传输格式
4.8 规则4-8:慎重考虑表示和业务逻辑的关系
4.8.1 使用MTS组件
4.8.2 使用WebClasses
4.9 规则4-9:从数据到表示的XSLT实现
4.9.1 XSLT的概念
4.9.2 XSLT方法的好处
4.9.3 使用过程方法转换数据集
4.9.4 利用XSLT的方法转换数据集
4.9.5 XSLT的缺点
第5章 VB高效数据访问
5.1 规则5-1:高效访问的基础:往返开销. SQL语句和数据提供者
5.1.1 使往返开销最少
5.1.2 确定发送SQL查询的最好方法
5.1.3 选择合适的提供者
5.2 规则5-2:不要过分封装数据访问
5.2.1 纯粹的面向对象技术
5.2.2 追求纯粹OOD效果的不足之处
5.2.3 解决办法:使用存储过程
5.2.4 如果需要多个数据库服务器该如何处理
5.3 规则5-3:切莫将数据库连接当代数据成员
5.4 规则5-4:死锁是常见的-防错性程序开发
5.4.1 锁定
5.4.2 串行化事务和锁管理器
5.4.3 死锁
5.4.4 在应用程序设计中尽量减小死锁的几率
5.4.5 将事务运行时间降到最短
5.4.6 将锁定时间降至最短
5.5 规则5-5:尽可能使用firehose游标
5.6 规则5-6:作出正确的数据搜索决策(避免滥用SelectSingleNode)
5.6.1 Seek-and-Find组件
5.6.2 了解解决具体问题需选用哪一种方法
目前,利用Microsoft Windows平台来开发分布式多层应用程序已成为愈来愈多程序员的需求。任何以Microsoft Windows作为基础平台构建多层应用的开发人员,都必须依赖于许多独立的软件组件。组件对象模型(Component Object Model,COM)正是将这些软件组件组合在一起的重要工具和思想。COM+技术,即COM的扩展版本,它的发展经历了一个相当长的历程,这甚至可以追溯到Windows操作系统本身开始的时候。它经历了COM、DCOM及目前的COM+几个发展阶段,目前它的技术已相当成熟,相信会成为大型程序设计思路的主流方向。
这本由美国DevelopMentor公司从事应用系统咨询和开发工作的五位经验丰富的计算机专家共同编写的书籍,是为那些希望在Microsoft Windows 2000及NT环境下进行分布式应用开发的程序员所编写的一本关于在Visual Basic中使用COM技术的较全面的参考书。书中介绍了COM和COM+的基本原理,讲述了基于接口、基于属性编程的概念和原理,探讨了如何使用Visual Basic创建并发布组件,分析了COM+运行时环境的体系结构及如何利用COM+编写配置型组件,讨论了IIS和ASP中最为重要的内容,以及数据库访问等方面的知识。本书在揭示大量COM+技术内幕的同时,也包含了许多源代码供读者分析和实践以便更深刻地理解书中所介绍的理论。
本书的读者对象是那些对程序设计原则有很好的了解,并使用过Visual Basic的中、高级程序员。换句话说,如果您完全是一名初学者,则本书并不适合您,但如果您有一些程序设计经验的话,那么马上就可以从中获得一些信息。随着书中讲述内容的不断深入,所讲述的主题也越来越难,对读者理解能力的要求也越来越高,这要求读者具有中高级水平,已经在程序设计方面下过一番气力。但这并不意味着本书难以理解,事实上书中的各个主题都是用容易理解的简单语句阐述。
本书由严静东、郭文明、曹蓉蓉、李德勇主持翻译,由战晓苏主审。参加翻译工作的人员还有:张乐新、张立莉、张立东、曾利卫、蒋佳。参加修订和审校工作的人员有:薜林光、王友军、徐飞、华书重、张敬松、杨天梁、张志刚、刘世华、邹德新、刘庶忠、张华勋、武文、夏刚、秦晓周、张云飞、方林、涂卫东、王为聘、赵真、邹德新、俎晓波等。在翻译过程中,译者力求准确地反映原著的内容,但由于水平有限,加上时间紧迫,错误之处在所难免,望广大读者批评指正。