第1章 ASP.NET入门 1
1.1 什么是静态Web页面 2
1.2 静态Web页面的工作原理 3
1.2.1 静态Web页面的局限性 3
1.2.2 什么是Web服务器 4
1.3 动态Web页面的工作原理 5
1.4 什么是ASP.NET 8
1.5 ASP.NET与ASP的区别 8
1.8 安装过程 9
1.7 ASP、ASP.NET以及VB.NET之间的区别 9
1.6 使用VB.NET 9
1.8.1 使用哪个操作系统 10
1.8.2 安装ASP.NET的准备工作 11
1.8.3 安装ASP.NET和.NET Framework 11
1.9 安装Web Matrix 13
1.10 为.NET Framework 1.1配置Web Matrix 15
1.11 运行Web Matrix和配置Web服务器 16
1.12 ASP.NET测试示例 21
1.13.2 页面不能显示:HTTP错误403 24
1.13 排除ASP.NET故障 24
1.13.1 没有找到程序、没有显示ASP.NET的结果或浏览器试图下载文件 24
1.13.3 找不到页面:HTTP错误404 25
1.13.4 脱机状态下Web页面不可用 26
1.13.5 得到了一个空页面 26
1.13.6 页面上显示了消息,但不是时间 26
1.13.7 得到引述服务器错误的错误语句 26
1.13.8 其他问题 27
1.14 小结 27
2.1 什么是.NET 29
第2章 ASP.NET页面的剖析 29
2.1.1 从用户代码到机器代码 30
2.1.2 两种中间语言介绍 31
2.1.3 无处不在的对象 31
2.1.4 .NET的基类 32
2.1.5 类浏览器 33
2.2 ASP.NET的工作原理 34
2.2.1 将ASP.NET文件以.aspx扩展名保存 35
2.2.2 在Web页面中插入ASP.NET代码 35
2.3 ASP.NET应用示例 43
2.4 小结 49
2.5 练习 50
第3章 服务器控件和变量 51
3.1 窗体 51
3.2 Web页面、HTML窗体及Web窗体 52
3.3 非ASP.NET页面中的响应和请求 53
3.3.1 ASF.NET在.NET Framework中的位置 54
3.3.2 在ASP.NET中的〈form〉标记 55
3.4 使用ASP.NET服务器控件 55
3.4.1 〈asp:label〉控件 56
3.4.2 〈asp:dropdownlist〉控件 59
3.4.3 〈asp:listbox〉控件 63
3.4.4 〈asp:textbox〉控件 65
3.4.5 〈asp:radiobutton〉和〈asp:radiobuttonlist〉控件 67
3.4.6 〈asp:checkbox〉和〈asp:checkboxlist〉控件 69
3.5 在VB.NET变量中存储信息 72
3.6 简单数据类型 75
3.6.1 数字型 75
3.6.2 文本数据类型 76
3.6.4 命名变量 78
3.6.3 其他数据类型 78
3.6.5 命名约定 79
3.6.6 变量的作用域 80
3.7 常量 85
3.8 转换函数 85
3.9 数组 85
3.9.1 声明数组 86
3.9.2 多维数组 89
3.10.1 ArrayList 90
3.10 数据集合 90
3.10.2 Hashtable 93
3.10.3 SortedList 96
3.11 小结 97
3.12 练习 98
第4章 控制结构与过程编程 99
4.1 运算符 99
4.1.1 赋值运算符 99
4.1.2 算术运算符 100
4.1.3 连接字符串 103
4.1.4 数值比较运算符 104
4.1.5 逻辑运算符 105
4.2 控制结构 109
4.2.1 分支结构概述 109
4.2.2 循环结构概述 109
4.2.3 跳转结构概述 110
4.2.4 控制结构示例 111
4.3 分支结构详述 112
4.3.1 If...Then结构 112
4.3.2 Select Case结构 120
4.4 循环结构详述 124
4.4.1 For...Next结构 124
4.4.2 Do While结构 128
4.4.3 Do...Until结构 131
4.4.4 For...Each结构 132
4.4.5 With...End With结构 133
4.5 小结 134
4.6 练习 135
5.1 跳转结构 136
第5章 跳转结构——子例程和函数 136
5.2 跳转结构详述 137
5.2.1 模块化 137
5.2.2 子例程 138
5.3 传递参数 141
5.4 把Web控件作为参数 145
5.5 函数 148
5.5.1 定义函数 149
5.5.2 调用函数 149
5.5.3 函数练习 151
5.6 通过引用和通过值传递参数 156
5.6.1 通过值传递参数 156
5.6.2 通过引用传递参数 157
5.7 ByVal和ByRef的比较 160
5.8 模块化的最佳使用方式 161
5.9 小结 161
5.10 练习 162
第6章 事件驱动编程与回送 163
6.1 什么是事件 163
6.2 什么是事件驱动编程 164
6.3 在浏览器上执行的HTML事件 165
6.4 ASP.NET的跟踪功能 167
6.5 ASP.NET的页面事件 168
6.6 ASP.NET的Web控件事件 170
6.7 事件驱动编程与回送 172
6.8 小结 179
6.9 练习 180
第7章 对象 182
7.1 类和实例 182
7.3 .NET中的对象 183
7.2 属性、方法和事件 183
7.4 为什么要使用对象 184
7.5 类的定义 184
7.5.1 属性变量 190
7.5.2 属性类型 190
7.5.3 初始化对象 192
7.5.4 方法的实现 193
7.5.5 巩固重载方法 196
7.6 高级类 197
7.6.1 共享或静态属性和方法 197
7.6.2 继承 198
7.6.3 接口 203
7.7 .NET对象 209
7.7.1 命名空间 209
7.7.2 类浏览器 210
7.8 小结 211
7.9 练习 211
第8章 读取数据库 212
8.1 理解数据库 212
8.1.1 表 212
8.1.2 规范化 213
8.1.3 SQL和存储过程 214
8.2 Web Matrix数据管理器 215
8.3 创建数据页面 216
8.3.1 使用数据管理器显示数据 216
8.3.2 使用Web Matrix模板页面显示数据 219
8.3.3 使用编码向导显示数据 224
8.4 ADO.NET 231
8.4.1 OleDbConnection对象 233
8.4.2 OleDbCommand对象 233
8.4.4 DataSet对象 238
8.4.3 OleDataAdapter对象 238
8.4.5 DataReader对象 239
8.5 小结 241
8.6 练习 241
第9章 高级数据处理 242
9.1 更多的数据对象 242
9.1.1 Data Table对象 242
9.1.2 DataRow对象 244
9.2.1 ADO.NET和ADO 247
9.2 更新数据库 247
9.2.2 更新DataSet中的数据 248
9.2.3 更新初始数据源 254
9.2.4 更新数据库 258
9.2.5 使用命令更新数据库 262
9.3 小结 265
9.4 练习 265
第10章 ASP.NET服务器控件 266
10.2 ASP.NET Web控件 267
10.1 Wrox United应用程序 267
10.3 HTML服务器控件 268
10.4 HTML服务器控件与ASP.NET服务器控件 270
10.5 Web控件 271
10.5.1 多功能对象模型 271
10.5.2 自动探测浏览器 271
10.5.3 属性 271
10.6 事件 273
10.7 页面的生存期 275
10.7.2 事件处理 276
10.7.1 Page_Load() 276
10.7.3 Page_Unload() 277
10.8 理解Web控件:Wrox United应用程序 277
10.8.1 内生控件 281
10.8.2 数据显示控件 288
10.8.3 多功能控件 298
10.8.4 Web Matrix控件 309
10.8.5 验证控件 313
10.9 小结 317
10.10 练习 318
11.1 存储Web应用程序中的信息 319
第11章 用户和应用程序 319
11.1.1 Cookies 320
11.1.2 会话 330
11.1.3 会话的工作原理 330
11.2 应用程序状态 340
11.3 响应应用程序和会话事件 345
11.4 高速缓存 348
11.5 有关状态的建议 352
11.5.4 使用高速缓存的场合 353
11.5.3 使用应用程序状态的场合 353
11.5.2 使用会话的场合 353
11.5.1 使用Cookie的场合 353
11.5.5 其他状态管理技术 354
11.5.6 在页面上使用多种状态管理技术 354
11.6 小结 362
11.7 练习 362
第12章 ASP.NET的可复用代码 364
12.1 封装 364
12.2 组件 365
12.2.1 为什么要使用组件 366
12.3 用户控件 367
12.2.2 把组件的理论应用到应用程序上 367
12.4 后台编码 382
12.5 小结 389
12.6 练习 389
第13章 .NET程序集和定制控件 391
13.1 三层应用程序设计 391
13.2 ASP.NET应用程序设计 393
13.3 .NET程序集 394
13.3.1 什么是编译 396
13.3.2 在ASP.NET页面中访问组件 399
13.3.3 XCopy部署 401
13.3.4 访问其他地方的程序集 402
13.3.5 用其他语言编写代码 403
13.3.6 数据访问组件 407
13.4 定制服务器控件 413
13.4.1 什么是定制控件 413
13.4.2 复合定制控件 421
13.5 小结 427
13.6 练习 428
14.1 几个好的习惯 429
第14章 调试和错误处理 429
14.2.1 缩进代码 430
14.2 好的编码方式 430
14.2.2 使代码条理化 431
14.2.3 给代码加上注释 431
14.2.4 使用Page的显式类型声明设置 432
14.2.5 使用Page的严格转换类型设置 432
14.2.6 把变量转换为正确的数据类型 432
14.2.7 代码的中断 433
14.3.1 语法错误 434
14.3 错误的来源 434
14.3.2 逻辑(运行)错误 437
14.3.3 系统错误 442
14.4 查找错误 442
14.4.1 Debug模式 444
14.4.2 跟踪 445
14.5 处理错误 451
14.5.1 非结构化的错误处理 451
14.5.2 结构化的错误处理 457
14.5.3 以编程方式处理错误 462
14.6 通知和日志 464
14.6.1 定制的错误消息 464
14.6.2 写入事件日志 467
14.6.3 给站点管理员发送邮件 470
14.7 小结 472
14.8 练习 472
第15章 配置和优化 474
15.1 配置概述 474
15.1.1 浏览.config文件 475
15.1.2 配置文件 477
15.1.3 配置文件的结构 479
15.2 性能优化 485
15.3 提示和技巧 500
15.4 小结 501
15.5 练习 501
第16章 Web服务 502
16.1 什么是Web服务 502
16.2 HTTP、XML和Web服务 506
16.3 简单对象访问协议(SOAP) 509
16.4.1 处理指令 510
16.4 建立ASP.NET Web服务 510
16.4.2 命名空间 511
16.4.3 公共类 511
16.4.4 Web方法 511
16.4.5 测试Web服务 514
16.4.6 使用Web服务 516
16.5 使用Web服务 520
16.5.1 代理程序的工作原理 521
16.5.2 创建一个代理 522
16.6 为Wrox United应用程序创建Web服务 525
16.7 Web服务发现 532
16.8 Web服务的安全性 532
16.8.1 用户名/密码组合或注册表项 533
16.8.2 安全套接字层(SSL) 535
16.8.3 IP地址约束 536
16.8.4 Web Services Enhancements 536
16.9 其他考虑 536
16.9.1 网络连接 536
16.9.3 服务的盗用 537
16.9.2 异步方法调用 537
16.9.4 供应商的偿付能力 538
16.9.5 相互依赖的场合 538
16.10 小结 538
16.11 练习 539
第17章 ASP.NET的安全性 540
17.1 安全性的概念 540
17.2 ASP.NET安全性模型 541
17.3 身份验证 542
17.3.1 实现基于表单的身份验证 542
17.3.2 使用数据库的基于表单的身份验证 550
17.4 授权 554
17.5 给WroxUnited应用程序添加身份验证功能 556
17.6 使用SSL进行加密 566
17.7 小结 568
17.8 练习 568
附录A 习题答案 569
附录B Web Matrix快速入门 622
附录C Wrox United数据库 634
附录D 使用Visual Studio.NET开发Web应用程序 643
附录E 安装和配置IIS 681