第Ⅰ部分 ASP.NET内部机理 3
第1章 ASP.NET编译模型 3
1.1 ASP.NET运行库环境 4
1.1.1 ASP.NET进程模型 5
1.1.2 ASP.NET临时文件 11
1.1.3 ASP.NET页面的隐藏代码 14
1.2 应用程序预编译 20
1.2.1 本地预编译 20
1.2.2 部署预编译 22
1.3 ASP.NET编译机制的构造块 25
1.3.1 编译选项 25
1.3.2 ASP.NET保留文件夹 27
1.3.3 Build提供程序 32
1.3.4 设计一个自定义的build提供程序 34
1.3.5 虚拟路径提供程序 42
小结 45
第2章 HTTP处理程序和模块 46
2.1 IIS可扩展性API概述 47
2.1.1 ISAPI模型 47
2.1.2 IIS 7.0中即将出现的改变 49
2.2 编写HTTP处理程序 50
2.2.1 IHttpHandler接口 51
2.2.2 快速数据报表的HTTP处理程序 53
2.2.3 图像查看器处理程序 59
2.2.4 HTTP处理程序高级编程 62
2.3.1 IHttpModule接口 66
2.3 编写HTTP模块 66
2.3.2 自定义的HTTP模块 67
2.3.3 页面刷新特征 70
小结 75
第3章 ASP.NET配置 77
3.1 ASP.NET配置层次结构 77
3.1.1 配置文件 78
3.1.2 〈location〉节 82
3.1.3 〈system.web〉节 85
3.1.4 其他最高级的配置节 108
3.2 管理配置数据 110
3.2.1 使用配置API 110
3.2.2 使用管理工具 116
小结 121
第4章 构建自定义的ASP.NET提供程序 123
4.1 提供程序的结构 123
4.1.1 理论基础:设计模式 124
4.1.2 实践:实现细节 125
4.2 内建的ASP.NET提供程序 127
4.2.1 成员资格服务 128
4.2.2 角色管理服务 132
4.2.3 用户的配置文件服务 134
4.2.4 会话状态服务 136
4.2.5 站点地图服务 138
4.2.6 Web事件处理服务 139
4.2.7 Web Parts个性化服务 143
4.2.8 保护服务的配置 144
4.3 构建自己的提供程序 148
4.3.1 设计考虑 149
4.3.2 基于cookie的配置文件提供程序的实现 150
4.3.3 汇总 157
小结 158
第5章 构建特征丰富的页面 159
5.1 构建异步页面 159
5.1.1 ASP.NET异步编程的工具 160
5.1.2 ASP.NET 2.0工具 162
5.1.3 异步页面的实现 167
5.1.4 异步页面的实际场景 171
5.1.5 RegisterAsyncTask方法 180
5.2.1 ASP风格的代码块 184
5.2 构建自定义的表达式 184
5.2.2 数据绑定表达式 187
5.2.3 ASP.NET 2.0中的动态表达式 189
5.2.4 编写一个自定义的表达式生成器 191
5.3 构建ASP.NET页面的解析器筛选器 195
5.3.1 PageParserFilter类 196
5.3.2 真实场景 197
小结 201
第Ⅱ部分 特有特性 205
第6章 使用脚本代码 205
6.1 添加客户端脚本到页面 205
6.1.1 检查浏览器能力 206
6.1.2 注册脚本块 209
6.1.3 添加弹出式窗口 216
6.2 脚本回调 219
6.2.1 ASP.NET原始API 220
6.2.2 执行带外调用 222
6.3 Ajax.NET库 231
6.3.1 使用Ajax.NET库 231
6.3.2 Ajax.NET对脚本回调 235
小结 237
第7章 用Web Part合成页面 239
7.1 Web Part一瞥 239
7.1.1 什么是Web Part 239
7.1.2 Web Part框架简介 241
7.1.3 用Web Part构建页面 244
7.2.1 WebPart类 246
7.2 构建Web Part 246
7.2.2 StockViewer Web Part 250
7.2.3 构建Web Part的其他方法 257
7.2.4 Web区域的样式设置 259
7.3 编辑和列出Web Part 265
7.3.1 改变显示模式 265
7.3.2 改变区域布局 267
7.3.3 创建一个编辑器区域 269
7.3.4 创建一个目录区域 270
7.4 连接Web Part 274
7.4.1 连接模型 274
7.4.2 构建一个母版/细节架构 276
小结 278
8.1 移动控件概述 280
8.1.1 移动控件构架 280
第8章 移动编程 280
8.1.2 ASP.NET移动页面 283
8.1.3 容器控件 288
8.1.4 列表控件 289
8.1.5 文本控件 292
8.1.6 验证控件 295
8.2 开发移动应用程序 297
8.2.1 CustomerFinder应用程序 297
8.2.2 该应用程序的导航模型 299
8.2.3 自适应呈现 303
8.2.4 状态管理 304
小结 306
9.1 从Web页面访问图像 307
第9章 使用图像 307
9.1.1 〈img〉元素 308
9.1.2 引用非文件图像 309
9.1.3 从资源中装载图像 310
9.2 访问数据库图像 313
9.2.1 使用二进制字段 313
9.2.2 现实情况 318
9.3 动态生成图像 320
9.3.1 GDI+类概述 320
9.3.2 将图像写入内存中 323
9.3.3 构建图表生成器页面 327
小结 333
10.1.1 创建站点地图 334
10.1 定义站点地图信息 334
第10章 站点导航 334
10.1.2 配置站点地图 337
10.2 访问站点地图信息 339
10.2.1 SiteMap类 340
10.2.2 SiteMapPath控件 342
10.2.3 SiteMapDataSource控件 345
10.3 显示站点地图信息 347
10.3.1 TreeView控件 348
10.3.2 Menu控件 351
小结 357
11.1 究竟什么是迭代控件 361
11.1.1 迭代控件与列表控件的对比 361
第11章 ASP.NET迭代控件 361
第Ⅲ部分 ASP.NET控件 361
11.1.2 迭代控件与视图控件的对比 362
11.2 Repeater控件 363
11.2.1 Repeater控件的编程接口 363
11.2.2 Repeater控件的模板 366
11.2.3 使用Repeater控件 370
11.3 DataList控件 373
11.3.1 DataList控件的编程接口 374
11.3.2 格式化功能 377
11.3.3 DataList控件的模板 380
11.3.4 使用DataList控件 381
小结 385
第12章 ASP.NET Web用户控件 386
12.1 究竟什么是用户控件 386
12.1.1 UserControl类 387
12.1.2 将页面转换为用户控件 389
12.2 开发用户控件 391
12.2.1 创建TabStrip用户控件 392
12.2.2 创建用户控件对象模型 395
12.2.3 处理用户控件的事件 400
12.3 关注用户控件 402
12.3.1 创建数据绑定用户控件 403
12.3.2 动态地加载控件 409
小结 410
第13章 创建ASP.NET自定义控件 411
13.1 扩展现有控件 412
13.1.1 选择基类 412
13.1.2 更加丰富的HyperLink控件 413
13.2 从头开始创建控件 415
13.2.1 基类和接口 416
13.2.2 选择呈现风格 417
13.2.3 SimpleGaugeBar控件 419
13.2.4 呈现SimpleGaugeBar控件 423
13.3 创建丰富控件 432
13.3.1 Panel下拉控件 432
13.3.2 呈现引擎 436
13.3.3 触发回发事件 441
13.3.4 添加脚本代码 444
小结 447
第14章 数据绑定控件和模板化控件 449
14.1 设计数据绑定控件 449
14.1.1 数据绑定控件类型 450
14.1.2 数据绑定机制 451
14.2 创建简单的数据绑定控件 454
14.2.1 关键特征 455
14.2.2 GaugeBar控件 457
14.3 创建数据绑定列表控件 463
14.3.1 列表控件概述 463
14.3.2 HyperLinkList控件 465
14.4 创建模板化组合控件 472
14.4.1 数据绑定组合控件概述 472
14.4.2 BarChart控件 475
14.4.3 添加模板支持 482
小结 487
15.1 .NET中的设计时体系结构 489
第15章 自定义控件的设计时支持 489
15.1.1 站点、容器和控件 490
15.1.2 控件和设计器 490
15.2 设计时特性 491
15.2.1 使用设计时特性 492
15.2.2 影响运行时行为的特性 497
15.3 呈现类型 498
15.3.1 实现类型转换器 498
15.3.2 创建类型编辑器 506
15.3.3 使用自定义集合 508
15.4 自定义设计器 510
15.4.1 内置设计器 510
15.4.2 编写自定义设计器 511
小结 517