前言 1
第1部分 ASP.NET基础知识 5
第1章 了解.NET框架 7
1.1 .NET框架的益处 7
1.1.1 一致的编程模型 8
1.1.2 对安全性的直接支持 10
1.1.3 得到简化的开发工作 10
1.1.4 简易的应用程序实施和维护 13
1.2 .NET框架的要素 14
1.2.1 通用语言运行时 15
1.2.2 .NET类库 16
1.2.3 一致的组件 16
1.3 小结 18
第2章 开始学习ASP.NET 19
2.1 介绍.NET框架 19
2.2 介绍ASP.NET 21
2.3 建立开发环境 21
2.4 创建ASP.NET应用程序 24
2.4.1 创建Visual Basic Web应用程序 25
2.4.2 创建一个C#Web应用程序 27
2.5 部署ASP.NET Web应用程序 28
2.6 小结 30
第3章 利用Web控件建立表单 31
3.1 介绍ASP.NET Web Form 31
3.1.1 Web Forms组件 32
3.1.2 Web Forms服务器控件 32
3.2 创建Web表单应用程序项目 33
3.3 使用Web控件 35
3.3.1 标签控件 36
3.3.2 文本框控件 37
3.3.3 复选框和复选框列表控件 38
3.3.4 单选钮和单选钮列表控件 40
3.3.5 列表框控件 40
3.3.6 下拉列表控件 41
3.3.7 超链接控件 41
3.3.8 表格控件 42
3.3.9 图像控件 43
3.3.10 按钮、链接按钮和图像按钮控件 44
3.4 与事件有关的工作 44
3.4.1 往返 44
3.4.2 事件处理程序 45
3.4.3 执行事件和事件处理程序 46
3.4.4 处理发送回 47
3.4.5 使用ViewState 47
3.5 小结 48
第4章 使用Rich Web控件 49
4.1 使用AdRotator控件 49
4.1.1 AdRotator控件的属性 50
4.1.2 AdRotator控件的事件 51
4.1.3 向使用AdRotator的客户浏览器提交广告 52
4.2 使用Calendar控件 54
4.2.1 Calendar控件的属性 54
4.2.2 Calendar控件的事件 55
4.2.3 使用Calendar控件向客户机浏览器提交日历 57
4.3 使用TreeView控件 58
4.3.1 TreeView控件的属性 59
4.3.2 TreeView控件的事件 59
4.3.3 提交TreeView控件 60
4.4 使用TabStrip控件和MultiPage控件 62
4.4.1 TabStrip控件 62
4.4.2 MultiPage控件 63
4.4.3 一起使用MultiPage和TabStrip控件 63
4.5 使用Toolbar控件 65
4.5.1 Toolbar控件的属性 65
4.5.2 Toolbar控件的事件 66
4.5.3 提交工具栏 66
4.6 小结 68
第5章 创建及使用自定义控件 69
5.1 介绍自定义控件 69
5.2 Web表单控件的基本结构 70
5.2.1 用于Web表单控件的类 70
5.2.2 用于Web表单控件的接口 71
5.3 创建自定义控件 72
5.3.1 创建及使用用户控件 72
5.3.2 开发复合控件 74
5.4 添加属性和方法 79
5.5 处理及暴露事件 80
5.6 小结 80
第6章 验证用户输入 81
6.1 理解验证控件 81
6.2 使用RequiredFieldValidator控件 83
6.2.1 ControlToValidate属性 85
6.2.2 Display属性 85
6.3 使用CompareValidator控件 85
6.4 使用RangeValidator控件 88
6.4.1 Type属性 88
6.4.2 MinimumValue和MaximumValue属性 89
6.4.3 MinimumControl和MaximumControl属性 91
6.5 使用RegularExpressionValidator控件 91
6.6 使用CustomValidator控件 94
6.7 使用ValidationSummary控件 97
6.8 验证事件 99
6.9 多个验证控件和代码隐藏 99
6.10 使用代码 100
6.11 小结 101
第7章 调试ASP.NET页面 103
7.1 错误处理 103
7.1.1 使用自定义错误页面 104
7.1.2 跟踪错误 105
7.2 使用调试工具 106
7.2.1 Visual Studio.NET调试器 106
7.2.2 ASP.NET跟踪功能 110
7.3 编写好的ASP.NET代码 115
7.3.1 表单设计 115
7.3.2 变量和对象 115
7.3.3 编程逻辑 116
7.3.4 编码风格 116
7.4 小结 116
第2部分 ASP.NET数据库程序设计 117
第8章 ADO.NET概述 119
8.1 ADO.NET概况 119
8.1.1 互操作性 120
8.1.2 可维护性 120
8.1.3 可编程性 121
8.1.4 性能 122
8.1.5 可伸缩性 122
8.2 ADO.NET对象模型 122
8.2.1 管理提供程序 122
8.2.2 DataSet类 124
8.3 与ADO进行比较 125
8.4 使用ADO.NET与OLEDB数据源进行通信 126
8.4.1 System.Data.OleDb.OleDbConnection类 126
8.4.2 System.Data.OleDb.OleDbCommand类 127
8.4.3 System.Data.OleDb.OleDbDataReader类 129
8.4.4 System.Data.OleDb.OleDbDataAdapter类 130
8.4.5 System.Data.DataSet,System.Data.DataTable,System.Data.DataRow和System.Data.DataColumn类 131
8.5 小结 132
第9章 理解数据绑定 133
9.1 数据绑定概述 133
9.2 数据源绑定 134
9.2.1 将数据绑定到页面属性 136
9.2.2 将数据绑定到控件属性 137
9.2.3 将数据绑定到一个ArrayList对象 138
9.2.4 绑定方法 140
9.2.5 将数据绑定到一个DataView对象 141
9.3 处理发送回的数据 142
9.4 小结 143
第10章 数据网格的使用 145
10.1 数据网格控件的应用范例 145
10.2 设计ASPX页面时的附加功能 147
10.2.1 标题和脚注 148
10.3 Columns属性的使用 152
10.3.1 BoundColumn类 153
10.3.2 ButtonColumn类 154
10.3.3 EditColumn类 157
10.3.4 HyperLinkColumn类 162
10.4 分页网格数据 164
10.5 排序网格数据 166
10.6 小结 168
第11章 模板的使用 169
11.1 模板概述 169
11.1.1 Repeater控件 170
11.1.2 DataList控件 170
11.1.3 DataGrid控件 171
11.1.4 Repeater,DataList和DataGrid三种控件的比较 172
11.2 创建模板 173
11.2.1 组合使用模板和Repeater控件 174
11.2.2 组合使用模板和DataList控件 177
11.2.3 组合使用模板和DataGrid控件 180
11.3 小结 182
第12章 在ASP.NET应用程序中使用SQL Server 183
12.1 在服务器端访问来自SQL Server的数据 183
12.2 T-SQL回顾 185
12.2.1 检索SQL数据库中的数据 186
12.2.2 在SQL数据库中插入、更新和删除数据 186
12.2.3 存储过程 187
12.3 在Web应用中实现T-SQL 188
12.3.1 访问数据 190
12.3.2 添加数据 192
12.3.3 修改和删除数据 194
12.3.4 使用存储过程 196
12.4 使用ADO扩展(ADOX) 198
12.4.1 标准ADOX对象 198
12.4.2 使用ADOX对象 199
12.5 小结 200
第13章 高级数据绑定和XML 201
13.1 XML概述 201
13.2 与XML相关的规范概览 204
13.2.1 文档类型定义 204
13.2.2 XML名字空间 205
13.2.3 XML模式 205
13.2.4 可扩展样式表语言转换(XSL/T)规范 206
13.2.5 XML文档对象模型 206
13.3 ASP.NET对XML的支持 207
13.3.1 System.xml名字空间 207
13.3.2 XML Web服务器控件 207
13.3.3 将关系型数据转换成XML格式 210
13.3.4 在XML文件中绑定服务器端控件与数据 212
13.4 小结 216
第3部分 高级ASP.NET 217
第14章 ASP.NET应用程序配置 219
14.1 ASP.NET配置概念 219
14.2 Web.config配置文件 221
14.3 ASP.NET的配置节 223
14.3.1 <configuration>节 223
14.3.2 <configSections>节 223
14.3.3 <appSettings>节 224
14.3.4 <browserCaps>节 224
14.3.5 <compilation>节 225
14.3.6 <customErrors>节 227
14.3.7 <globalization>节 228
14.3.8 <httpHandlers>节 229
14.3.9 <httpModules>节 230
14.3.10 Web.config文件中的安全设置 230
14.3.11 <processModel>节 233
14.3.12 <sessionState>节 234
14.3.13 <trace>会话 236
14.3.14 <webServices>节 237
14.4 小结 239
第15章 开发商务对象 241
15.1 商务对象概述 242
15.2 创建和使用商务对象 242
15.2.1 创建一个UI为中心的商务规则对象 242
15.2.2 创建一个数据为中心的商务规则对象 243
15.2.3 使用商务对象 245
15.2.4 使用ASP.NET的Data控件创建一个数据访问组件 249
15.3 部署商务对象 255
15.3.1 创建一个单文件的程序体 256
15.3.2 创建一个多文件的程序体 256
15.3.3 创建一个部署项目 258
15.4 处理商务对象名字空间 259
15.5 小结 260
第16章 创建HTTP处理程序 261
16.1 HTTP运行时和HTTP处理程序概述 261
16.1.1 ISAPI和HTTP运行时 262
16.1.2 HTTP运行时体系结构 262
16.2 用于创建HTTP处理程序的接口和类 264
16.2.1 IHttpHandler接口 264
16.2.2 IHttpHandlerFactory接口 265
16.2.3 HttpContext类 265
16.2.4 HttpRequest类 266
16.2.5 HttpResponse类 266
16.3 创建HTTP处理程序 266
16.3.1 创建实现IHTTPHandler接口的类 266
16.3.2 在Web应用程序中使用处理程序类 267
16.4 自定义HTTP处理程序示例 268
16.5 小结 270
第17章 高速缓存技术 271
17.1 高速缓存概述 271
17.2 ASP.NET中的高速缓存 274
17.2.1 Cache API 275
17.2.2 Cache API Performance Monitor计数器 277
17.3 高速缓存页面输出 278
17.4 高速缓存页面数据 281
17.4.1 Session对象 281
17.4.2 Cache对象 282
17.5 小结 287
第18章 使用ASP.NET Mobile控件创建无线应用程序 289
18.1 移动应用程序开发概述 289
18.1.1 移动应用程序开发中的问题 289
18.1.2 无线设备和仿真程序 290
18.1.3 WAP、WML和一叠卡片 291
18.2 创建移动应用程序 292
18.2.1 静态页面 292
18.2.2 安装MIT 295
18.2.3 创建MIT页面 296
18.2.4 由WML转化为MIT 296
18.3 移动列表 298
18.3.1 简单列表 298
18.3.2 修饰列表 300
18.3.3 列表数据绑定 301
18.3.4 分页 301
18.3.5 打电话 304
18.4 收集用户数据 306
18.4.1 选择列表 306
18.4.2 移动文本框 308
18.4.3 使用密码或者数字 310
18.4.4 验证输入的有效性 310
18.5 小结 311
第19章 ASP.NET的安全性 313
19.1 ASP.NET安全性概述 313
19.1.1 IIS安全性 314
19.1.2 Web应用程序中的验证 315
19.2 基于表单的验证 317
19.3 集成安全方法 322
19.4 基于角色的安全 324
19.5 小结 326
第20章 本地化ASP.NET应用程序 327
20.1 本地化概述 327
20.1.1 字符集 328
20.1.2 配置设置 329
20.2 设置Culture和Region 329
20.2.1 System.Globalization名字空间 330
20.2.2 实现类 333
20.3 资源文件的使用 335
20.3.1 System.Resources名字空间 336
20.3.2 创建一个认知资源的应用程序 337
20.4 小结 344
第21章 部署ASP.NET应用程序 345
21.1 部署项目概述 345
21.1.1 选择部署项目的类型 345
21.1.2 创建部署项目 346
21.1.3 在部署项目中使用编辑器 347
21.1.4 构建部署项目 359
21.2 ASP.NET配置系统 359
21.3 部署类和程序集 361
21.4 小结 362
第4部分 创建Web服务 363
第22章 Web服务概述 365
22.1 了解Web服务 365
22.1.1 什么是Web服务 366
22.1.2 Web服务的基本元素 367
22.2 表示数据 367
22.2.1 什么是XML 367
22.2.2 XML语法 368
22.2.3 XML文档结构 368
22.2.4 XML名字空间 369
22.2.5 XML模式 370
22.2.6 XSD语法 371
22.3 交换消息 373
22.3.1 采用SOAP协议交换消息 373
22.3.2 用HTTP-GET和HTTP-POST交换消息 374
22.4 描述Web服务性能 375
22.5 发布和寻找Web服务 378
22.6 寻找Web服务提供商 379
22.7 Microsoft HailStorm 381
22.8 小结 382
第23章 Web服务底层结构 383
23.1 Microsoft Web服务平台 383
23.2 Microsoft.NET框架 384
23.2.1 CLR 384
23.2.2 .NET框架类库 385
23.2.3 ASP.NET 386
23.3 Web服务底层结构 389
23.3.1 Web服务目录 389
23.3.2 Web服务发现 390
23.3.3 Web服务描述 391
23.3.4 Web服务有线格式 392
23.4 在Web服务中利用ASP.NET特性 393
23.4.1 支持事务 393
23.4.2 启用会话状态 394
23.4.3 Web服务高速缓存 395
23.4.4 缓冲服务器响应 396
23.5 ASP.NET Web服务内部 396
23.6 小结 397
第24章 理解SOAP 399
24.1 什么是SOAP 399
24.2 SOAP规范 400
24.3 SOAP消息元素 401
24.3.1 SOAP包封 401
24.3.2 SOAP标头 402
24.3.3 SOAP正文 403
24.4 SOAP数据类型支持 403
24.5 SOAP异常 405
24.6 用HTTP作为SOAP消息的传送协议 406
24.7 .NET框架中的SOAP 408
24.7.1 使用SOAP标头 408
24.7.2 使用SOAP扩展 411
24.7.3 处理SOAP异常 412
24.8 Microsoft SOAP工具包 413
24.8.1 工具包特性 414
24.8.2 创建Web服务 414
24.8.3 创建Web服务客户端应用程序 415
24.8.4 WSDL/WSML生成器工具 416
24.8.5 SOAP跟踪实用程序 416
24.9 小结 416
第25章 创建Web服务 417
25.1 温度转换Web服务 417
25.1.1 温度转换公式 417
25.1.2 方法说明 418
25.1.3 方法参数 418
25.1.4 方法行为 418
25.2 创建Web服务 418
25.2.1 开始创建 419
25.2.2 实现Web服务 424
25.2.3 构建Web服务 428
25.3 测试Web服务 428
25.3.1 使用HTTP-GET协议测试Web服务 429
25.3.2 使用HTTP-POST协议测试Web服务 433
25.4 调试Web服务 434
25.4.1 允许ASP.NET Web服务启用调试模式 434
25.4.2 启动ASP.NET运行时 434
25.4.3 调试CTemp Web服务 435
25.4.4 设置断点 436
25.4.5 测试Web服务方法 436
25.4.6 检查程序变量 437
25.4.7 继续方法执行过程 438
25.5 小结 438
第26章 部署和发布Web服务 439
26.1 部署准备 439
26.1.1 Web服务名字空间 439
26.1.2 设置CTemp Web服务的名字空间 440
26.2 部署Web服务 441
26.2.1 随Web服务一起部署的文件 441
26.2.2 Web服务部署工具 442
26.3 发布Web服务 443
26.3.1 用DISCO发布 444
26.3.2 用UDDI发布 445
26.4 小结 450
第27章 查找Web服务 451
27.1 Web服务发现 451
27.1.1 用Disco工具查找Web服务 452
27.1.2 用UDDI查找Web服务 454
27.2 Web服务查询和代理类 458
27.2.1 用WSDL工具创建代理类 458
27.2.2 用Visual Studio创建代理类 463
27.3 小结 464
第28章 使用Web服务 465
28.1 Web服务客户概述 465
28.2 Web服务代理类 466
28.3 创建客户应用程序 466
28.3.1 获得WSDL文档 467
28.3.2 生成代理类 468
28.3.3 创建Web表单 473
28.3.4 创建代理类的实例 475
28.3.5 调用CTemp代理方法 476
28.4 测试客户应用程序 477
28.5 应用程序执行模型 478
28.6 小结 479
第5部分 创建ASP.NET应用程序 481
第29章 ASP.NET Blackjack游戏程序 483
29.1 Blackiack游戏的规则 483
29.2 玩游戏 484
29.3 设计Blackjack程序 487
29.3.1 遍历程序过程 487
29.3.2 选出对象并划分责任 488
29.3.3 用户界面 488
29.4 运作环境 488
29.5 Card对象 489
29.6 Shoe对象的数据结构 489
29.6.1 可随机排列的堆栈 489
29.6.2 新类和堆叠填充纸牌的地方 490
29.6.3 进栈、出栈 491
29.6.4 没有取数功能 491
29.6.5 使次序具备随机性 491
29.6.6 保存和编译这个新类 492
29.7 Shoe对象 492
29.7.1 为Shoe对象类编写代码 492
29.7.2 随机堆叠的地方 495
29.7.3 新的构造函数 495
29.7.4 计数、洗牌和抽牌 497
29.7.5 保存和编译Shoe类 497
29.7.6 Shoe类小结 497
29.8 Blackiack页面 498
29.8.1 游戏起始代码 502
29.8.2 Participant(参与者)类 503
29.8.3 页面正文 505
29.8.4 初始化和对象的巧妙处理 507
29.8.5 响应事件 509
29.9 需要改进的地方 512
29.10 小结 512
第30章 Chatty论坛 513
30.1 快速浏览Chatty论坛 513
30.2 设计Chatty论坛应用程序 516
30.2.1 层次结构还是无层次结构 516
30.2.2 存储讨论内容 517
30.3 创建数据库 517
30.4 填充数据库 518
30.5 选取主题 519
30.5.1 检索主题 520
30.5.2 显示主题 520
30.5.3 处理主题选择操作 521
30.6 选取线程 522
30.6.1 使用TopicID作为选择条件 523
30.6.2 线程页面的DataList控件 524
30.6.3 选择线程 524
30.7 浏览邮件 525
30.7.1 检索邮件 528
30.7.2 标头 528
30.7.3 显示邮件 528
30.7.4 链接到线程和主题 529
30.7.5 新邮件表单 529
30.8 创建新线程 532
30.8.1 NewThread表单 535
30.8.2 NewThread的PostClick子例程:一项巨大的任务 535
30.8.3 线程化新行 535
30.8.4 观察是否有重复 536
30.8.5 获取ThreadID 536
30.8.6 投递邮件 537
30.9 需要改进的地方 537
30.10 小结 538
附录A Visual Basic语法 539
附录B Visual Basic函数和特性 563
附录C Visual Basic面向对象编程 579
附录D C#语法 593
附录E C#类 613
附录F C#组件 635