第一部分 基础 1
第1章 Web应用程序基础 1
1.1 HTTP请求 1
1.1.1来自于浏览器的HTTP请求 2
1.1.2不使用浏览器创建HTTP请求 3
1.2超文本标记语言 4
1.3动态内容 6
1.3.1 HTML表单 6
1.3.2通用网关接口 7
1.3.3微软Web服务器平台 8
1.4 Internet信息服务 8
1.4.1 Internet服务应用程序编程接口DLL 9
1.4.2 Internet信息服务 9
1.5传统ASP(站在ASP.NET的角度) 13
1.6 Web开发概念 15
1.7 ASP.NET 15
1.8小结 16
1.9第1章快速参考 16
第2章 ASP.NET应用程序基础 17
2.1规范的Hello World应用程序 17
2.1.1构建HelloWorld Web应用程序 17
2.1.2混合HTML与可执行代码 21
2.1.3服务器端的可执行代码块 23
2.2 ASP.NET编译模型 28
2.3代码选项 29
2.3.1 ASP.NET 1.x样式 30
2.3.2现在的ASP.NET样式 30
2.4 ASP.NET HTTP管道 32
2.4.1 IIS 5.x和IIS 6.x管道 33
2.4.2 IIS 7.0集成管道 33
2.4.3管道概述 34
2.5 Visual Studio和ASP.NET 35
2.5.1本地IIS Web站点 35
2.5.2基于文件系统的Web站点 36
2.5.3 FTP Web站点 36
2.5.4远程Web站点 36
2.5.5 Hello World和Visual Studio 37
2.6小结 41
2.7第2章快速参考 42
第3章 页面呈现模型 43
3.1以标签的方式呈现控件 43
3.2以组件方式封装UI 45
3.2.1 ASP.NET页面 46
3.2.2页面呈现模型 47
3.2.3页面控件树 48
3.3使用Visual Studio添加控件 49
3.3.1使用Visual Studio构建页面 49
3.3.2布局考虑 56
3.4小结 57
3.5第3章快速参考 58
第4章 自定义呈现控件 59
4.1 Control类 59
4.2 Visual Studio和自定义控件 60
4.3 Palindrome Checker 66
4.4控件和事件 69
4.5 HtmlTextWriter和控件 71
4.6控件和ViewState 73
4.7小结 76
4.8第4章快速参考 77
第5章 复合控件 78
5.1复合控件与呈现控件 78
5.2自定义复合控件 79
5.3用户控件 85
5.4使用各种类型控件的时机 91
5.5小结 91
5.6第5章快速参考 91
第6章 控件集合 92
6.1验证 92
6.1.1页面验证是如何工作的 96
6.1.2其他验证器 98
6.1.3验证器属性 98
6.2基于Image的控件 99
6.3 TreeView 102
6.4 MultiView 105
6.5小结 107
6.6第6章快速参考 107
第二部分 高级特性 109
第7章 Web Parts 109
7.1 Web Parts简史 110
7.2 Web Parts的好处是什么 110
7.2.1开发Web Parts控件 110
7.2.2 Web Parts页面开发 110
7.2.3 Web Parts应用程序开发 110
7.3 Web Parts架构 111
7.3.1 WebPartManager和WebZones 111
7.3.2内置区域 111
7.3.3内置Web Parts 112
7.4开发Web Part 120
7.5小结 127
7.6第7章快速参考 127
第8章 提供持续统一的外观 128
8.1一致的外观 128
8.2 ASP.NET Master Page 129
8.3主题 138
8.4皮肤 140
8.5小结 142
8.6第8章快速参考 142
第9章 配置 143
9.1 Windows配置 143
9.2 .NET配置 144
9.2.1 Machine.Config文件 144
9.2.2配置节处理程序 144
9.2.3 Web.Config文件 146
9.2.4在ASP.NET 1.x中进行配置管理 147
9.2.5在ASP.NET后面的版本中进行配置管理 147
9.3使用IIS进行ASP.NET配置 151
9.4小结 155
9.5第9章快速参考 155
第10章 登录 156
10.1基于Web的安全性 156
10.1.1 IIS安全性 157
10.1.2基本的Forms验证 157
10.2 ASP.NET验证服务 161
10.2.1 FormsAuthentication类 161
10.2.2可选登录页面 162
10.3用户管理 165
10.4 ASP.NET登录控件 169
10.5为用户授权 171
10.6小结 173
10.7第10章快速参考 174
第11章 数据绑定 175
11.1不使用数据绑定来显示集合 175
11.2使用数据绑定显示集合 175
11.2.1基于ListControl的控件 176
11.2.2 TreeView 176
11.2.3 Menu 176
11.2.4 FormView 176
11.2.5 GridView 177
11.2.6 DetailsView 177
11.2.7 DataList 177
11.2.8 Repeater 177
11.3简单数据绑定 177
11.4访问数据库 181
11.5 .NET数据库 181
11.5.1连接 181
11.5.2命令 183
11.5.3管理结果集 184
11.6 ASP.NET数据源 185
11.7其他数据绑定控件 189
11.8 LINQ 195
11.9小结 197
11.10第11章快速参考 197
第12章 Web站点导航 198
12.1 ASP.NET的导航支持 198
12.1.1导航控件 198
12.1.2 XML站点地图 199
12.1.3 SiteMapProvider 199
12.1.4 SiteMap类 200
12.1.5 SiteMapNode 200
12.2导航控件 201
12.2.1 Menu和TreeView控件 201
12.2.2 SiteMapPath控件 202
12.2.3站点地图配置 202
12.3构建可导航的Web站点 203
12.4捕获SiteMapResolve事件 206
12.5为节点添加自定义属性 207
12.6安全控制 209
12.7 URL映射 210
12.8小结 213
12.9第12章快速参考 214
第13章 个性化 215
13.1 Web访问中的个性化 215
13.2 ASP.NET中的个性化 215
13.2.1使用Profile 215
13.2.2个性化提供程序 216
13.3使用个性化 216
13.3.1在Web.Config文件中定义Profile 216
13.3.2使用Profile信息 217
13.3.3保存Profile的变化 217
13.3.4 Profile和用户 218
13.4小结 222
13.5第13章快速参考 222
第三部分 缓存和状态管理 223
第14章 会话状态 223
14.1为何需要会话状态 223
14.2 ASP.NET与会话状态 224
14.3会话状态概述 224
14.4会话状态及其他复杂数据 228
14.5配置会话状态 234
14.5.1关闭会话状态 235
14.5.2通过Inproc保存会话状态 235
14.5.3在状态服务器上保存会话状态 235
14.5.4在数据库中保存会话状态 236
14.6跟踪会话状态 236
14.6.1使用Cookies来跟踪会话状态 236
14.6.2使用URL来跟踪会话状态 237
14.6.3使用AutoDetect 238
14.6.4应用设备配置 238
14.6.5会话状态超时 238
14.7其他会话配置设定 238
14.8 Wizard控件:会话状态的一个可用替代 239
14.9小结 246
14.10第14章快速参考 246
第15章 应用程序数据缓存 247
15.1使用数据缓存 249
15.2缓存的作用 250
15.3管理缓存 251
15.3.1内存中的数据集 252
15.3.2缓存过期 254
15.3.3缓存依赖 256
15.3.4 SQL Server依赖 258
15.3.5清理缓存 259
15.4小结 261
15.5第15章快速参考 262
第16章 缓存输出 263
16.1缓存页面内容 263
16.2管理缓存内容 265
16.2.1修改OutputCache指令 265
16.2.2 HttpCachePolicy 269
16.2.3缓存定位 270
16.2.4输出缓存依赖 270
16.2.5缓存Profile 271
16.3缓存用户控件 271
16.4输出缓存有意义的时候 274
16.5小结 275
16.6第16章快速参考 275
第四部分 诊断和管道 277
第17章 诊断和调试 277
17.1页面跟踪 277
17.1.1启用跟踪 277
17.1.2跟踪语句 281
17.2应用程序跟踪 283
17.2.1以编程方式启用跟踪 285
17.2.2 TraceFinished事件 286
17.2.3其他管道跟踪消息 286
17.3使用Visual Studio调试 286
17.4错误页面 289
17.5未处理的异常 292
17.6小结 293
17.7第17章快速参考 293
第18章 HttpApplication类和HTTP模块 295
18.1 Application对象:一个交汇点 295
18.2重写HttpApplication 296
18.2.1应用程序状态的附加说明 298
18.2.2事件处理 298
18.2.3 HttpApplication事件 299
18.3 HttpModules 301
18.3.1存在的模块 301
18.3.2实现一个模块 302
18.3.3查看活动的模块 304
18.3.4在模块中存储状态 306
18.4 Global.asax与HttpModules 308
18.5小结 309
18.6第18章快速参考 309
第19章 自定义Handler 310
19.1 Handler 310
19.2内置Handler 311
19.3 IHttpHandler 314
19.4 Handler和会话状态 318
19.5一般Handler(ASHX文件) 318
19.6小结 320
19.7第19章快速参考 321
第五部分 服务、AJAX、部署以及Silverlight 323
第20章 ASP.NET Web服务 323
20.1 Remoting 323
20.2 Web上的Remoting 324
20.2.1 SOAP 325
20.2.2传输类型系统 325
20.2.3 Web服务描述语言 325
20.3如果你不能使用ASP.NET 325
20.4 ASP.NET中的Web服务 326
20.5调用Web服务 332
20.6异步执行 335
20.7 Web服务的演化过程 338
20.8其他特性 338
20.9小结 339
20.10第20章快速参考 339
第21章 WCF 340
21.1分布式计算的回归 340
21.2一些零散的通信API 340
21.3面向互联系统的WCF 341
21.4 WCF的组成元素 341
21.4.1 WCF端点 341
21.4.2通道 342
21.4.3行为 342
21.4.4消息 343
21.5如何在ASP.NET中玩转WCF 343
21.5.1并行模式 343
21.5.2 ASP.NET兼容模式 343
21.6编写一个WCF服务 344
21.7构建一个WCF客户端 349
21.8小结 353
21.9第21章快速参考 354
第22章 AJAX 355
22.1什么是AJAX 356
22.2 AJAX概述 356
22.2.1使用AJAX的原因 356
22.2.2真实世界的AJAX 358
22.2.3正确的AJAX 358
22.3 ASP.NET服务器端控件对AJAX的支持 359
22.3.1 ScriptManager控件 359
22.3.2 ScriptManagerProxy控件 359
22.3.3 UpdatePanel控件 359
22.3.4 UpdateProgress控件 359
22.3.5 Timer控件 360
22.4 AJAX客户端支持 360
22.4.1 ASP.NET AJAX控件工具箱 360
22.4.2其他的ASP.NET AJAX社区支持材料 360
22.4.3 AJAX控件工具箱集合 361
22.5熟悉AJAX 362
22.6定时器 367
22.7更新进展 373
22.8扩展控件 376
22.8.1 AutoComplete扩展 376
22.8.2一个模态弹出对话框风格的组件 381
22.9小结 384
22.10第22章快速参考 385
第23章 ASP.NET与WPF 386
23.1 WPF是什么 386
23.1.1与Web应用有什么关系 387
23.1.2松散的XAML文件 388
23.1.3 XBAP应用程序 388
23.2 WPF内容以及Web应用程序 389
23.3关于Silverlight 393
23.4小结 394
23.5第23章快速参考 394
第24章 Web应用程序类型如何影响部署 395
24.1 Visual Studio工程 395
24.1.1 HTTP工程 395
24.1.2 FTP工程 396
24.1.3文件系统工程 396
24.2预编译 396
24.2.1预编译性能 396
24.2.2预编译部署 397
24.2.3发布一个Web站点 403
24.3小结 404
24.4第24章快速参考 404