前言
前 言
本书适用于已经完成初级或者相关课程的读者,介绍了Visual Basic 2005编程的相关内容。在完成本书的学习和编程练习后,学生可以开发涉及数据库的中小型Windows和Web应用程序。
优秀程序员必须结合理论与实践以适应不断变化的计算环境。本书涉及的内容不像专业参考书那样宽泛,而是着眼于编程和解决问题的实践方法。以下特色将有助于课堂教学。
* 循序渐进式学习方法,逐步深入介绍编程思想和概念。
* 根据各章主题给出的示例有助于学生积累实践经验。
* 每小节末尾均提供自测题。
* 通过编程提示为读者解决编程问题提供建议。
* 章末提供关键术语。
* 章末提供习题。
* 通过编程练习强化知识点。
* 由作者维护的配套网站含有书中所有范例程序和数据库。
第4版的变化
第4版有了很多改进!我们将着重介绍面向对象编程原理和软件设计。多层应用程序模型(数据层、业务规则层和表示层)具有重要的影响,因为它是组件式编程。总的说来,第4版提供一种更高效的方法来介绍如何设计、实现和测试结构良好、易于维护和可扩展的应用程序。
本书中的程序示例使用Visual Studio 2005编写。
附 带 资 料
本书的主要亮点在于作者为教学提供高质量的支持,Addison-Wesley (http://www.aw-bc.com/)为本书提供优质资源,通过搜索书名Advanced Visual Basic 2005,采用本书的学生和老师可以获得以下资料。
* 各章PowerPoint课件。
* 范例程序。
* 本版新增内容列表。
另外,教师还可以获得以下资料。
* 习题答案。
* 编程练习答案。
重点强调的技能
如果希望熟练使用Visual Basic 2005,至少需要掌握以下基本技能。
* 面向对象的设计和编程。
* 创建组件(类库)。
* 三层应用程序模型。
* 使用关系型数据库的桌面应用程序。
* 使用关系型数据库的Web应用程序。
* 应用程序的设计和测试。
为了实现这些基本目标,我们在书中列出了学习目标,并将它们划分为几大板块:面向对象的设计、面向对象的编程、用户界面、数据库以及Web编程。通过本书的阅读,读者可以拥有以下技能。
面向对象的设计
* 认识和理解基本的UML图示。
* 了解继承、组合和接口实现在设计上的差异。
* 了解多态在实现高效面向对象设计中所起的作用。
* 使用带有组合和继承关系的类来设计应用程序。
* 创建用例场景来描述详细的执行步骤。
* 使用采用组件的多层设计模型来设计应用程序。
面向对象的编程
* 了解反射和运行时类型标识的基本知识。
* 了解早期绑定和后期绑定,了解向上转型和向下转型。
* 通过多个catch块,抛出异常和重新抛出异常以及自定义异常类来实现异常的处理。
* 实现类构造函数,包含使用继承的类在内。
* 定义共享方法、字段和属性。
* 定义结构类型、枚举类型、类和嵌套类。
* 重载和覆盖类的方法。
* 通过Public、Private、Protected和Friend修饰符控制对成员的访问。
* 在派生类中定义和实现接口。
用户界面
* 确定常见的用户界面设计问题。
* 使用.Net错误处理控件和事件处理在用户界面层捕捉错误。
* 自定义Visual Basic 2005高级控件,例如ToolStrip、DataGridView、GridView、DataView、TreeView、Repeater和DataList。
数据库
* 设计包含多个表关系的关系型数据库。
* 显示相关数据库表的数据。
* 使用DataSet和DataTable更新数据库表的数据。
* 通过数据库连接实现多层应用设计中的数据层。
* 通过异常处理来处理常见的数据库异常。
* 创建SQL查询来更新数据库。
* 创建ADO.NET Command对象来执行数据库查询。
* 使用DataReader来读取数据库的数据。
* 充分利用ADO.NET数据库对象来编写应用程序。
* 创建和执行存储过程。
* 熟悉数据库约束和数据库安全。
Web编程
* 创建包含多个网页的ASP.NET应用程序。
* 在程序中使用所有标准的HTML控件和ASP.NET控件。
* 使用Web验证控件。
* 使用Web窗体的列表型控件,包括GridView、ListBox、DropDownList、RadioButtonList和CheckBoxList,并为这些控件编写事件处理程序。
* 在Web应用程序中上传文件以及发送电子邮件。
* 在ASP.NET程序中管理页面状态和会话状态。
* 实现自定义HTTP错误处理。
* 创建、删除和修改浏览器端的cookie。
* 在Web应用中使用数据绑定和数据组件。
* 使用基于模板的控件,例如DataList和Repeater。
* 配置GridView的高级选项并响应其事件。
* 在Web窗体中使用Command对象来更新数据库。
* 创建Web Service,返回值类型以及对象类型,也包括DataSet。
* 创建使用Web Service的Visual Basic应用程序。
学 习 计 划
如果在学习Visual Basic的过程中强调Windows应用程序,推荐依次学习第1~7章,然后学习第8~11章。第12章(水晶报表)可以在学习第3章之后的任何时间学习。如果课程侧重于Web编程,可以依次学习第1、2、3、8、9和10章。下图描述了各章之间的关系。
各 章 介 绍
第1章 类
本章介绍Microsoft .NET Framework和最佳编程实践。着重讲解包括数据类型的基本概念,同时也包括了值类型的概念。剩下的篇幅讲解数据类型、类和面向对象的设计,最后提供一个程序设计和问题求解实例,该例模拟了一个银行自动取款机。
第2章 用户界面设计
本章首先介绍用户界面设计准则,展示了输入验证如何提高程序的健壮性。然后深入介绍一些高级的.NET控件,如ToolStrip、WebBrowser、SplitContainer、ListView和TreeView。本章对日期和时间的算法问题作了简单讨论,也对多文档界面(MDI)程序进行了粗略的介绍,这些对于学习后面的章节非常有用。
第3章 使用SQL Server 数据库
本章介绍SQL Server数据库的基本概念及其在Visual Basic中的用法。你将学会使用强大的Visual Studio工具来建立数据库的连接。本章接着介绍了SQL SELECT语句,同时展示了怎样创建查询来填充DataGridView以及其他可以进行数据绑定的控件。然后介绍如何对DataSet中的数据行进行查询、插入、删除和排序。最后介绍一个简短的用于管理Karate学校的小型数据库应用程序。
第4章 深入类
本章延续第1章面向对象的话题,继续深入讨论。介绍如何创建类库,这将为后续各章的学习打下基础。接下来去认识Object(对象)类,并且了解如何通过反射在运行时获得对象的信息。本章还介绍了接口概念以及如何通过接口来为对象分配不同的行为。同时,在整章中都会贯穿异常处理和继承的概念。
第5章 ADO.NET数据库对象
本章介绍了直接运用ADO.NET提供的对象来编程的灵活性。特别示范了如何通过Visual Studio的工具创建数据库、视图和存储过程。本章首先介绍一些重要的数据库设计的概念,如表关系和约束。学生将学会如何通过编程来创建数据表、数据库连接、数据适配器和数据集,为后续学习数据库组件做好准备,同时也将学会通过T-SQL查询语句来更新数据库。
第6章 数据库组件
本章着重讲述如何创建可重用的类库,同时展示这些类库如何有助于应用程序保持良好的扩展性和维护性,本章示例中将使用Northwind数据库,学生届时将学习如何创建数据相关组件、Command对象以及Northwind_Library组件。最后讨论示例组件的测试和调试。
第7章 ProjectTrackAw案例
本章将开发一个复杂的跟踪项目的应用程序。你将会看到用例的示例、需求的确定、数据库设计、类设计以及用户界面的设计。本章将说明如何实现数据层和业务层的组件,以及如何将设计的组件连接到用户界面。本章最后介绍测试概念和为示例程序制定测试 计划。
第8章 创建Web应用程序
本章介绍如何通过Visual Basic来创建Web应用程序,学习Web应用程序与客户端进行通信的基本过程。同时,本章还介绍如何运用标准的Web服务器控件来创建ASP.NET应用程序,控件可用Visual studio的工具来设计。学生也将学习到如何在多个网页之间传递数据以及如何连接到SQL Server数据库。
第9章 在Web窗体中编写代码
本章将学习如何仅运用XHTML代码来创建Web 应用程序,用CSS创建可重用的样式,如何上传文件和发送电子邮件。同时也说明了客户端校验控件的使用,以及自定义错误处理。学生还会学习如何通过浏览器cookie和会话状态集合保存状态信息。最后本章要展示一个简单的Vacation Rentals Web应用程序。
第10章 包含数据库对象的Web应用程序
本章介绍在Web应用开发者中流行的一些技术。Master-Detail页供学生定义在其他所有网页上固定的头和尾的内容。学生也将通过列表类控件来学习数据绑定,学习如何通过增加按钮和列来自定义GridView控件。本章将用到第4章和第6章介绍的基于组件的编程的相关知识点。最后将学习怎样使用JavaScript编写客户端代码,怎样使用ASP.NET新提供的用户验证和Login(登录)控件。
第11章 Web Service
本章将简要介绍比较流行的Web Service,简而言之,Web Service允许应用程序通过网络包括Internet来调用函数,Web Service是对本书重点强调的基于组件的编程方法的扩展。本章示例使用了数据库和第6章中创建的Northwind_Library组件。
第12章 水晶报表
本章介绍了水晶报表,它是.NET中一款知名的自定义报表工具。学生将学习如何使用Report Creation Wizard(报表创建向导)创建报表,如何使用Report Designer(报表设计器)修改报表。本章介绍如何将报表绑定到现有数据源,根据字段组合创建报表,为报表添加图表。本章介绍的报表可以应用在Windows和Web应用程序中。
附录A 自测题答案
附录A提供所有自测题的答案,学生可以通过每一章后面的自测题和答案来测试自己掌握的知识。
附录B 高级应用
本附录包含学生可能感兴趣的话题。展示如何计算TimeSpan对象,如何格式化日期和时间,如何使用ListView控件的高级特性。在面向对象方面,学习IComparer接口以及如何创建抽象类和运用多态性,展示了如何在自定义类中定义和引发事件。最后说明了Web应用程序中DataList控件的使用,以及如何定义模板来进行高级的格式化。