《高等学校计算机教材:ASP.NET 3.5实用教程》包括教程、配套的实验和综合应用实习。教程部分包括13章,比较系统地介绍ASP。NET3。5,每一章一般都有小综合应用实例,用以消化当前和此前的主要内容和知识,最后有ASP。NET综合实例,就是一个综合应用。由于专人重新阅读《高等学校计算机教材:ASP。NET3。5实用教程》,试做书中所有实例、所有实验和综合运用,一般来说,读者应该能够看得懂,做得通,并且通过网络免费提供课件、书中的源代码和比较完整的应用系统。这样,用于教学比较方便。
《高等学校计算机教材:ASP.NET 3.5实用教程》是较早介绍ASPNET3.5的教材,吸取了以前编写ASP.NET教程的经验。只要阅读《高等学校计算机教材:ASP.NET3.5实用教程》,结合实验进行练习,就能在较短的时间内基本掌握ASP.NET3.5及其应用技术。欢迎读者比较选择。
第1部分 实用教程
第1章 ASP.NET开发技术概述
1.1 Web工作原理
1.1.1 Web服务器
1.1.2 Web客户端
1.2 HTML与HTTP
1.2.1 HTML标记语言
1.2.2 CSS样式表
1.2.3 脚本语言
1.2.4 HTTP协议
1.2.5 URL
1.2.6 HTML表单与Web请求
1.3 Web开发技术的发展
1.3.1 静态网页与动态网页
1.3.2 客户端动态技术
1.3.3 服务器端动态技术
1.4 .NET Famework与ASP.NET
1.4.1 .NET Famework基本概念
1.4.2 ASP.NET 3.5概述
1.5 Visual Studio 2008集成开发工具简介
1.5.1 Visual Studio 2008新特性
1.5.2 编译和运行Web应用程序
1.5.3 部署Web应用程序
1.5.4 使用帮助系统
1.6 简单的ASPNET程序实例
1.6.1 创建Web应用程序的一般步骤
1.6.2 一个简单的ASPNET程序实例
习题
第2章 ASP.NET应用程序基础
2.1 ASPNET应用程序
2.1.1 Web应用程序
2.1.2 移动Web应用程序
2.1.3 Web服务
2.2 ASP.NET应用程序结构
2.2.1 应用程序目录结构
2.2.2 应用程序生命周期
2.3 ASP.NET页面框架
2.3.1 aspx页面代码模式
2.3.2 aspx页面元素
2.3.3 ASP.NET页面布局
2.3.4 页面指令
2.3.5 页面生命周期
2.3.6 页面事件
2.4 综合应用
习题
第3章 ASP.NET内置对象
3.1 Response对象
3.1.1 Response对象常用属性和方法
3.1.2 Response对象的应用
3.2 Request对象
3.2.1 Request对象常用属性和方法
3.2.2 Request对象的应用
3.3 Server对象
3.3.1 Server对象常用属性和方法
3.3.2 Server对象的应用
3.4 Application对象
3.4.1 Application对象常用属性、方法和事件
3.4.2 Application对象的应用
3.5 Session对象
3.5.1 Session对象常用属性、方法和事件
3.5.2 会话状态模式的配置
3.5.3 优化会话性能
3.5.4 Session对象的应用
3.6 Cache对象
3.7 Page对象
3.7.1 Page对象常用属性、方法和事件
3.7.2 Page对象的应用
3.8 综合应用
习题
第4章 ASP.NET服务器控件和客户端脚本
4.1 控件概述
4.2 HTML服务器控件
4.2.1 HTML服务器控件的层次结构
4.2.2 HTML服务器控件的基本语法
4.2.3 HTML服务器控件的属性、方法和事件
4.2.4 HTML服务器控件的应用
4.3 标准控件
4.3.1 输入与显示控件
4.3.2 按钮控件
4.3.3 选择和列表控件
4.3.4 HyperLink控件
4.3.5 Table控件
4.3.6 AdRotator控件
4.3.7 Calendar控件
4.3.8 Image和ImageMap控件
4.3.9 MultiView和View控件
4.3.10 Wizard控件
4.4 验证控件
4.4.1 客户端验证和服务端验证
4.4.2 RequiredFieldValidator控件
4.4.3 RangeValidator控件
4.4.4 CompareValidator控件
4.4.5 RegularExpressionValidator控件
4.4.6 CustonValidator控件
4.4.7 ValidationSummary控件
4.4.8 关闭客户端验证功能
4.4.9 使用验证组
4.5 用户控件与自定义服务器控件
4.5.1 用户控件
4.5.2 自定义控件
4.6 用JavaScript处理页面和服务器控件
4.6.1 在控件上直接应用JavaScript
4.6.2 使用Page.ClientScript属性
4.7 客户端回调
4.7.1 回送和回调
4.7.2 使用回调
4.8 文件的上传和邮件发送
4.8.1 文件上传
4.8.2 邮件发送
4.9 综合应用
习题
第5章 网站设计
5.1 母版页
5.1.1 母版页和内容页概述
5.1.2 创建母版页
5.1.3 创建内容页
5.1.4 母版页和内容页的运行机制
5.1.5 访问母版页控件和属性
5.1.6 动态加载母版页
5.1.7 母版页应用范围
5.1.8 缓存母版页
5.2 主题和皮肤
5.2.1 主题概述
5.2.2 创建主题
5.2.3 应用主题
5.2.4 动态加载主题
5.3 网站导航
5.3.1 站点地图
5.3.2 用SiteMapPath控件导航
5.3.3 用Menu控件导航
5.3.4 用TreeView控件导航
5.4 综合应用
习题
第6章 ASPNET数据库编程
6.1 数据访问技术
6.1.1 数据访问概述
6.1.2 数据源控件简介
6.1.3 数据绑定控件简介
6.2 数据源控件
6.2.1 SqlDataSource控件
6.2.2 AccessDataSource控件
6.2.3 XmIDataSource控件
6.2.4 SiteMapDataSource控件
6.2.5 ObjectDataSource控件
6.2.6 LinqDataSource控件
6.3 数据绑定控件
6.3.1 GridView控件
6.3.2 ListView控件
6.3.3 DetailsView控件
6.3.4 FormView控件
6.3.5 其他数据绑定控件
6.3.6 内部数据绑定语法
6.4 ADO.NET数据访问编程模型
6.4.1 ADO.NET数据访问模型简介
6.4.2 ADO.NET数据提供程序
6.4.3 .NET数据集
6.4.4 利用ADO.NET查询数据库
6.4.5 利用ADO.NET更新数据库
6.4.6 事务处理
6.5 LINQ查询
6.5.1 LINQ to Objects
6.5.2 LINQ to XML
6.5.3 LINO to SQL
6.6 综合应用
习题…
第7章 ASP.NET网站开发架构
7.1 B/S架构设计理念
7.2 单层设计架构
7.3 二层设计架构
7.3.1 “门面模式”简介
7.3.2 二层开发设计架构
7.4 三层设计架构
7.4.1 简单三层设计架构
7.4.2 用Visual Studi02008创建三层设计架构
7.4.3 理解三层设计架构
7.4.4 引入实体项目的三层设计架构
7.4.5 跨数据库实现的三层设计架构
习题
第8章 ASP.NET高级技术
8.1 ASP.NET配置
8.1.1 ASP.NET配置概述
8.1.2 配置文件的结构
8.1.3 常用配置
8.1.4 保护配置设置
8.2 身份验证与授权
8.2.1 身份验证概述
8.2.2 设置验证方式
8.2.3 Forms身份验证
8.2.4 用户授权
8.3 ASP.NET XML编程
8.3.1 XML基本概念
8.3.2 XML数据访问
8.3.3 XML数据显示
8.4 综合应用
习题
第9章 Web服务
9.1 Web服务的基本概念
9.1.1 基于组件的分布式计算概念
9.1.2 什么是WebService
9.1.3 Web Service使用的标准协议
9.2 创建ASPNET Web服务
9.2.1 @WebService指令
9.2.2 Web服务类
9.2.3 WebService特性
9.2.4 定义Web服务方法
9.2.5 测试Web服务
9.3 使用ASP.NET Web服务
9.3.1 添加Web引用
9.3.2 客户端调用Web服务
9.4 综合应用
习题
第10章 ASP.NET AJAX简介
10.1 ASP.NET AJAX概述
10.1.1 为什么使用AJAX
10.1.2 Visual Studio 2008与ASP.NET AJAX
10.1.3 ASP.NET AJAX客户端技术
10.1.4 ASP.NET AJAX服务器端技术
10.2 建立ASP.NET AJAX应用程序
10.2.1 建立不使用AJAX的页面
10.2.2 建立包含AJAX的页面
10.3 ASP.NET AJAX服务器端控件
10.3.1 ScriptManager控件
10.3.2 ScriptManagerProxy控件
10.3.3 UpdatePanel控件
10.3.4 Timer控件
10.3.5 UpdateProgress控件
10.4 ASP.NET AJAX控件工具集简介
10.5 综合应用
习题
第11章 ASPNET综合实例
11.1 系统功能设计
11.2 系统流程
11.3 数据库设计
11.4 数据访问层设计
11.5 添加确发器
11.6 业务逻辑层设计
11.7 表示层设计
11.7.1 母版页设计
11.7.2 站点导航地图文件设计
11.7.3 页面设计
11.7.4 全局变量
11.8 系统扩展
……
第2部分 实验
验证控件检查输入到其他控件中的数据,然后发出通过或失败信息。这种检查类型的范围从简单的检查到非常复杂的模式匹配。验证控件类似于其他ASP.NET 3.5控件,其属性设置方式与其他标准Web控件相同。ASP.NET 3.5中的整个验证模式只需要页面设计者很少的自定义工作。如果添加验证控件并设置它们的相关属性,则验证可在没有编码的情况下工作。
ASP.NET 3.5包含6个验证控件。
(1)RequiredFieldValidator-用于要求用户在表单字段中输入必需的值。
(2)RangeValidator-用于检测一个值是否在确定的最小值和最大值之间。
(3)CompareValidator—用于比较一个值和另一个值或执行数据类型检查。
(4)RegularExpressionValidator-用于比较一个值和正则表达式。
(5)CustomValidator-用于执行自定义验证。
(6)ValidationSummary-用于在页面中显示所有验证错误的摘要。
不同的验证控件主要在执行的检查类型方面存在区别。这些验证控件的大多数成员提供了相同的属性集,因此在单独研究每个验证控件之前,将介绍这些一般性的属性。这些属性包括如下。
(1)ControlToValidate:标识页面上的哪些控件应该由此验证控件检查。
(2)Text:若用户输入的数据违反了验证规则,则将该字符串显示给用户。如果有ErrorMessage的值,但在Text属性中没有值,则ErrorMessage自动替换Text属性。
(3)ErrorMessage和ValidationGroup:包含在Validation Summary中显示的文本,当讨论Validation Summary时将介绍这些属性。
(4)Display:确定页面在验证控件显示其Text消息时应如何处理它的布局。有3个选项,包括None、Static和Dynamic。
(5)SetFocusOnError:将页面的焦点放置在产生错误的控件,让用户更容易修订输入。如果页面上有多个验证控件,并且多个验证控件报告验证失败,则页面上第一个失败的验证控件接收焦点。
(6)EnableClientScript:该属性默认为True,表示允许客户端验证。
此外,每个控件中还有特定于测试类型的属性。在后续内容中,将讨论比较字段、值范围和正则表达式的测试属性。
4.4.1 客户端验证和服务端验证
在窗体回送给服务器之前,对输入该窗体上的数据进行的验证称为客户端验证。当请求发送到应用程序所在的服务器后,在请求/响应循环的这一刻,就可以为所提交的信息进行有效性验证,这称为服务器端验证。验证控件会在客户端(浏览器)和服务器端都默认执行验证。验证控件使用客户端JavaScript。从用户体验的角度来看,无论何时把一个无效的值输入表单字段都能立即得到反馈。
对于验证中的事件序列,有两种情况:
(1)若客户端支持JScript且验证控件的EnableClientScript:true,则在客户端和服务器上执行验证。
(2)如果上面两个条件的任何一个不满足,则只在服务器上执行验证。
如果在客户端上执行验证,则在被验证的控件丢失焦点时进行验证。注意,一般是在单击Submit按钮之前进行该操作。如果验证失败,则不会发送任何内容给服务器,但验证控件将仍然通过使用JavaScript显示关于失败的文本消息。
当由服务器接收时,执行另一个验证。如果页面通过验证,则页面继续执行它的其他任务。如果存在失败,则将Page.IsValid设置为False,然后页面执行脚本,但如果程序员检查Page.IsValid状态,则可以停止这些操作。页面上的数据控件将不会执行任何写入任务。然后,使用验证错误消息重新构建页面,并且以回送来响应。
比较安全的验证形式是服务器端验证。验证总是在服务器上执行,无论是否执行客户端验证。这就防止了电子欺骗(黑客可借此伪造一个有效的服务器回送,从而绕开客户端验证)。添加客户端选项可节省一些时间,因为如果在客户端验证中存在验证失败,则不需要建立来回的过程。
比较好的方法是先进行客户端验证,在窗体传送给服务器后,再使用服务器端验证进行检查。这种方法综合了两种验证的优点,总是执行服务器端验证(对于ASP.NET 3.5验证控件,无论如何都不可关闭这种验证)。如果知道客户端使用JavaScript,则客户端验证是额外的便利措施。如果一些客户端没有启用JavaScript,仍然可以打开EnableClientScript,它将被浏览器忽略。