第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页面的工作原理 4
1.3.1 提供动态Web页面内容的两种方法 5
1.3.2 技术概述 7
1.4 ASP.NET概述 11
1.6 ASP、ASP.NET以及C#之间的区别 12
1.5 ASP.NET与ASP的区别 12
1.7 安装过程 13
1.7.1 安装IIS 5.x Web服务器 13
1.7.2 测试安装 17
1.7.3 管理Web服务器的目录 21
1.7.4 安装ASP.NET的准备工作 30
1.7.5 安装ASP.NET和.NET Framework SDK 31
1.8 ASP.NET测试示例 34
1.9.1 没有找到程序、没有显示ASP.NET的结果或浏览器试图下载文件 37
1.9 排除ASP.NET故障 37
1.9.2 不能显示页面:HTTP错误403 38
1.9.3 找不到页面:HTTP错误404 39
1.9.4 脱机时Web页面无效 41
1.9.5 得到了一个空页面 41
1.9.6 页面上显示了消息,但没有时间 42
1.9.7 得到引述服务器错误的错误语句 42
1.9.8 其他问题 42
1.10 小结 43
2.1 .NET概述 44
第2章 ASP.NET页面的剖析 44
2.1.1 从用户代码到机器代码 45
2.1.2 公共中间语言介绍 46
2.1.3 无处不在的对象 46
2.1.4 .NET的基类 47
2.2 ASP.NET的工作原理 49
2.2.1 将ASP.NET文件以.aspx扩展名保存 49
2.2.2 在Web页面中插入ASP.NET代码 50
2.3 ASP.NET应用示例 58
2.4 小结 64
第3章 窗体和HTML服务器控件 65
3.1 现实世界中的窗体 65
3.2 Web页面、HTML窗体及Web窗体 66
3.3 简单的Web理论 67
3.3.1 HTTP协议 68
3.3.2 ASP.NET在.NET Framework中的位置 69
3.4 HTML窗体 70
3.5 <form>标记在ASP.NET中的工作方式 73
3.7 练习 97
3.6 小结 97
第4章 在C#中保存信息 99
4.1 变量 99
4.2 数据类型 104
4.2.1 数值类型 104
4.2.2 字符数据类型 106
4.2.3 布尔类型 109
4.2.4 对象类型 110
4.2.5 处理日期数据 110
4.2.6 命名变量 111
4.3.1 赋值运算符 113
4.3 运算符 113
4.3.2 算术运算符 114
4.3.3 连接字符串 116
4.4 数据类型之间的转换 117
4.4.1 隐式转换 118
4.4.2 显式转换 119
4.4.3 无效的强制类型转换 121
4.4.4 数据转换 121
4.5 常量 127
4.6.1 数组 128
4.6 结构化的数据类型 128
4.6.2 结构 134
4.6.3 枚举 137
4.7 小结 138
4.8 练习 138
第5章 XML 140
5.1 XML的格式 140
5.1.1 标记与元素 141
5.2.1 SGML 142
5.1.2 属性 142
5.2 标记语言示例 142
5.2.2 HTML 143
5.3 XML的由来 144
5.4 创建XML文档 145
5.5 其他功能 150
5.6 确定XML的样式 158
5.6.1 使用样式表的原因 159
5.6.2 层叠样式表 159
5.8 练习 164
5.7 小结 164
5.6.3 在ASP.NET中使用XML 164
第6章 控制结构与过程编程 167
6.1 控制结构 167
6.1.1 分支结构 167
6.1.2 循环结构 168
6.1.3 函数概述 168
6.1.4 使用控制结构的场合 168
6.2 分支结构详述 169
6.2.2 使用if的逻辑比较 170
6.2.1 比较运算符 170
6.2.3 条件或三元运算符 175
6.2.4 比较字符串 176
6.2.5 使用switch…case的条件语句 182
6.3 循环结构详述 188
6.3.1 fof循环 188
6.3.2 while循环 193
6.3.3 do…while循环 196
6.3.5 break和continue语句 197
6.3.4 foreach循环 197
6.4 函数详述 198
6.4.1 定义函数 198
6.4.2 变量的作用域 204
6.5 小结 210
6.6 练习 210
第7章 事件驱动编程与回送 211
7.1 事件概述 211
7.2 事件驱动编程 212
7.3 ASP.NET的事件 213
7.4 HTML中的事件 216
7.5 ASP.NET中的服务器控件事件 218
7.6 事件驱动编程与回送 223
7.7 改变在Web上编程的方法 227
7.8 小结 233
7.9 练习 233
第8章 对象入门 235
8.1 组织代码 235
8.2 对象概述 236
8.2.1 抽象化——给真实世界建立模型 238
8.2.2 封装——黑盒 239
8.3 使用对象 240
8.3.1 对象来自何处 240
8.3.2 创建对象 244
8.3.3 使用方法和属性 245
8.3.4 利用构造函数初始化对象 254
8.3.5 重载方法 258
8.3.6 运算符重载 266
8.4 小结 270
8.5 练习 271
第9章 共享成员和类关系 272
9.1 共享成员 272
9.2 类关系 279
9.2.1 关联——“Uses a” 280
9.2.2 包含——“has a” 287
9.2.3 继承——“is a” 291
9.2.4 继承的局限性 299
9.3 高级的继承概念 299
9.3.1 虚拟函数 301
9.3.2 抽象类和接口 303
9.3.3 在对象类型之间转换 305
9.3.4 隐式转换 305
9.3.5 显式转换 307
9.3.6 装箱和拆箱 307
9.3.7 用户定义的转换 309
9.4 小结 311
9.5 练习 312
10.1 命名空间 314
第10章 ASP.NET中的对象 314
10.2 Page类 317
10.3 ASP.NET核心对象 322
10.3.1 Request对象 323
10.3.2 Response对象 327
10.3.3 Server对象 331
10.4 状态处理 338
10.4.1 会话状态 342
10.4.2 cookie 347
10.6 练习 353
10.5 小结 353
第11章 对象和结构化的数据 355
11.1 集合 355
11.1.1 不同类型的集合 355
11.1.2 作为集合的数组 357
11.2 更多地利用集合 365
11.2.1 ArrayList 366
11.2.2 Hashtable 371
11.2.3 SortedList 375
11.3 小结 378
11.4 练习 379
第12章 从数据源中读取数据 380
12.1 理解现代的数据库 380
12.2 ADO.NET 383
12.2.1 .NET数据提供者 384
12.2.2 ADO.NET对象 385
12.2.3 Connection对象 386
12.2.4 Command对象和DataReader对象 392
12.2.5 DataSet和DataTable对象 400
12.2.6 Microsoft SQL Server和ADO.NET 403
12.3 捕获错误 406
12.4 小结 409
12.5 练习 410
第13章 操纵数据源 411
13.1 处理数据源 411
13.1.1 断开连接的数据 411
13.1.2 更新数据的方法 412
13.1.3 DataSet和DataTable对象 412
13.1.4 DataRow对象 414
13.1.5 更新初始数据源 421
13.2 使用SQL 432
13.1.6 更新数据——小结 432
13.2.1 采用DataAdapter命令 433
13.2.2 直接的SQL命令 435
13.2.3 使用SQL——小结 437
13.3 XML 438
13.3.1 XML转换为字符串 441
13.3.2 DataSet中的XML 441
13.5 小结 444
13.4 ADO.NET的相关内容 444
13.6 练习 445
第14章 ASP.NET服务器控件 446
14.1 其他类型的控件 447
14.1.1 HTML服务器控件 447
14.1.2 用户控件 449
14.2 ASP.NET服务器控件 449
14.2.2 自动探测浏览器 450
14.2.3 属性 450
14.2.1 多功能对象模型 450
14.2.4 事件 451
14.3 页面的生存期 454
14.3.1 Page_Load 454
14.3.2 事件处理 455
14.3.3 Page_Unload 455
14.3.4 控件族 463
14.4 小结 499
14.5 练习 500
15.1 封装 501
第15章 ASP.NET的可复用代码 501
15.2 组件 502
15.2.1 使用组件的原因 503
15.2.2 将组件的理论应用到应用程序 503
15.3 用户控件 504
15.4 后台编码 517
15.5 继承 524
15.6 小结 525
15.7 练习 526
16.1 三层应用程序设计 527
第16章 .NET程序集和定制控件 527
16.2 ASP.NET应用程序设计 528
16.3 .NET程序集 529
16.3.1 编译概述 531
16.3.2 在ASP.NET页面中访问组件 534
16.3.3 XCopy部署 537
16.3.4 访问其他地方的程序集 537
16.3.5 用其他语言编写代码 538
16.3.6 数据访问组件 541
16.4 定制服务器控件 549
16.5 把它们组合在一起 554
16.6 小结 560
16.7 练习 560
第17章 调试和错误处理 561
17.1 几种好的习惯 561
17.2 好的编码方式 562
17.2.1 错误的来源 564
17.2.2 语法错误 564
17.2.3 逻辑错误 566
17.3 查找错误 573
17.2.4 系统错误 573
17.3.1 Debug模式 575
17.3.2 跟踪 576
17.4 处理错误 582
17.4.1 结构化的错误处理 583
17.4.2 以编程方式处理错误 594
17.5 通知和日志 596
17.5.1 写入事件日志 599
17.5.2 给站点管理员发送邮件 602
17.6 小结 604
第18章 Web服务 605
18.1 Web服务概述 606
18.2 HTTP、XML和Web服务 609
18.3 建立ASP.NET Web服务 613
18.3.1 处理指令 614
18.3.2 命名空间 614
18.3.3 公共类 614
18.3.4 Web方法 614
18.3.5 测试Web服务 617
18.3.6 使用Web服务 619
18.4 使用Web服务 624
18.5 Web服务发现 628
18.6 Web服务的安全性 629
18.6.1 用户名/密码组合或注册码 629
18.6.2 安全套接字层(SSL) 631
18.6.3 IP地址约束 631
18.7 其他考虑 631
18.7.2 异步方法调用 632
18.7.1 网络连接 632
18.7.3 服务的盗用 633
18.7.4 供应商的偿付能力 633
18.7.5 相互依赖的场合 633
18.8 小结 633
18.9 练习 634
第19章 配置和优化 635
19.1 配置概述 635
19.2.1 一般配置 639
19.2 配置文件的结构 639
19.2.2 页面配置 640
19.2.3 应用程序设置 641
19.2.4 定制错误 641
19.3 性能优化 643
19.3.1 高速缓存 643
19.3.2 跟踪 646
19.4 监视ASP.NET过程 650
19.5 提示和技巧 652
19.6 小结 653
第20章 ASP.NET的安全性 654
20.1 安全性的概念 654
20.2 身份验证 655
20.2.1 实现基本的身份验证 655
20.2.2 完整的Windows身份验证 664
20.2.3 实现基于表单的身份验证 667
20.2.4 使用数据库的基于表单的身份验证 675
20.3 使用SSL进行加密 679
20.4 小结 680