第1章 技术与工具 1
1.1 ASP.NET 2.0的新特性 1
1.1.1 外观一致的模板 1
1.1.2 控件样式 3
1.1.3 保护你的网站 4
1.1.4 实现网站的个性化 6
1.1.5 创建门户 7
1.1.6 在网站中使用图像 9
1.1.7 在网站中使用数据 10
1.1.8 国际化 11
1.2 相对于1.x的改变 12
1.3 获得并安装.NET 2.0 12
1.3.1 与1.x一同运行 13
1.3.2 安全账户 14
1.4 升级和部署应用 15
1.5 安装示例 15
1.6 小结 15
第2章 真的就这么容易 16
2.1 开发人员的一天 16
2.1.1 使用数据源控件和GridView显示数据 17
2.1.2 支持行的排序和分页 19
2.1.3 提供行编辑特性 21
2.1.4 增加过滤功能来选择特定的行集 22
2.1.5 在表单中显示一行进行编辑 24
2.1.6 处理通过业务对象提供的数据 28
2.1.7 绑定数据来减少数据库访问 31
2.1.8 使用母版页提供一致的外观 33
2.1.9 增加菜单和其他导航特性 35
2.2 小结 37
第3章 数据源和数据显示控件 38
3.1 数据库和连接 38
3.1.1 自动关联数据库 38
3.1.2 用户实例化 39
3.1.3 连接串存放 40
3.1.4 Visual Web Developer和Visual Studio 2005数据库浏览器 41
3.2 数据源控件 41
3.2.1 SqlDataSource控件 42
3.2.2 用GridView控件显示数据 42
3.2.3 过滤和选择数据 43
3.2.4 以声明方式选择数据 45
3.2.5 更新数据 46
3.3 数据显示和编辑控件 49
3.3.1 与数据源控件的数据绑定 49
3.3.2 定制GridView控件 50
3.3.3 BoundField控件 52
3.3.4 ButtonField控件 53
3.3.5 CheckBoxField控件 54
3.3.6 HyperLinkField控件 55
3.3.7 使用DataNavigateUrlFields属性 56
3.3.8 ImageField控件 57
3.3.9 DetailsView控件 64
3.3.10 FormView控件 68
3.4 小结 70
第4章 业务对象的数据绑定 72
4.1 两层和三层体系结构 72
4.1.1 业务层、数据层,还是二者都有 73
4.1.2 对象数据映射器 73
4.1.3 创建数据层 74
4.2 ObjectDataSource控件 79
4.2.1 使用ObjectDataSource控件 81
4.2.2 获得新插入行的标识值 83
4.3 强类型数据集 84
4.4 小结 91
第5章 高级数据和页面技术 92
5.1 DataSource控件事件 92
5.1.1 命令执行前修改参数 93
5.1.2 更新之后同步DataSource控件 93
5.1.3 命令执行后访问输出参数 94
5.1.4 ObjectDataSource控件的输出参数 96
5.1.5 利用ObjectDataSource定制分页 97
5.2 GridView和DetailsView事件 100
5.3 处理数据编辑冲突 101
5.4 异步页面和数据 105
5.4.1 异步页面 106
5.4.2 异步任务 111
5.5 SQL Server 2005用户自定义类型 112
5.5.1 UDT属性 114
5.5.2 可串行化类型 115
5.5.3 构造函数 115
5.5.4 解析值 116
5.5.5 输出值 117
5.5.6 处理Null值 117
5.5.7 增加属性 117
5.6 对UDT的补充 118
5.6.1 Visual Studio 2005中创建UDT 118
5.6.2 在SQL Server 2005中部署UDT 119
5.6.3 创建包含UDT列的表 120
5.6.4 在UDT列中插入数据 121
5.6.5 访问UDT列 121
5.6.6 补充读物 123
5.7 小结 123
第6章 数据和输出缓存 124
6.1 Application、Session、Http-Context和ViewState缓存 124
6.1.1 使用应用状态 124
6.1.2 使用会话状态 125
6.1.3 使用HttpContext 128
6.1.4 使用视图状态 129
6.2 输出缓存 129
6.2.1 配置输出缓存 130
6.2.2 缓存部分页面 131
6.2.3 配置缓存 134
6.3 数据缓存 135
6.3.1 SQL Server 2005的SQL缓存失效 136
6.3.2 SQL Server 2000的SQL缓存失效 142
6.4 缓存API 146
6.4.1 让缓存中的项到期 147
6.4.2 使缓存条目依赖于外部因素 148
6.4.3 多个缓存依赖关系 149
6.4.4 缓存中的项到期时得到通知 149
6.5 何时使用缓存 151
6.6 小结 151
第7章 处理XML 153
7.1 Visual Studio 2005中处理XML 153
7.2 数据绑定与显示XML数据 155
7.2.1 手动地绑定XML文件 155
7.2.2 使用XmlDataSource控件 155
7.2.3 指定TreeView绑定 157
7.2.4 绑定表达式 158
7.2.5 应用选择 159
7.2.6 使用绑定表达式和选择 160
7.3 转换XML 161
7.3.1 Visual Studio 2005中调试XSLT 163
7.3.2 利用XmlDataSource控件转换 164
7.3.3 通过代码完成转换 164
7.4 处理原始XML 165
7.4.1 流化XML 166
7.4.2 处理内存中的XML文档 169
7.5 XML与关系数据的转换 172
7.6 处理SQL Server 2005 XML数据 173
7.6.1 创建XML列 174
7.6.2 创建模式 174
7.6.3 在XML列中插入数据 175
7.6.4 从ADO.NET访问XML列 175
7.7 小结 178
第8章 构建交互式Web表单 179
8.1 ASP.NET控件集 179
8.1.1 标准HTML服务器控件 180
8.1.2 文本和图像显示控件 180
8.1.3 超链接和导航控件 185
8.1.4 输入和表单控件 190
8.1.5 ValidationSummary控件 196
8.1.6 在代码中访问验证控件 196
8.1.7 列表和表格控件 198
8.1.8 富控件 204
8.1.9 容器控件 210
8.1.10 移动控件 210
8.1.11 布局方法——表和样式表 211
8.1.12 选择适当的控件类型 212
8.2 ASP.NET页面和回送模型 212
8.2.1 区别回送和导航 212
8.2.2 ASP.NET事件驱动体系结构 213
8.2.3 请求和响应信息 213
8.3 小结 214
第9章 Page类和母版页 215
9.1 HttpRequest、HttpResponse、HttpServerUtility和HttpContext类 215
9.1.1 使用HttpRequest类 216
9.1.2 使用HttpResponse类 216
9.1.3 使用HttpServerUtility类 220
9.1.4 使用HttpContext类 222
9.2 ASP.NET Page类 222
9.2.1 Page类的通用方法和属性 223
9.2.2 访问内部ASP.NET对象 225
9.2.3 查找页面上的控件 226
9.2.4 写跟踪信息 230
9.2.5 皮肤和主题 230
9.2.6 验证 230
9.2.7 页面级事件 230
9.2.8 客户端脚本特性 233
9.2.9 创建客户端脚本段 234
9.2.10 异步页面回调 235
9.3 派生Page子类对象 238
9.4 处理母版页 239
9.4.1 简单母版页 240
9.4.2 嵌套母版页 241
9.4.3 动态设置母版页 241
9.4.4 访问母版页中的值和控件 243
9.5 小结 244
第10章 网站导航技术 246
10.1 利用超链接的简单导航 246
10.2 利用LinkButton控件实现导航 249
10.3 通过浏览器重定向实现导航 255
10.4 通过服务器端重定向实现导航 257
10.4.1 HttpServerUtility.Transfer方法 257
10.4.2 HttpServerUtility.Execute方法 258
10.4.3 使用Trans fer和Execute方法 258
10.5 表单内容的跨页面提交 263
10.6 站点图、菜单和导航路径控件 266
10.6.1 站点图提供者 266
10.6.2 站点图配置文件 266
10.6.3 使用站点图文件 268
10.6.4 深入站点图 270
10.7 小结 274
第11章 安全与成员 275
11.1 防止匿名访问网站 275
11.1.1 ASP.NET配置文件 276
11.1.2 IIS和ASP.NET中的安全和访问控制设置 277
11.1.3 ASP.NET认证与授权 279
11.2 ASP.NET成员提供者与角色管理器 283
11.2.1 ASP.NET应用数据库 284
11.2.2 ASP.NET成员提供者配置 284
11.2.3 ASP.NET角色管理配置 288
11.3 ASP.NET网站管理工具 289
11.3.1 创建ASP.NET应用数据库 289
11.3.2 排除ASP.NET应用数据库问题 291
11.3.3 创建和管理用户和角色 292
11.4 ASP.NET安全服务器控件 309
11.4.1 可用控件集 309
11.4.2 使用安全服务器控件 309
11.5 在代码中访问成员和角色特性 314
11.5.1 Membership类 314
11.5.2 MembershipUser类 316
11.5.3 Roles类 317
11.6 小结 318
第12章 概要、个性化和主题 319
12.1 配置概要和个性化 319
12.1.1 指定概要和个性化提供者 319
12.1.2 创建和修改ASP.NET应用数据库 321
12.1.3 启用概要和声明概要属性 323
12.2 存储和使用动态概要数据 328
12.2.1 读取概要数据 328
12.2.2 存储(写)概要数据 329
12.3 使用购物车的简单例子 330
12.3.1 设置文本大小 331
12.3.2 显示购物车和增加商品 332
12.3.3 显示登录用户的详细信息 334
12.3.4 更新概要属性 336
12.3.5 移植匿名用户 336
12.3.6 Profile类的其他特性 339
12.4 使用主题实现网站个性化 340
12.4.1 什么是主题和皮肤 340
12.4.2 创建主题和皮肤 341
12.4.3 应用主题和皮肤 343
12.4.4 避免使用主题和皮肤 345
12.4.5 使用主题的一个例子 346
12.5 小结 350
第13章 构建Web门户 351
13.1 ASP.NET 2.0门户框架 351
13.1.1 门户框架的目标 351
13.1.2 关于WebPart框架 352
13.2 WebPart管理器 354
13.3 WebPart和授权 356
13.4 区域和WebPart 357
13.4.1 WebPart 358
13.4.2 实现WebPart 360
13.4.3 作为用户控件的WebPart 360
13.4.4 作为定制控件的WebPart 362
13.4.5 WebPart Chrome和样式 363
13.4.6 WebPart Verb 364
13.5 编目区域 365
13.6 编辑器区域 366
13.6.1 AppearanceEditorPart 367
13.6.2 BehaviorEditorPart 367
13.6.3 LayoutEditorPart 369
13.6.4 PropertyGridEditorPart 369
13.7 将WebPart连接在一起 370
13.7.1 实现WebPart连接 370
13.7.2 连接WebPart 372
13.7.3 用户发起的连接 373
13.7.4 连接到母版页中的WebPart 375
13.7.5 转换器 376
13.8 小结 377
第14章 可用性、可访问性、移动设备和本地化 379
14.1 页面验证、浏览器功能和替代内容 379
14.1.1 验证页面内容 380
14.1.2 检测浏览器功能 382
14.1.3 CSS支持的特异性 386
14.2 使用页面更易于使用 387
14.2.1 整体网站和页面设计 387
14.2.2 控件、标题、快捷键和跳格顺序 388
14.3 支持残疾用户和专用用户代理 389
14.3.1 最大化可访问性的通用技术 389
14.3.2 ASP.NET控件中的可访问性特性 392
14.4 为小屏幕和移动设备构建页面 408
14.4.1 页面设计和设备支持 408
14.4.2 为移动设备创建页面 408
14.4.3 移动浏览器模拟器 416
14.5 支持本地化和多种语言 417
14.5.1 无代码实现本地化 417
14.5.2 用户可选择的本地化 424
14.5.3 通过编程访问资源 427
14.5.4 可扩展性 427
14.5.5 Web资源 428
14.6 小结 429
第15章 使用Framework类 430
15.1 一个示例应用 430
15.1.1 在你的机器上配置示例 432
15.1.2 示例应用的用户界面 433
15.2 利用System.Collections类存储数据 436
15.2.1 ArrayList 437
15.2.2 栈和队列 438
15.2.3 有序表、HashTable和基于字典的集合 438
15.2.4 如何返回值 440
15.2.5 串行化集合 440
15.2.6 泛型集合 441
15.3 利用System.IO类读、写和压缩数据 443
15.3.1 使用Stream、StreamReader和StreamWriter 443
15.3.2 读取驱动器、文件夹和文件信息 445
15.3.3 压缩数据 452
15.4 利用System.Drawing类创建图形和图像 454
15.5 利用System.Net类访问因特网 457
15.5.1 获取网页 457
15.5.2 完成DNS查找 459
15.6 利用System.Net.Mail类发送电子邮件 460
15.6.1 发送文本和HTML电子邮件 460
15.6.2 发送带文本附件的电子邮件 462
15.6.3 发送有二进制附件的电子邮件 463
15.7 利用System.DirectoryServices类访问活动目录 467
15.8 利用System.Security.Cryptography类加密数据 469
15.9 小结 473
第16章 Web服务 474
16.1 Web服务 474
16.2 创建Web服务 475
16.2.1 Web服务性质 476
16.2.2 测试Web服务 478
16.2.3 缓存和状态 480
16.2.4 创建异步Web服务 481
16.3 使用Web服务 481
16.3.1 异步调用Web服务 482
16.3.2 处理错误 484
16.4 控制数据在Web服务中如何传输 484
16.4.1 定制串行化 485
16.4.2 串行化集合 487
16.4.3 手动地串行化 489
16.5 Web服务提升 490
16.6 Web服务的将来 495
16.7 小结 495