
ASP.NET 2.0是微软公司推出的新一代企业级开发平台,它不是ASP.NET 1.1版本的简单升级,而是对原有版本的全面革新。ASP.NET 2.0不仅功能强大,而且易学易用。利用它能够在最短的时间内开发具有出高效性、高可靠性和高可扩展性的网站。
全书共21章分为四部分。第一部分介绍ASP.NET 2.0的基础知识,包括.NET框架的体系结构、ASPX网页的运行机制、验证控件的使用以及相关的浏览器技术。第二部分介绍了数据访问技术,包括ADO.NET的系统结构,对数据库的连接、显示、编辑与同步,以及使用存储过程、数据缓存的方法等。第三部分站在网站的高度介绍了网页界面一致性的设计、网站导航以及网页保护等方面的问题。第四部分介绍了三层架构以及个性化设计等方面的问题。本书的内容以应用开发为主线,叙述方法的主要特点是通过大量示例来说明问题。除此以外,书中还提供了几个典型的综合应用,如网上招聘网页的设计、以订单为中心的电子商务网站的设计等,只需对它们稍加修改即可应用于实际工作之中。
本书是高等学校计算机专业及电子信息类等相关专业的教材,亦可作为高等学校非计算机专业的教材或其他学习ASP.NET语言人员的自学教材。
前 言
近几年来,网络应用的广度和深度以人们预想不到的速度迅猛向前发展,网络应用程序的设计和开发已经成为各类应用软件中最主要的组成部分,网站开发平台的竞争也异常激烈。
进入21世纪以来,微软公司(Microsoft)提出了.NET战略,确定了“创建下一代Internet开发平台”的目标。在创建ASP.NET 2.0新版本中采用了前所未有的方式:即首先发布试用版本,并在全世界范围征求意见,然后根据反映的意见改进后再次发布试用版本,多次反复以达到尽可能完善的目的。在近两年的时间里微软公司先后发表了ASP.NET 2.0的Alfa、beta 1、beta 2三个试用版本,从而获得了丰硕的成果。即使是在2005年年底正式发布以后还允许全世界的客户免费使用一年。
ASP.NET 2.0是一个快速开发网站的平台,它是2005年12月16日微软公司在中国正式发布的三大产品之一。作为新一代企业级开发平台,ASP.NET 2.0具有功能强大,运行可靠且易学、易用的特点。虽然ASP.NET 2.0是从ASP.NET 1.1版本发展而来,但是新版本已经对原版本做了全面的革新(新版本与老版本不兼容)。在扩大网站功能、增强可靠性、可扩展性以及提高运行效率等方面都取得了突破性的进展。因此新版本的诞生是一个重要的里程碑,它标志着.NET时代已经到来,网络的应用开发将从此进入一个新的 阶段。
本书的主要目的是使读者在尽可能短的时间内,掌握使用ASP.NET 2.0的方法,以创建功能强大的动态网站。“应用开发”是全书的主线,通过大量示例讲述方法,是本书的主要特点。除此以外,书中还提供了几个综合性的应用实例,如:“网上招聘”和“留言板”网页的设计以及“以订单为中心的电子商务网站”的设计等。只需要对这些实例稍作修改即可应用于实际工作当中。
虽然本书的主要目的是教会读者使用系统,但本书并不是一本“傻瓜书”。因为从本书作者的角度看来,要想真正掌握一个系统,学会相关的知识和理论,了解系统的基本设计思想是完全必要的。只有这样才能正确使用系统,灵活地应用系统,并为进一步创造性地应用系统奠定基础。在这种思想的指导下,本书的内容做了以下安排:
* 第1~2章介绍了系统的全貌。
* 第 3~5 章介绍了浏览器端网页的开发技术。ASP.NET是基于服务器端的技术,在这之前先介绍浏览器端技术,这是基于以下两个理由:一个完整的网站通常是服务器端技术与浏览器技术相结合的产物;了解传统的浏览器技术对掌握ASP.NET技术的实质很有帮助。
* 第 6~8章从代码的存储模式、事件模型、状态管理三个方面介绍ASPX网页运行的基本机制。
* 第9章是校验控件的应用。
* 第 10~15 章围绕数据访问介绍了ADO.NET的系统结构,对数据库的连接、显示、编辑与同步,以及使用存储过程、数据缓存等方法。这一部分是全书的 重点。
* 第16~18章是从网站的整体高度上讲述为实现网页界面一致性的设计、网站导航以及网页保护等方面的问题。
* 第19章讲述一个以订单为中心的小型电子商务网站的系统设计,这是一个很好的综合示例,有利于提高综合应用多方面知识的能力。
* 第20章介绍“创建三层架构”,这对于开发一个比较复杂的系统或者有特殊要求的网站的设计很有帮助。
* 第21章是个性化服务的设计。个性化服务是当前网站发展的一个方向,也是正在发展中的热门技术。本章介绍了ASP.NET 2.0对个性化服务所提供的支持,并举例说明了它的应用。
在ASP.NET 2.0中允许使用VB .NET、VJ# .NET或者C# .NET等开发语言。本书采用的是C# .NET,这是微软创建的最适合于开发.NET系统的语言。其实采用其他语言开发时的功能也都相同,只是语法有些区别。不熟悉C# .NET的读者并不会感到有多大困难。必要时可以参阅本书的附录。
本书特别适合于广大从事IT的工作人员即初、中级网站开发者以及动态网页的设计者或业余爱好者,也可以用作大专院校计算机应用专业的教材或参考书。作者曾经利用这些内容给计算机专业的学生授课,取得了很好的教学效果。
感谢微软提供了如此卓越的产品,并且在网站上发表了一系列相关技术的文章,本书就是在参阅了这些文章,并加上自己的理解、经验和体会才编著出来的。在这里对产品的创建者,文章的作者一并表示感谢。同时也欢迎读者对本书的缺点和错误提出批评、 指正。
编者
2006年2月
??
??
??
??
II
ASP.NET 2.0动态网站开发教程
III
目 录
第1章 .NET框架简介 1
1.1 网站发展历史的简要回顾 1
1.1.1 从静态网页发展到动态网页 1
1.1.2 动态网页发展的几个阶段 2
1.1.3 ASP的技术特点 3
1.1.4 新一代ASP.NET技术 3
1.2 .NET框架的体系结构 4
1.3 XML:可扩展标记语言 7
1.3.1 什么是XML 7
1.3.2 使用XML的特点 10
1.4 小结 11
1.5 习题 11
第2章 ASP.NET 2.0的体系结构 13
2.1 ASP.NET的逻辑结构 13
2.2 ASP.NET应用程序的组成 14
2.2.1 虚拟 14
2.2.2 网页文件 14
2.2.3 网站配置文件(Web.config) 15
2.2.4 网站全局文件(Global.asax) 16
2.2.5 两个共享的 16
2.3 创建新网站 16
2.4 小结 19
2.5 习题 19
第3章 HTML语言与文本编辑 21
3.1 HTML语言 21
3.1.1 HTML语言概述 21
3.1.2 HTML标记的基础 22
3.1.3 HTML文档的基本结构 23
3.1.4 HTML文档的编辑工具 24
3.2 HTML文本编辑 25
3.2.1 HTML文本的格式化 25
3.2.2 设置列表文本 28
3.3 超链接 29
3.4 创建移动的文本 32
3.5 HTML与XML的比较 33
3.6 综合示例 33
3.7 小结 34
3.8 习题 35
第4章 网页布局与插入图像 37
4.1 网页布局 37
4.1.1 布局的基本概念 37
4.1.2 表格和图层 37
4.2 插入图像 41
4.2.1 图像的类型 41
4.2.2 插入图像的方法 41
4.3 编辑图像 42
4.3.1 用HTML语言编辑图像 42
4.3.2 用可视化方法编辑图像 43
4.4 小结 44
4.5 习题 44
第5章 动态HTML技术 46
5.1 动态HTML的基本理论 46
5.1.1 DHTML基本概念 46
5.1.2 DOM:文档对象模型 47
5.2 JavaScript语言 51
5.2.1 JavaScript语言简介 51
5.2.2 JavaScript的基本用法 52
5.3 级联样式表(CSS)的使用 61
5.3.1 CSS的基本概念 61
5.3.2 CSS的定义与使用 62
5.4 多媒体的引用 64
5.5 DHTML的应用示例 64
5.6 小结 68
5.7 习题 69
第6章 ASPX网页及代码存储模式 70
6.1 ASPX网页的基类 70
6.2 ASPX网页代码的存储模式 70
6.2.1 代码分离模式 71
6.2.2 代码的单文件模式 74
6.3 代码模式的选择 75
6.4 小结 76
6.5 习题 76
第7章 网页标准控件与事件模型 77
7.1 网页中的控件 77
7.1.1 控件类型 77
7.1.2 HTML控件 77
7.1.3 网页标准控件 78
7.2 ASP.NET 2.0的事件处理模型 85
7.2.1 基于服务器的处理模型 86
7.2.2 尽量减少信息的往返次数 86
7.2.3 结合浏览器处理事件 87
7.3 Web表单 89
7.3.1 对比HTML表单 89
7.3.2 ASP.NET 2.0的
Web表单 90
7.4 应用示例 91
7.5 小结 97
7.6 习题 97
第8章 状态管理 99
8.1 状态的类型 99
8.2 视图状态 99
8.3 应用程序状态 101
8.4 会话状态 102
8.4.1 概述 102
8.4.2 Session对象中方法的调用 103
8.5 Cookie状态 104
8.6 简单的应用示例 106
8.7 Web窗体页的生命周期 107
8.8 小结 108
8.9 习题 108
第9章 数据验证 110
9.1 概述 110
9.2 验证控件的类型 110
9.3 各验证控件的使用方法 111
9.3.1 RequiredFieldValidator
控件 111
9.3.2 CompareValidator控件 112
9.3.3 RangeValidator控件 112
9.3.4 RegularExpressionValidator
控件 114
9.3.5 ValidationSummary控件 114
9.4 自定义控件 114
9.5 分组校验技术 115
9.6 综合示例 117
9.7 小结 117
9.8 习题 118
第10章 ADO.NET简介 120
10.1 从ODBC到ADO数据库
的通用接口 120
10.1.1 ODBC通用接口 120
10.1.2 ADO通用接口 121
10.2 ADO.NET的数据模型 122
10.2.1 数据访问的层次结构 122
10.2.2 数据集与数据提供器 123
10.3 数据源控件 126
10.3.1 概述 126
10.3.2 数据源控件的类型 127
10.4 小结 128
10.5 习题 129
第11章 利用GridView控件
显示数据 131
11.1 数据绑定的基本概念 131
11.2 显示数据表记录 132
11.3 对数据表进行分页、
排序和选择 135
11.4 利用模板美化显示 136
11.4.1 模板 136
11.4.2 自动套用格式 137
11.4.3 设置模板样式 137
11.5 显示记录中的图像 138
11.6 小结 140
11.7 习题 140
第12章 数据库查询与同步 141
12.1 数据库查询 141
12.1.1 数据库查询语句 141
12.1.2 简单查询 142
12.1.3 组合查询 144
12.2 数据表同步 145
12.2.1 概述 145
12.2.2 同一窗体页中父、
子表同步 146
12.2.3 不同窗体页中父、
子表的同步 147
12.3 小结 149
12.4 习题 149
第13章 编辑数据表 151
13.1 数据表编辑的SQL语句 151
13.2 使用GridView控件更新数据表 152
13.3 使用GridView控件的列模板 154
13.3.1 选择显示的字段 155
13.3.2 增添按钮 155
13.3.3 使用模板列 155
13.4 在GridView控件中增添记录 160
13.5 使用DetailsView控件 161
13.6 小结 164
13.7 习题 164
第14章 网上招聘与留言板 166
14.1 概述 166
14.2 利用FormView控件
设计招聘网页 166
14.3 利用FormView控件
设计留言板 168
14.3.1 进入留言板 169
14.3.2 留言板网页的界面设计 169
14.3.3 对留言板的管理 170
14.4 使用Wizard控件 170
14.4.1 Wizard控件的用途 170
14.4.2 Wizard控件的结构 171
14.4.3 Wizard控件的使用方法 171
14.5 小结 172
14.6 习题 172
第15章 存储过程与数据缓存 174
15.1 概述 174
15.2 创建存储过程 175
15.3 调用存储过程 177
15.4 数据缓存 178
15.4.1 网页输出缓存 178
15.4.2 数据库缓存 179
15.4.3 缓存池 180
15.5 小结 181
15.6 习题 181
第16章 主题、用户控件和主控页 183
16.1 主题 183
16.1.1 概述 183
16.1.2 创建主题的方法 183
16.1.3 同一控件多种定义
的方法 184
16.1.4 将主题文件应用于
整个应用程序 186
16.2 用户控件 186
16.2.1 什么是用户控件 186
16.2.2 创建用户控件的方法 186
16.2.3 使用用户控件 187
16.2.4 代码分析 187
16.2.5 将Web窗体页转换
为用户控件 188
16.3 主控页 189
16.3.1 什么是主控页 189
16.3.2 创建主控页的方法 189
16.3.3 在主控页中放入新网页
的方法 190
16.3.4 将已建成的网页放入
主控页中 191
16.4 小结 192
16.5 习题 192
第17章 网站导航 194
17.1 TreeView控件 194
17.1.1 概述 194
17.1.2 选择TreeView控件
的视图 194
17.1.3 编辑节点 195
17.1.4 对节点事件的处理 196
17.2 站点地图文件 197
17.3 将TreeView结合站点
地图进行导航 198
17.4 利用动态菜单进行导航 199
17.5 使用SiteMapPath控件 199
17.6 小结 200
17.7 习题 200
第18章 基于角色的安全技术 202
18.1 基于角色的安全技术的特点 202
18.1.1 网站中可以包括多个
入口 202
18.1.2 基于角色的安全
技术是有层次的 203
18.2 ASP.NET 2.0基于角色的
安全技术的特点 203
18.3 基于角色的安全技术
的准备工作 204
18.3.1 组织好站点中的文件 204
18.3.2 利用网站管理工具
进行安全配置 205
18.4 利用控件创建安全页 208
18.4.1 用户登录控件 208
18.4.2 使用创建新用户控件 210
18.4.3 登录状态与登录
姓名控件 211
18.4.4 登录视图控件 212
18.4.5 PasswordRecovery
控件和ChangePassword
控件 213
18.5 直接调用Membership API
方法 214
18.6 小结 216
18.7 习题 216
第19章 购货车与订单 218
19.1 概述 218
19.1.1 Northwind样板库简介 218
19.1.2 本系统的功能 219
19.1.3 主要数据表的结构及
其他准备工作 221
19.2 设计用户控件及主控页 221
19.3 设计主页 222
19.4 产品类型与产品之间同步 223
19.5 选择商品 224
19.5.1 选择按钮触发的事件 224
19.5.2 如何取出数据 224
19.5.3 如何创建数据表 225
19.6 显示购货车 226
19.6.1 输入客户标志 227
19.6.2 在GridView中增加按钮 227
19.6.3 增加模板列 228
19.6.4 在窗体页的Page_Load
事件中增加条件 228
19.6.5 在GridView的
RowCommand事件中
编写代码 228
19.7 结账 229
19.7.1 结账网页的数据显示 229
19.7.2 在GridView控件中
增加复选框 230
19.7.3 汇总的计算 230
19.8 保存订单 231
19.9 查看订单 232
19.10 小结 233
19.11 习题 234
第20章 创建三层架构 237
20.1 从两层架构发展成三层架构 237
20.2 ASP.NET 2.0中间层的特点 238
20.3 创建中间层的步骤 239
20.4 在网页中调用中间层对象 241
20.4.1 直接调用中间层对象 241
20.4.2 通过ObjectDataSource
数据源控件调用中间层 242
20.5 小结 243
20.6 习题 244
第21章 网站的个性化服务 245
21.1 概述 245
21.2 ASP.NET 2.0对个性化
设计的支持 246
21.2.1 关于Membership 246
21.2.2 关于Profile 246
21.2.3 关于WebParts 248
21.3 保留用户关心的数据 248
21.4 WebParts介绍 250
21.4.1 定制网页时能够
执行的任务 250
21.4.2 WebParts的分类 251
21.5 定制主页 251
21.5.1 创建简单的包含
WebPart控件的网页 251
21.5.2 创建可以编辑和
改变布局的网页 254
21.5.3 运行中增添
WebParts控件 257
21.6 小结 259
21.7 习题 259
附录A C#常用语法简介 261
A.1 数据类型 261
A.1.1 常量与变量 261
A.1.2 值类型 261
A.1.3 引用类型 263
A.1.4 装箱与拆箱 267
A.2 运算符与表达式 268
A.2.1 算术运算符与
算术表达式 268
A.2.2 赋值运算符与
赋值表达式 268
A.2.3 关系运算符与
关系表达式 268
A.2.4 逻辑运算符与
逻辑表达式 268
A.2.5 位运算符 269
A.2.6 对象创建运算符 269
A.2.7 其他运算符 269
A.3 流程控制语句 269
A.3.1 分支控制语句 270
A.3.2 循环控制语句 271
A.3.3 异常处理语句 273
附录B 部分习题参考答案 275
??
??
??
??
IV
ASP.NET 2.0动态网站开发教程
VII