Visual Basic .NET最重要的一个特性就是它对面向对象编程的完全支持。开发人员多年来一直在要求得到这种支持,但你可能还不是太确定它将如何帮助创建和维护可谝的.NET组件和应用程序。在《Visual Basic .NET面向对象编程》一书中,你将学习如何利用面向对象语言的特性,如实现方式继承、接口继承、对象构造函数、方法重载以及方法重写等。
虽然VB.NET是一种对面向对象程序设计支持很好的语言,但是它并不能保证你一定编写出优秀的面向对象代码。为了帮助编写完美的代码,《Visual Basic .NET面向对象编程》一书将重点集中在面向对象设计上。它展示了如何分析应用程序逻辑中的想似性以及如何设计和创建最大限度地利用了.NET Frameword的优点和功能的对象,书中甚至还讨论了重新分解(refactoring),这是一种追溯性的OOP,在事实之后才发现一般化,因此父类是在子类之后的编写的。
但是,《Visual Basic .NET面向对象编程》一书不仅仅介绍了面向对象设计以及VB.NET的面向对象特性,它还讨论了面向对象的基于组件开发所涉及的所有重要主题,这些主题包括:
● 使用VB新的结构化异常处理来处理异常
● 反射——在运行时惧应用程序的类及其他类型的信息
● 序列化——将对象的状态提交到存储库并在以后检索这些信息
● 使用.NET远程处理和Web服务开发分布式组件和应用程序
知道如何编写面向对象的代码只是问题的一个方面,只有知道何时及为何编写才能成为优秀的程序员。这正是你在阅读本书之后将会了解到的。
前言
第一章 简介
Visual Basic .NET和面向对象编程
.NET Framework
第二章 对象基础
创建和编译组件
名称空间
使用组件
应用程序域
上下文
程序集
中间语言
System名称空间
第三章 类的剖析
成员变量
属性
方法
访问修饰符
传递参数
值类型
创建和销毁
委托和事件
设计上的考虑
练习
第四章 面向对象
一般化和具体化
继承
包含
多态
重载
重写
替换
第五章 .NET接口
私有实现方式
版本控制
接口与抽象基类的比较
.NET中的接口
设计考虑
第六章 异常对象
异常处理的基础知识
未处理的异常 StackTrace对象
继续执行代码
重试代码
性能计数器
第七章 对象检查
反射
运行库类型发现
动态类型加载
属性
自定义属性
第八章 写入和读取对象
流
阅读器和编写器
序列化
模式定义工具
自定义序列化
NetworkStream
第九章 远程处理对象
信道
可远程处理的对象
Windows Service
客户
远程处理的设计
按值封送(MBV)
在IIS中承载对象
Windows Service与IIS的比较
认证
第十章 Web服务
编写Web服务
Web服务与远程处理的比较
从.NET远程处理使用Web服务
兼容性
UDDI
访问Web服务的数据
参考书目
词汇表
本书不是一本参考书,这一点需要首先说明。本书是写来一页一页读的,它讲述了一个故事。这是一个有关.NET环境中的面向对象编程的复杂故事:创建对象、移动它们并在.NET环境中使用它们。本书不仅是一本教你如何去做的书,它还是一本教你为什么这样做以及何时这样做的书。
你会遇到许多挫折和失败。你可以猜想会学到一些意想不到的知识,但是不要认为会学习Visual Studio.NET。在我第一次得到.NET的测试版一年之后,Visual Studio.NET才出现。本书中的所有内容都是非常专业的,因此如果你害怕过多地敲键盘而碰坏了指甲,那么现在就停止往下看。不过,如果你愿意了解内幕知识,那么你会感觉非常好。
我在很长时间之前就开始准备这本书,以至于一点趣味也没有了。实际上,我有一些以前的很粗糙的.doc文件,当时认为这些内容很“Cool”。这也正是他们在称之为C#之前准备使用的名称。我不是在开玩笑。本书是在其他大多数.NET书籍开始时开始它的生命的——在2000年Microsoft Professional Developer's Conference之后不久。现在,两年之后,人们终于读到它了。如果顺利的话,你会明白它不是匆忙问世的。我非常细致地考虑了本书中的每一个细节,并且花费下大约一年半的业余时间把它们整理出来为什么?我在完成一个使命。事实上是几个使命。我的主要目的是用这本书来代替茂大而厚重的参考书籍(尤其是由多位作者编写的那些书籍)。我喜欢阅读关于编程的书籍——尤其是不把我当成傻瓜的、篇幅委膛睥计算机书籍。我的目标就是编写这种书。我假定你知道HTTP、XML和SOAP代表什么。对我来说,这非常重要。
我的第二个使命是给我所有的读者一个.NET主显节(Epiphany)。我记得两年前在电话里与我的编辑Ron的谈话。我说“如果没有COM,那么这意味着什么?”在这次通话之后不久, 我在邮件中收到了第一个.NET测试版。其非常小的体积和深度震撼了我。一定有一支绝密的地下编码军团在为此工作!我从来不知道那时微软是怎样支持这么大规模的产品的(没有人知道)。我的第一个目标是“了解它”。虽然两年之后我仍然在学习.NET,但是现在我“了解它”了。虽然我不能在这本书中介绍每一个方面,但是我认为你也将在读完本书时“了解它”。
我的第三个任务是赚钱。我记得有一段时间,我无所事事,试图思考如何能够在正式工作之外得到一份能支付最低工资的工作。那时,我有太多的社会生活,与朋友和家人在一起占用了我所有的时间。我发现我没有在计算机前面花上足够多的时间。那时我突然醒悟了:“我要写介绍编程的书籍!”从此我没有像以前一样沉睡。
本书的内容
本书主要介绍创建对象这一主题,讨论如何设计它们,为什么要那样设计以及这种设计如何适应.NET。下面是本书内容的简要介绍。
第一章“简介”是对面向对象编程和.NET框架重要概念的高度概括。这一章确立了重要的面向对象术语并且说明了它如何应用于.NET
第二章“对象基础”讨论了对象以及对象所位于的.NET环境,包括对编译对象、名称空间、应用程序域、程序集、中间语言以及.NET类库的讨论
第三章“类的剖析”介绍了如何创建类。主题包括成员变量、方法、属性、访问修饰符及访问修饰符在类设计中的使用。这一章还讨论了传递参数、引用类型与值类型之间的区别、创建和销毁对象、.NET垃圾收集器、事件及很托。
第四章“面向对象”重点计谋面向对象编程(Object-Oriented Programming, OOP)。主题包括具体化和一般化、继承及包含。这一章还讨论了多态:替代、方法重载和生写以及遮蔽。你将学习使用多态、抽象基类以及开关原则(Open Close Prineciple)。开关原则允许编写灵活的对象层次结构。这一章还包括了对继承和Liskov替代原理的讨论。这一章最后深入讨论了基于接口的编程以及创建健壮的.NET对象所需要学习的几个主要接口。
第五章“.NET接口”讨论了基于接口的编程以及它如何适用于OOP领域。这一章还讲座了一些最重要的.NET接口。
第六章“异常对象”讲座了.NET Framework中的异常处理。你将学习如何及何时编写自己的异常、使用AppDomain未处理的异常处理程序、使用堆栈跟踪、继续及重试代码以及使用性能计数器来分析应用程序异常。
第七章“对象检查”讨论了一项强大的.NET技术,该技术名为反射(reflection),它允许你通过程序方法查询类信息。这一章讨论了运行时类型发现、动态类型检查和属性。你还将学习如何使用它们来创建自定义属性,为VB.NET提供模仿C# XML文档注释的行为。
第八章“写信和读取对象”讨论了流和序列化。这一章的讲座包括二进制、XML序列化、.NET中可用的流、模式定义工具以及自定义序列化。这一章使用了一个TCP服务和客户说明网络流的使用。
第九章“远程处理对象”介绍了如何将对象移动到一个分布式环境中。这一章讨论了信道、激活模式、配置、封送(marshaling)、生命周期租约、代理以及其他远程处理的基础知识。这一章使用一个可重用的Windows服务来承载远程对象,并介绍了如何配置和使用IIS来承载远程对象。这一章还展示了如何使用对象工厂(factory)创建灵活的分布式系统。
第十章“Web服务”介绍了如何编写XML Web服务、在IIS上承载它们以及使它们可用于.NET远程处理。这一章演讨论 了影响使用(consumption)的兼容性问题。