为了使现有的优秀组件能够继续使用并充分利用.NET Framework的新功能,本书以30个实用组件为例,详细讨论如何按照.NET的要求重新设计和编写传统组件。本书中的组件被分为5部分,分别涉及应用程序组件、GUI和图形、网络和文件系统、安全性、模式和算法等。对于这些组件,本书提供了大量现成的解决方案,只要对这些方案做很小的调整就可以应用到您自己的程序中,可大大节约您宝贵的编程时间。\r\n 本书要求读者已经非常熟悉Visual Basic.NET及其语法,并理解由.NET Framework提出的反射、Remoting和线程处理等概念,适合于有一定Visual Basic.NET开发经验的中高级用户阅读。
第1部分 应用程序组件\r\n\r\n第1章 Splash屏幕\r\n\r\n1.1 方案\r\n1.2 技术\r\n1.3 设计\r\n1.4 实现\r\n1.5 演示\r\n1.6 局限性\r\n1.7 扩展\r\n\r\n第2章 产品许可\r\n\r\n2.1 方案\r\n2.2 技术\r\n2.3 设计\r\n2.4 实现\r\n2.4.1 强名程序集\r\n2.4.2 生成许可\r\n2.4.3 生成公钥/私钥\r\n2.5 演示\r\n2.6 局限性\r\n2.7 扩展\r\n\r\n第3章 应用程序设置编写器\r\n\r\n3.1 方案\r\n3.2 技术\r\n3.3 设计\r\n3.4 实现\r\n3.5 演示\r\n3.6 局限性\r\n3.7 扩展\r\n\r\n第4章 自动部署\r\n\r\n4.1 方案\r\n4.2 技术\r\n4.3 设计\r\n4.3.1 防止浏览器闪烁\r\n4.3.2 解决反串行化问题\r\n4.3.3 支持的应用程序配置文件\r\n4.4 实现\r\n4.4.1 Launcher类\r\n4.4.2 ConfigurationSettings类\r\n4.5 演示\r\n4.6 局限性\r\n4.7 扩展\r\n\r\n第5章 本地及远程进程启动器\r\n\r\n5.1 方案\r\n5.2 技术\r\n5.3 设计\r\n5.4 实现\r\n5.5 演示\r\n5.6 局限性\r\n5.7 扩展\r\n\r\n第6章 命令行参数分析器\r\n\r\n6.1 方案\r\n6.2 技术\r\n6.3 设计\r\n6.4 实现\r\n6.5 演示\r\n6.6 局限性\r\n6.7 扩展\r\n\r\n第2部分 GUI与图形\r\n\r\n第7章 文本框有效性验证\r\n\r\n7.1 方案\r\n7.2 技术\r\n7.3 设计\r\n7.4 实现\r\n7.5 演示\r\n7.6 局限性\r\n7.7 扩展\r\n\r\n第8章 正则表达式文本框\r\n\r\n8.1 方案\r\n8.2 技术\r\n8.3 设计\r\n8.4 实现\r\n8.5 演示\r\n8.6 局限性\r\n8.7 扩展\r\n\r\n第9章 请求富体字段验证器\r\n\r\n9.1 方案\r\n9.2 技术\r\n9.3 设计\r\n9.4 实现\r\n9.5 演示\r\n9.6 局限性\r\n9.7 扩展\r\n\r\n第10章 高亮显示RichTextBox中的内容\r\n\r\n10.1 方案\r\n10.2 技术\r\n10.3 设计\r\n10.4 实现\r\n10.5 演示\r\n10.6 局限性\r\n10.7 扩展\r\n\r\n第11章 ListView排序器\r\n\r\n11.1 方案\r\n11.2 技术\r\n11.3 设计\r\n11.4 实现\r\n11.5 演示\r\n11.6 局限性\r\n11.7 扩展\r\n\r\n第12章 文本图像生成器\r\n\r\n12.1 方案\r\n12.2 技术\r\n12.3 设计\r\n12.4 实现\r\n12.5 演示\r\n12.5.1 WinForms示例\r\n12.5.2 类重写示例\r\n12.5.3 WebForm示例\r\n12.6 局限性\r\n12.7 扩展\r\n\r\n第3部分 网络与文件系统\r\n\r\n第13章 流辅助工具\r\n\r\n13.1 方案\r\n13.2 技术\r\n13.3 设计\r\n13.4 实现\r\n13.4.1 复制流\r\n13.4.2 写入文件\r\n13.4.3 向义件迫加内容\r\n13.4.4 转换成字符串\r\n13.4.5 转换成以像\r\n13.4.6 读、写任意对象\r\n13.5 演示\r\n13.6 局限性\r\n13.7 扩展\r\n\r\n第14章 灵活的套接字\r\n\r\n14.1 方案\r\n14.2 技术\r\n14.3 设计\r\n14.4 实现\r\n14.4.1 SmartConnection\r\n14.4.2 SmartListener\r\n14.5 演示\r\n14.6 局限性\r\n14.7 扩展\r\n\r\n第15章 内存映射的文件流\r\n\r\n15.1 方案\r\n15.2 技术\r\n15.3 设计\r\n15.4 实现\r\n15.5 演示\r\n15.6 局限性\r\n15.7 扩展\r\n\r\n第16章 MP3 ID3v1.1标记编辑器\r\n\r\n16.1 方案\r\n16.2 技术\r\n16.3 设计\r\n16.4 实现\r\n16.5 演示\r\n16.6 局限性\r\n16.7 扩展\r\n\r\n第17章 文件夹浏览器\r\n\r\n17.1 方案\r\n17.2 技术\r\n17.3 设计\r\n17.4 实现\r\n17.4.1 实现Win32API类\r\n17.4.2 实现 FolderBrowser类\r\n17.5 演示\r\n17.6 局限性\r\n17.7 扩展\r\n\r\n第18章 接口定位器\r\n\r\n18.1 方案\r\n18.2 技术\r\n18.3 设计\r\n18.4 实现\r\n18.5 演示\r\n18.6 局限性\r\n18.7 扩展\r\n\r\n第19章 PeopleSearcher类\r\n\r\n19.1 方案\r\n19.2 技术\r\n19.3 设计\r\n19.4 实现\r\n19.4.1 PeopleSearcher类\r\n19.4.2 Person类\r\n19.5 演示\r\n19.6 局限性\r\n19.7 扩展\r\n\r\n第4部分 安全性\r\n\r\n第20章 加密的通信程序\r\n\r\n20.1 方案\r\n20.2 技术\r\n20.3 设计\r\n20.4 实现\r\n20.5 演示\r\n20.6 局限性\r\n20.7 扩展\r\n\r\n第21章 XML Signing和 Verification类\r\n\r\n21.1 方案\r\n21.2 技术\r\n21.3 设计\r\n21.4 实现\r\n21.5 演示\r\n21.5.1 签名演示\r\n21.5.2 验证演示\r\n21.6 局惭胜\r\n21.7 扩展\r\n\r\n第22章 文件系统安全性\r\n\r\n22.1 方案\r\n22.2 技术\r\n22.3 设计\r\n22.4 实现\r\n22.5 演示\r\n22.6 局限性\r\n22.7 扩展\r\n\r\n第23章 Principal Logon类\r\n\r\n23.1 方案\r\n23.2 技术\r\n23.3 设计\r\n23.4 实现\r\n23.5 演示\r\n23.6 局限性\r\n23.7 扩展\r\n\r\n第24章 Windows Logon类\r\n\r\n24.1 方案\r\n24.2 技术\r\n24.3 设计\r\n24.4 实现\r\n24.5 演示\r\n24.6 局限性\r\n24.7 扩展\r\n\r\n第25章 XML Logon类\r\n\r\n25.1 方案\r\n25.2 技术\r\n25.3 设计\r\n25.4 实现\r\n25.5 演示\r\n25.6 局限性\r\n25.7 扩展\r\n\r\n第5部分 模式和算法\r\n\r\n第26章 Singleton(单态)模板\r\n\r\n26.1 方案\r\n26.2 技术\r\n26.3 设计\r\n26.4 实现\r\n26.5 演示\r\n26.6 局限性\r\n26.7 扩展\r\n\r\n第27章 双向链表\r\n\r\n27.1 方案\r\n27.2 技术\r\n27.3 设计\r\n27.4 实现\r\n27.5 演示\r\n27.6 局限性\r\n27.7 扩展\r\n\r\n第28章 对分搜索树\r\n\r\n28.1 方案\r\n28.2 技术\r\n28.3 设计\r\n28.4 实现\r\n28.5 演示\r\n28.6 局限性\r\n28.7 扩展\r\n\r\n第29章 CRC-32计算器\r\n\r\n29.1 方案\r\n29.2 技术\r\n29.3 设计\r\n29.4 实现\r\n29.5 演示\r\n29.6 局限性\r\n29.7 扩展\r\n\r\n第30章 Huffman编码\r\n\r\n30.1 方案\r\n30.2 技术\r\n30.3 设计\r\n30.4 实现\r\n30.4.1 HuffmanEngine类\r\n30.4.2 SymbolTable类\r\n30.4.3 HuffmanNode类\r\n30.4.4 CodeArray类\r\n30.4.5 StackBinaryTree类\r\n30.5 演示\r\n30.6 局限性\r\n30.7 扩展\r\n\r\n附录 Appendix支持、勘误表和代码下载\r\n\r\nA.1 如何下载本书的示例代码\r\nA.2 勘误表\r\nA.3 E-Mail支持\r\nA.4 p2p.wrox.com站点
面向对象编程的根本目标就是通过代码重用来提高程序员的编程效率。在过上的几年中,许多公司在组件的开发和商业化方面都已经很专业:这些组件都是很小的专有功能块,性能得到改进且适合所有的编程情况。最终,这些组件都成为类。为了在理论上提高效率,过去主要是利用Visual C++来编写它们。
.NET版本的发布意味着这些组件将需要重新设计和编写,并且那些中开发小组辛苦多年而开发和编译的类和类库也将需要重新设计和编写。但是,即使是一些由老版本Visual Basic编写的、最简单的小程序也要进行升级处理,而且还必须完全重新设计,只有这样才能充分利用.NET Framework的新特性。这些改变过程不仅需要了解语言结构的变化,而且也要对.NET 基类提供的功能有个透彻的了解。
本书读者对象
本书假定读者已经非常熟悉Visual Basic .NET及其语法,以及一些由.NET Framework提出的概念,例如,反射、远程处理、线程处理等。由于本书主要介绍解决方案,所以没有深入介绍“用于开发本书中所涉及的类”的关键概念。
本书提供了大量现成的解决方案,您只要做很小的调整就可以应用到自己的程序中,其价值首先表现为它能够大大节约您宝贵的编程时间。但是,正如“对于每次开发期间所采用的策略和技术都要进行彻底说明”一样,本书对解决方案进行了详细说明,并使用实用的应用程序来解释有些复杂的概念。
本书主要内容
本书包含了30个类,根据它们的相关功能可以分成5部分:
第1部分——应用程序组件
该部分中的类描述了用于部署、启动和关闭应用程序的实用程序集。它们能被直接用于您的应用程序中,包括 Splash屏幕、产品许可类(Product License Class)、能够远程部署应用程序到多台机器上的类、能够管理进程本地或远程初始化的类、用于保持应用程序设置的类,以及用十分析应用程序参数的类。
第2部分——GUI和图形
本书第2部分中,我们将介绍一些可提供用户交互功能或者生成图形接口的类。这些类包括为所有 Windows和Web应用程序提供的有效性验证文本框,该控件具有更好的扩展性,因此您能添加自己的掩码规则、Windows Required Field Validstor、可在ListView控件中对项目进行排序的类和Web图像生成器。
第3部分——网络和文件系统
一个应用系统经常通过网络进行部署,本部分主要讨论在这种网络环境下使用的类。它们包括 Smart Socket类(既能作为一个客户,也能作为一个服务器)、Stream Helper类(能管理通过网络传输的数据流)、可在内存中映射文件的类、MP3 ID3 Tag Reader(MP3 ID3阅读器)、可浏览文件夹内容的类、Namespace Locator(命名空间定位器)和用于查找类的活动目录。
第4部分——安全性
第4部分全面介绍那些允许将安全特性加入到您的应用程序中的类。它们包括加密类、可签名和校验XML文档的类、可管理文件安全性设置的类和一个登录类的三种版本。
第5部分——模式和运算法则
第5部分中的类通过它们的特性和功能可以形成许多应用程序的基础。这些类演示了一个Singleton模式、双向链表、三叉树结构、可计算CRC32总数的类和一个文件压缩类。
另外,本书是按照以下的结构来介绍每个类的:
.简介
介绍类的概念以及它出现在本书中的原因。
.方案
这部分说明了读者该在什么时候使用这个类。它描述了这个类的常规目的,并提供了能计这个类充分显示自身价值的适用示例。
.技术
技术部分解释了对于这个类的操作至关重要的基本技术概念,并指出了每一个需要解决的特殊技术难题。
.设计
这部分描述了下面涉及的类使用一些特殊方法的原因,并解释了特定的实现如何满足早期版本中提出的需求,还解释前面提到的技术障碍是如何被克服的。
这部分提供了类的实际代码的实现过程。
.演示
这部分内容展示了类在被实现后是如何用来解决特定问题的。
.局限性
这部分说明了类在实现时有哪些局限性。
.扩展
这部分提供了一些关于“如何改造类以使其提供稍微不同的功能性”的建议。
本书中的所有代码都能够从Wrox的Web站点http://www.wrox.com/中找到并下载。
使用本书的条件
为了使用本书,您需要能够编译和执行利用Visual Basic.NET编写的程序,也就是说,您需要下面两者之一:
(1).NET Framework SDK
您对以从Microsoft的MSDN站点(http://msdn.microsoft.com)的Software Development Kits类别中获得该工具,通过下面的地址可以链接到出版物的实时下载页面:http://msdn.microsoft.com/downloads/sample.asp? url=/msdn-files/027/000/976/msdncompositedoc.xml
(2)包含 Visual Basic.NET的某种版本的 Visual Studio.NET
2002版的 Visual Basic.NET集成开发环境(IDE)包括以下几种 Microsoft产品:
.Microsoft Visual Basic.NET Standard(标准版)
.Microsoft Visual Studio.NET Enterprise Architect(企业级结构设计版)
.Microsoft Visual Studio.NET Enterprise Developer(企业级开发人员版)
.Microsoft Visual Studio.NET Professional(专业版)
读者可以通过http://msdn.microsoft.com/vstudio/地址访问产品主臾。
在目前使用的其他平台中也有几个.NET实现工具,但在发布的时候,其中没有一个能对VB.NET编译提供支持。