第1章 ASP.NET概述 1
1.1 是升级还是创新 1
1.2 开始使用ASP.NET 2
1.3 安装.NET 2
1.3.1 配置实例 3
1.3.2 运行实例 4
1.4 Visual Studio.NET 5
1.5 ASP.NET与ASP的区别 8
1.5.1 需要这样一个新版本的原因 8
1.5.2 ASP.NET的优点 9
1.6 编写ASP.NET页面 19
1.6.1 创建站点 19
1.6.2页面实例 19
1.7 本章小结 23
第2章 认识.NET Framework 24
2.1 .NET简介 25
2.1.1 .NET的组成 25
2.1.2 WindowsDNA存在的问题 27
2.1.3 需要.NET的原因 29
2.2 CLR 33
2.2.1 通用功能 35
2.2.2 名称空间 36
2.2.3 通用类型系统 37
2.2.4 装配件——版本转换和安全性代码 43
2.2.5 CLR和COM 47
2.2.6 媒介语言 48
2.2.7 应用程序域(Application Domains) 48
2.3 .NET Framework详解 49
2.3.1 应用程序开发技术 50
2.3.3 基类库 52
2.3.2 类库 52
2.4 ASP.NET的设计目标 54
2.4.1 消除对脚本引擎的依赖性 54
2.4.2 在ASP基础上的升级 55
2.4.3 便于部署 56
2.4.4 强大的工具支持 57
2.4.5 更简单且更灵活的配置 57
2.4.6 分解的“开放”设计 59
2.4.7 与语言不相关 61
2.4.8 代码更少、更简练、更便于维护 62
2.4.9 强大的身份确认模型 63
2.4.10 正确认识错误的存在 63
2.4.11 不需要工具 63
2.5 本章小结 63
第3章 .NET语言 65
3.1.2 Visual Studio还是Notepad 66
3.1 所提供的语言 66
3.1.1 VBScript何去何从 66
3.1.3 Visual Basic.NET 67
3.1.4 C# 81
3.1.5 JScript.NET 94
3.1.6 C++ 102
3.1.7 其他支持的语言 102
3.2 .NET语言编译器 103
3.3 CLR的优点 106
3.3.1 通用API 106
3.3.2 通用类型 108
3.3.3 跨语言继承性 109
3.3.4 跨语言调试和记录 110
3.5 常用实例 111
3.4.2 后期绑定代码 111
3.4.1 语言 111
3.4 性能问题 111
3.5.1 变量声明 112
3.5.2 函数和过程 112
3.5.3 语法区别 114
3.5.4 类型转换 117
3.6 本章小结 118
第4章 编写ASP.NET页面 119
4.1 编码问题 119
4.1.1 以前的编码方式 119
4.1.2 ASP.NET页面中的编码 121
4.2 Page类 128
4.2.1 HttpRequest对象 131
4.2.2 HttpResponse对象 133
4.2.3 页面处理步骤 136
4.2.4 页面状态 145
4.2.5 页面指令 146
4.3 使用代码后置 151
4.3.1 开发工具中的“代码后置” 151
4.3.2 使用“代码后置” 151
4.3.3 在ASP.NET页面中继承代码后置类文件 154
4.4 页面高速缓存 154
4.4.1 输出高速缓存实例 155
4.4.2 通过浏览器实现高速缓存 156
4.5 智能导航 156
4.6 自定义控件 157
4.7 本章小结 167
5.2 服务器控件的概念 169
5.2.1 再论ASP.NET页面模型 169
5.1 简介 169
第5章 服务器控件与验证 169
5.2.2 练习使用服务器控件 172
5.2.3 使用服务器控件的时间 174
5.2.4 ASP.NET中可利用的控件 175
5.3 HTML服务器控件 176
5.3.1 HtmlControl基类 176
5.3.2 HTMLGenericControl类 177
5.3.3 专有HTML控件类 178
5.3.4 HTML服务器控件的用法 180
5.3.5 HTML服务器控件实例 181
5.4 ASP.NET输入验证控件 199
5.4.1 输入验证控件的作用 199
5.4.2 BaseValidator类 200
5.4.3 验证控件的特有成员 200
5.4.4 验证控件的应用 201
5.5 本章小结 208
第6章 ASP.NET Web表单控件 210
6.1 基本ASP.NET Web表单控件 210
6.1.1 为什么要有另外一组控件 211
6.1.2 基类WebControl 211
6.1.3 特殊的Web表单控件类 213
6.1.4 使用Web表单控件 214
6.1.5 ASP Web表单控件示例 220
6.2 ASP.NET列表控件 236
6.2.1 ListControl基类 236
6.2.2 特殊的列表控件类 237
6.2.3 使用ASP列表控件 238
6.3 ASP.NET中的其他多功能控件 243
6.4 本章小结 248
7.1 获取示例文件 250
第7章 列表控件和数据绑定 250
7.2 数据绑定的相关概念 251
7.2.1 在服务器上完成所有操作 251
7.2.2 数据绑定的语法 253
7.2.3 单值数据绑定 253
7.2.4 重复值数据绑定 257
7.2.5 简单的重复值数据绑定举例 264
7.3 添加样式和模板 278
7.3.1 使用样式属性 278
7.3.2 对数据绑定控件使用模板 280
7.3.3 处理数据绑定事件 295
7.3.4 对DataGrid中的行进行排序和筛选 297
7.3.5 DataGrid中的自动分页 303
7.4 使用数据绑定控件编辑数据 307
7.4.1 利用DataGrid控件编辑数据 307
7.4.2 利用DataList控件选择和编辑数据 312
7.5 本章小结 318
第8章 .NET数据管理引论 320
8.1 数据存储和数据访问 320
8.2 XML——将来的数据格式 322
8.3 是否是另一项数据访问技术 322
8.3.1 .NET意味着非连接数据 323
8.3.2 .NET意味着XML数据 325
8.3.3 .NET意味着受管理的代码 325
8.3.4 .NET意味着新的程序模型 326
8.4 在NET中引入数据管理 326
8.4.1 数据管理的系统名称空间 326
8.4.2 基本的ADO.NET对象 329
8.4.3 .NET中的关系型数据提供程序 338
8.5 .NET中常见的数据访问任务 338
8.5.1 在您的系统上创建案例 339
8.5.2 使用DataReader对象 340
8.5.3 一个简单的DataSet范例 342
8.5.4 含有多个表的DataSet范例 344
8.5.5 返回DataSet对象的用户控件 348
8.6 .NET中的XML引论 349
8.7 .NET中常见的XML任务 356
8.7.1 经由DOM的XML文档访问操作 356
8.7.2 使用XPathNavigator对象的XML文档访问操作 359
8.7.3 搜索XML文档 362
8.7.4 XML TextWriter对象范例 365
8.7.5 XML TextReader对象范例 368
8.7.6 XSL Transform对象范例 370
8.7.8 我们已学习的内容 371
8.8 选择一种数据存储的方法 371
8.7.7 XSL Transform范例代码 371
8.8.1 关键在于访问和处理 372
8.8.2 传输协议是大势所在 372
8.8.3 .NET是一套伟大的解决方案 373
8.9 本章小结 373
第9章 处理关系数据 374
9.1 获得实例文件 374
9.2 访问复杂数据 374
9.2.1 利用DataReader访问复杂数据 375
9.2.2 通过DataSet访问复杂数据 378
9.2.3 访问和显示嵌套数据 379
9.2.4 使用数据库存储过程 382
9.3 处理DataTable对象 389
9.3.1 管理约束和默认值 392
9.3.2 指定主键和外键 395
9.3.3 添加、修改、移去和删除行 399
9.3.4 处理DataTable事件 406
9.3.5 使用表和列映射 410
9.4 对数据分类和筛选 414
9.4.1 数据表对象中的分类和筛选 414
9.4.2 DataView对象中的分类和筛选 419
9.5 本章小结 421
第10章 关系数据源的更新 423
10.1 获得示例文件 423
10.2 利用Command对象更新数据 424
10.2.1 一起使用一个Command对象和一个SQL语句 424
10.2.2 使用一个存储过程和一个Command对象 427
10.3 使用事务处理更新数据源 431
10.3.1 数据库事务 431
10.3.2 基于连接的事务处理 435
10.4.1 深入到DataAdapter对象内部 439
10.4 更新DataSet对象中的数据 439
10.4.2 使用DataAdapter.Update方法 442
10.4.3 使用存储过程对DataSet进行更新 448
10.4.4 DataAdapter中的更新事件 455
10.5 对并发数据更新的管理 460
10.5.1 避免出现并发错误 460
10.5.2 一个并发错误示例 461
10.5.3 仅对要改变的列进行更新 463
10.5.4 利用RowUpdated事件捕获错误 468
10.6 本章小结 475
第11章 .NET中的XML数据管理 477
11.1 获取样本文件 477
11.2 XML和DataSet对象 478
11.2.1 DataSet基于XML的方法 478
11.2.2 将数据从DataSet写入XML文件 479
11.2.3 将数据从一个XML文件读入DataSet 482
11.2.4 以一个字符串的形式从DataSet中得到XML 485
11.2.5 DataSet中的嵌套XML和相关数据 487
11.3 处理XmlDataDocument对象 491
11.4 直接从SQL Server中读取XML数据 496
11.5 验证XML文档的有效性 499
11.6 创建和编辑XML文档 507
11.7 使用XSL和XSLT转换 513
11.8 本章小结 517
第12章 Web应用程序和Global.asax 518
12.1 IIS Web根目录以及应用程序 518
12.2 ASP.NET Web应用程序 522
12.2.1 注册组件 523
12.2.2 应用程序代码:global.asax 526
12.3 应用程序状态管理 530
12.3.1 Session——管理用户状态 531
12.3.2 Application——管理应用程序状态 534
12.3.3 Cache——管理瞬态状态 536
12.4 应用程序事件 545
12.4.1 事件语法和原型 546
12.4.2 所支持的事件 547
12.4.3 事件实例 550
12.5 高级主题 555
12.5.1 静态变量 556
12.5.2 为golbal.asax使用我们自己的基类 557
12.5.3 将文件扩展名映射到ASP.NET中 559
12.5.4 异步应用程序事件 560
12.6 本章小结 566
第13章 ASP:.NET的配置 567
13.1 配置综述 567
13.1.1 ASP的配置 568
13.1.2 ASP.NET的配置 569
13.1.3 配置文件格式 572
13.2 常用的配置设置 576
13.2.1 通用配置设置 577
13.2.2 页面配置 578
13.2.3 应用程序设置 579
13.2.4 Session状态 580
13.2.5 跟踪 588
13.2.6 自定义错误处理 592
13.2.7 身份验证和授权 596
13.2.8 Web服务 599
13.2.9 国际化和编码 601
13.2.10 编译选项 602
13.2.11 执行身份的控制 607
13.2.12 用HTTP处理程序来扩展ASP.NET 609
13.2.13 通过HTTP Modules扩展ASP.NET 613
13.2.14 配置ASP.NET Worker Process 614
13.3 高级问题 623
13.3.1 特定区域的详细说明 623
13.3.2 锁定配置设置 625
13.3.3 自定义配置处理程序 627
13.4 本章小结 629
第14章 保障ASP.NET应用程序的安全性 631
14.1 Windows 2000和IIS安全性概述 631
14.1.1 安全性需求 631
14.1.2 安全性概念 632
14.1.3 Windows 2000的验证过程 635
14.1.4 在IIS中验证身份 636
14.1.5 在Windows 2000中授权 639
14.1.6 在IIS中授权 640
14.2 ASP.NET安全概况 641
14.2.1 ASP.NET安全进程 641
14.2.2 ASP.NET安全选项 642
14.3 程序设计的安全和个性化 657
14.3.1 角色和身份概况 657
14.3.2 获取用户的身份和角色 657
14.4 ASP.NET安全范例 659
14.4.1 获取范例文件 659
14.4.2 Windows验证范例 662
14.4.3 基于表单的验证范例 665
14.4.4 简单的个性化范例 677
14.5 ASP.NET进程模型和信任级别 682
14.5.1 ASP.NET“进程模型” 683
14.5.3 规定信任级别 684
14.5.2 身份元素和个性化 684
14.6 本章小结 685
第15章 处理集合和列表 687
15.1 处理集合和列表 688
15.2 System.Collections核心接口 688
15.2.1 IEnumerable和IEnumerator 689
15.2.2 ICollection和IList 692
15.2.3 排序列表——IComparer和IComparable 701
15.2.4 ICollection 706
15.2.5 处理字典对象 711
15.2.6 堆栈 718
15.2.7 队列 720
15.2.8 分类列表 721
15.2.9 BitArray 724
15.3.1 StringCollection 726
15.3 System.Collections.Specialized 726
15.3.2 StringDictionary 727
15.4 强制类型的集合 727
15.4.1 步骤1——定义保存在集合中的项目的自定义类型 728
15.4.2 步骤2——创建集合类 730
15.5 DictionaryBase和CollectionBase 740
15.6 可任意处理的枚举对象——IEnumerator和IDisposable 741
15.7 本章小结 742
第16章 使用其他基类 743
16.1 目录和文件的处理 743
16.1.1 DirectoryInfo类和Directory类 744
16.1.2 File类和FileInfo类 746
16.1.3 常见的目录和文件操作 747
16.1.4 路径的处理 756
16.1.5 文件的读写 758
16.1.6 编写定制流 773
16.1.7 有关网络请求的类和流 776
16.1.8 正则表达式 781
16.2 模式匹配 781
16.2.1 模式的顺序和长度 782
16.2.2 文本替换 783
16.2.3 模式范例 783
16.3 正则表达式类 783
16.3.1 Regex类 784
16.3.2 Match类 785
16.3.3 Group类 785
16.3.4 Gapture类 786
16.3.5 替换 787
16.4 本章小结 787
17.1 编写业务对象 789
第17章 .NET组件 789
17.1.1 创建对象 790
17.1.2 编译类 801
17.1.3 测试类 802
17.2 跨语言继承 808
17.2.1 跨语言继承实例 808
17.2.2 .NET中的事务处理 812
17.3 部署组件 816
17.3.1 什么是装配件 817
17.3.2 装配件和版本 818
17.3.3 装配件清单 818
17.3.4 并排执行 820
17.4 本章小结 820
第18章 建立ASP.NET服务器控件 821
18.1 编写简单的控件 821
18.1.1 创建一个C#控件 822
18.1.2 在Visual Basic中的控件开发 825
18.1.3 组合控件 842
18.2 编写一个文本框控件 851
18.2.1 一个引发事件的控件 856
18.2.2 使用视图状态 863
18.2.3 类型和视图状态 869
18.2.4 关于对象属性和UI模板的更多内容 870
18.2.5 DataBind/OnDataBinding 879
18.3 其他问题 881
18.3.1 访问ASP.NET内部对象 881
18.3.2 编写自适应控件 883
18.3.3 控件属性 885
18.3.4 自定义控件构建器 886
18.4 用户控件 886
18.5 本章小结 887
第19章 显示Web服务 888
19.1 Web服务概况 889
19.2 构建ASP.NET Web服务 892
19.3 编写ASP.NET Web服务 897
19.3.1 内联 898
19.3.2 代码后置 898
19.3.3 WebService指令 900
19.3.4 应用程序代码 901
19.4 协议和数据类型 905
19.4.1 协议支持 905
19.4.2 数据类型 908
19.5 WebMethod和WebService属性 909
19.5.1 WebMethod 910
19.5.2 WebService 917
19.6.2 无状态与有状态 922
19.6.1 繁琐的模式 922
19.6 设计ASP.NET Web服务 922
19.6.3 高速缓存与静态 924
19.6.4 异步与同步 925
19.7 高级ASP.NETWeb服务 926
19.7.1 控制并整理XML 926
19.7.2 修改Web服务帮助页 929
19.7.3 SOAP头文件 930
19.8 本章小结 935
第20章 使用Web服务 937
20.1 发现和描述Web服务 938
20.1.1 通用的描述、发现和集成 938
20.1.2 Web服务描述语言 940
20.2 构建Web服务代理 946
20.2.1 Fibonacci代理 947
20.2.2 Visual Studio.NET 949
20.2.3 命令行工具(wsdl.exe) 954
20.3 使用代理类 960
20.3.1 控制超时 960
20.3.2 设置URL 961
20.3.3 代理Web服务器访问 962
20.3.4 维护状态 963
20.4 从Web站点转换为Web服务:屏幕清理 966
20.4.1 编写WSDL 967
20.4.2 构建代理 968
20.4.3 使用ScreenScrape代理 970
20.5 设计选择 971
20.5.1 处理异常 971
20.5.2 使用SOAP头文件 974
20.6 Web服务安全性 977
20.6.1 ASP.NET身份验证和授权 977
20.6.2 HTTPS加密和客户证书 983
20.7 高级主题 987
20.7.1 定制的身份验证和授权 987
20.7.2 SOAP Extensions 992
20.8 本章小结 1000
第21章 移动控件 1002
21.1 无线Web概要 1002
21.1.1 WAP 1003
21.1.2 WML 1005
21.1.3 设备的互用性 1009
21.2 移动控件介绍 1010
21.2.1 简单范例 1011
21.2.2 查看生成的代码 1013
21.2.3 移动控件表单 1017
21.2.4 控件引用 1018
21.3.1 设置样式 1044
21.3 移动控件高级主题 1044
21.3.2 使用设备的功能 1045
21.3.3 模板 1048
21.3.4 分页 1051
21.4 本章小结和未来展望 1052
21.4.1 移动Internet的未来发展 1052
21.4.2 移动控件的未来发展 1053
第22章 调试、跟踪和错误处理 1054
22.1 跟踪 1054
22.1.1 页面级跟踪 1055
22.1.2 写跟踪信息 1056
22.1.3 应用程序级跟踪 1059
22.2 错误处理 1060
22.2.1 结构化的异常处理 1061
22.2.2 ASP.NET错误处理 1067
22.2.3 向管理员通知错误 1069
22.3 调试 1070
22.3.1 SDK调试器 1071
22.3.2 在Visual Studio.NET中调试代码 1074
22.4 测试与性能 1075
22.4.1 实施 1076
22.4.2 抽样 1083
22.4.3 分析 1088
22.5 本章小结 1088
第23章 迁移和互用性 1089
23.1 迁移、集成还是重写 1089
23.1.1 迁移 1090
23.1.2 集成 1090
23.1.3 重写 1090
23.1.4 不做任何改动 1090
23.2.2 内部对象 1091
23.2 ASP.NET 1091
23.2.1 准备工作 1091
23.2.3 页面的改变 1099
23.3 语言变化 1100
23.3.1 Visual Basic.NET 1100
23.3.2 JScript.NET 1104
23.4 互用性 1104
23.4.1 跨边界 1105
23.4.2 在.NET中使用COM对象 1107
23.4.3 在COM中使用.NET组件 1111
23.4.4 API调用 1118
23.5 本章小结 1125
24.1 应用程序纵览 1126
24.1.1 IBuyAdventure.NET(IBA.NET) 1126
第24章 案例研究——IBuyAdventure.NET 1126
24.1.2 业务对象和装配件 1128
24.1.3 IBuyAdventure.NET数据库 1134
24.1.4 应用程序用户接口 1136
24.2 本章小结 1169
附录A 公用的系统名称空间 1170
附录B 提高性能的技巧 1174
附录C 参考及其他信息 1178
附录D 支持、勘误表和p2p.wrox.com 1181
D.1 在线论坛p2p.wrox.com 1181
D.1.1 如何为技术支持登记 1181
D.1.2 本系统如何提供最好的支持 1182
D.2 在线(www.wrox.com)查询勘误表 1183
D.3 添加勘误表:电子邮件支持 1183
D.4 联系方式 1184