第一篇 .NET Framework 4.0简介第1章 C#与.NET Framework简介 1
1.1 .NET Framework基础 1
1.1.1 什么是.NET Framework 1
1.1.2 公共语言运行库 1
1.1.3 .NET类库简介 2
1.1.4 .NET Framework的功能 2
1.2 C#编程语言简介 2
1.2.1 .NET编程语言介绍 2
1.2.2 C#程序设计语言 2
1.2.3 Hello World示例程序 3
1.3 小结 4
1.4 常见面试题 5
1.5 习题 5
第2章 Visual Studio 2010集成化开发环境 6
2.1 Visual Studio 2010 IDE介绍 6
2.1.1 解决方案资源管理器 7
2.1.2 文档窗口 8
2.1.3 错误列表和任务列表窗口 9
2.1.4 服务器资源管理器 11
2.1.5 对象浏览器 11
2.1.6 代码编辑器 11
2.2 Visual Studio 2010的功能特色 14
2.2.1 多目标支持 14
2.2.2 JavaScript代码智能提示和调试功能 15
2.2.3 内置的ASP.NET AJAX支持 16
2.2.4 Web站点与Web项目支持 17
2.2.5 Web设计器的改进 18
2.2.6 CSS功能的增强支持 19
2.2.7 嵌套的母版页支持 19
2.3 小结 21
2.4 常见面试题 22
2.5 习题 22
第3章 C# 4.0语言特色 23
3.1 局部变量的隐式声明 23
3.1.1 如何声明隐式局部变量 23
3.1.2 在foreach循环中使用隐式声明 24
3.1.3 隐式类型变量的限制 25
3.1.4 隐式类型的局部数组 26
3.1.5 隐式类型变量的作用 27
3.2 自动属性 28
3.2.1 理解自动属性 28
3.2.2 访问自动属性 29
3.2.3 自动属性的访问限制 30
3.2.4 自动属性和默认值 31
3.3 对象初始化器 32
3.3.1 理解对象初始化器语法 32
3.3.2 调用使用初始化语法的自定义构造函数 33
3.3.3 内部类型的初始化 34
3.3.4 理解集合初始化语法 35
3.4 扩展方法 36
3.4.1 定义扩展方法 36
3.4.2 调用扩展方法 38
3.4.3 扩展方法的使用范围 39
3.4.4 使用扩展方法扩展接口类型 40
3.5 匿名类型 43
3.5.1 理解匿名类型 43
3.5.2 匿名类型的内部呈现 44
3.5.3 匿名类型的相等语法 45
3.6 局部方法 46
3.6.1 理解局部方法 47
3.6.2 使用局部方法 48
3.7 Lambda表达式 49
3.7.1 理解Lambda表达式 49
3.7.2 剖析Lambda表达式 52
3.7.3 在Lambda中使用多语句块 52
3.7.4 多参数的Lambda表达式 53
3.8 LTNQ简介 54
3.8.1 什么是LINQ 55
3.8.2 LINQ示例 56
3.9 小结 59
3.10 常见面试题 60
3.11 习题 60
第二篇 ASP.NET开发基础 61
第4章 ASP.NET 4.0技术简介 61
4.1 ASP.NET技术介绍 61
4.1.1 ASP.NET 4.0的特点 61
4.1.2 一个简单的ASP.NET应用程序 62
4.2 ASP.NET程序结构 65
4.2.1 ASP.NET文件类型 66
4.2.2 ASP.NET目录介绍 66
4.3 ASP.NET配置 67
4.3.1 web.config配置文件 67
4.3.2 嵌套配置设置 68
4.3.3 在web.config中存储自定义设置 71
4.3.4 ASP.NET Web站点管理工具WAT 72
4.3.5 编程读取和写入配置设置 73
4.3.6 加密配置块 75
4.4 Web窗体基础 77
4.4.1 基于事件的编程模型 77
4.4.2 自动回发特性(AutoPostBack) 78
4.4.3 Web窗体处理流程 79
4.4.4 ASP.NET中的Page类 81
4.4.5 页面重定向 82
4.4.6 HTML编码 83
4.5 应用程序事件 83
4.5.1 Global.asax全局文件 84
4.5.2 基本应用程序事件 85
4.6 小结 86
4.7 常见面试题 87
4.8 习题 87
第5章 ASP.NET服务器控件 88
5.1 HTML服务器控件 89
5.1.1 HTML服务器控件简介 89
5.1.2 HtmlContainerControl和HtmlInputControl类 91
5.1.3 HTML控件类 92
5.1.4 编程创建HTML控件 93
5.1.5 处理服务器端事件 94
5.2 Web服务器控件 96
5.2.1 基本Web服务器控件介绍 96
5.2.2 常用控件的属性介绍 99
5.2.3 列表控件介绍 102
5.2.4 可选择的列表控件 104
5.2.5 BulletedList列表控件 108
5.2.6 表格式控件 109
5.3 验证控件 111
5.3.1 验证控件介绍 111
5.3.2 验证控件的基类BaseValidator 112
5.3.3 使用RequiredFieldValidator强制用户输入 113
5.3.4 使用RangeValidator控件指定输入范围 113
5.3.5 使用CompareValidator比较值 114
5.3.6 RegularExpressionValidator正则表达式验证 114
5.3.7 CustomValidator自定义验证 115
5.3.8 使用ValidationSummary显示验证信息 116
5.3.9 使用ValidationGroup属性 117
5.3.10 编程使用验证控件 118
5.4 Calendar日期控件 119
5.4.1 日期控件简介 119
5.4.2 日期控件格式化显示 121
5.4.3 限制日期 121
5.4.4 编程控制日期选择 123
5.5 广告轮询控件AdRotator 123
5.5.1 广告文件设置 123
5.5.2 AdRotator类介绍 125
5.6 MultiView和Wizard控件 126
5.6.1 MultiView多视图控件 126
5.6.2 Wizard向导控件 128
5.6.3 WizardStep向导步骤属性 129
5.6.4 Wizard事件 130
5.7 小结 132
5.8 常见面试题 132
5.9 习题 133
第6章 ASP.NET应用程序状态管理 134
6.1 ASP.NET状态管理简介 134
6.2 ViewState视图状态 135
6.2.1 视图状态原理 135
6.2.2 在视图状态中存储对象 137
6.2.3 视图状态的安全 139
6.3 跨页传递信息 140
6.3.1 查询字符串 140
6.3.2 跨页回送技术 143
6.4 使用Cookie保存会话信息 146
6.4.1 Cookie技术简介 146
6.4.2 使用Cookie保存信息 147
6.5 会话状态 148
6.5.1 会话状态简介 148
6.5.2 使用会话状态 149
6.5.3 配置会话状态 151
6.6 应用程序状态 157
6.7 小结 158
6.8 常见面试题 158
6.9 习题 158
第7章 异常处理和日志追踪 160
7.1 ASP.NET应用程序异常处理 160
7.1.1 异常处理基础 161
7.1.2 Exception类 162
7.1.3 捕捉异常 164
7.1.4 异常的嵌套 165
7.1.5 自定义异常 166
7.1.6 finally语句块 168
7.2 记录异常 169
7.2.1 查看Windows事件日志 169
7.2.2 写入事件日志 171
7.2.3 自定义日志 172
7.2.4 编程查看事件日志 173
7.3 错误页面 176
7.3.1 错误模式 176
7.3.2 自定义错误页面 177
7.4 页面追踪 177
7.4.1 启用页面追踪 178
7.4.2 页面追踪信息 178
7.4.3 写入页面追踪信息 181
7.4.4 应用程序页面追踪信息 182
7.5 小结 184
7.6 常见面试题 184
7.7 习题 184
第三篇 构建ASP.NET应用程序 185
第8章 ASP.NET中的样式、主题和母版页 185
8.1 在ASP.NET中应用CSS样式 185
8.1.1 创建样式 185
8.1.2 应用样式 189
8.2 主题 190
8.2.1 创建主题 190
8.2.2 创建命名皮肤 192
8.2.3 处理主题冲突 193
8.2.4 为整个网站应用主题 193
8.2.5 添加CSS样式 194
8.2.6 动态应用主题 194
8.3 母版页 195
8.3.1 创建母版页 195
8.3.2 默认内容 199
8.3.3 母版页和相对路径 200
8.3.4 在web.config中配置母版页 201
8.3.5 修改母版页 202
8.3.6 动态加载母版页 204
8.3.7 母版页的嵌套 205
8.4 小结 208
8.5 常见面试题 208
8.6 习题 208
第9章 ASP.NET中的站点导航技术 209
9.1 站点地图 209
9.1.1 定义站点地图文件 209
9.1.2 使用SiteMapPath控件 211
9.1.3 SiteMap类 214
9.1.4 URL地址映射 215
9.2 TreeView控件 217
9.2.1 使用TreeView控件 217
9.2.2 以编程的方式添加节点 220
9.2.3 使用TreeView控件导航 220
9.2.4 绑定到XML文件 223
9.2.5 按需加载节点 225
9.2.6 带复选框的TreeView控件 226
9.3 Menu控件 228
9.3.1 使用Menu控件 228
9.3.2 以编程的方式添加菜单项 230
9.3.3 使用Menu控件导航 231
9.3.4 一个站点地图示例 232
9.3.5 绑定到XML文件 235
9.3.6 Menu控件样式 237
9.3.7 为Menu控件应用模板 240
9.4 小结 240
9.5 常见面试题 241
9.6 习题 241
第10章 用户控件和绘图 242
10.1 用户控件 242
10.1.1 创建用户控件 242
10.1.2 使用用户控件 245
10.1.3 在web.config中注册用户控件 246
10.1.4 用户控件中公开属性 247
10.1.5 用户控件事件 248
10.1.6 动态加载用户控件 249
10.2 动态绘图 251
10.2.1 基本绘图 252
10.2.2 绘制一个自定义的图片 253
10.2.3 在Web页面放置自定义图片 255
10.2.4 图片格式和质量 257
10.2.5 一个Web绘图示例程序 260
10.3 小结 262
10.4 常见面试题 262
10.5 习题 263
第11章 ASP.NET AJAX开发技术 264
11.1 ASP.NET AJAX基础 264
11.1.1 AJAX技术简介 264
11.1.2 ASP.NET AJAX架构 267
11.2 ASP.NET AJAX服务器端扩展 268
11.2.1 声明ScriptManager控件 268
11.2.2 使用ScriptManager分发自定义脚本 269
11.2.3 在ScriptManager中注册Web服务 270
11.2.4 处理ScriptManager中的异常 272
11.2.5 编程控制ScriptManager控件 275
11.2.6 使用UpdatePanel控件 277
11.2.7 使用多个UpdatePanel控件 279
11.2.8 编程控制UpdatePanel控件 282
11.2.9 使用UpdateProgress控件 283
11.2.10 取消异步回送 285
11.2.11 使用Timer控件更新UpdatePanel 286
11.3 ASP.NET AJAX服务器端控件扩展 288
11.3.1 安装ASP.NET AJAX Control Toolkit 288
11.3.2 使用ASP.NET AJAX扩展控件 289
11.4 小结 290
11.5 常见面试题 291
11.6 习题 291
第12章 Web部件技术 292
12.1 Web部件基础 292
12.1.1 一个WebParts示例程序 293
12.1.2 定制WebPartZone控件 299
12.1.3 动态控制显示模式 300
12.1.4 动态编辑WebPart 303
12.2 Web部件的个性化设置 304
12.2.1 基本个性化设置 304
12.2.2 个性化范围设置 306
12.2.3 个性化WebPart属性 310
12.3 小结 311
12.4 常见面试题 311
12.5 习题 311
第四篇 数据访问技术 313
第13章 ADO.NET数据访问技术 313
13.1 ADO.NET基础 313
13.1.1 ADO.NET架构 313
13.1.2 ADO.NET数据提供者 314
13.2 连接数据库 315
13.2.1 SqlConnection数据库连接类 315
13.2.2 使用SqlConnectionStringBuilder连接字符串 317
13.2.3 关闭和释放连接 318
13.2.4 在web.config配置文件中保存连接字符串 320
13.2.5 连接池技术 322
13.3 与数据库交互 325
13.3.1 使用SqlCommand操作数据库 325
13.3.2 为SqlCommand传递参数 327
13.3.3 使用SqlCommand执行存储过程 330
13.3.4 使用事务 332
13.3.5 使用DataAdapter对象 335
13.4 管理内存数据 337
13.4.1 了解数据集 337
13.4.2 使用DataTable实现内存表 338
13.4.3 使用DataSet管理数据 340
13.4.4 使用Reader获取只读数据 345
13.4.5 比较DataSet和DataReader 348
13.5 小结 348
13.6 常见面试题 348
13.7 习题 349
第14章 ASP.NET数据绑定技术 350
14.1 绑定技术基础 350
14.1.1 单值绑定 350
14.1.2 重复值绑定 352
14.2 数据源控件 357
14.2.1 数据绑定的页面生存周期 358
14.2.2 SqlDataSource控件 358
14.2.3 使用参数过滤数据 361
14.2.4 更新数据和并发处理 363
14.2.5 编程执行SqlDataSource命令 366
14.2.6 ObjectDataSource控件简介 369
14.2.7 创建业务对象类 370
14.2.8 在ObjectDataSource中使用参数 374
14.2.9 使用ObjectDataSource更新数据 376
14.2.10 LinqDataSource数据源简介 378
14.2.11 使用LinqDataSource更新数据 381
14.3 小结 381
14.4 常见面试题 382
14.5 习题 382
第15章 数据绑定控件 383
15.1 GridView控件 383
15.1.1 使用GridView控件 383
15.1.2 定制GridView控件的列 385
15.1.3 使用模板列 387
15.1.4 GridView控件的选择功能 390
15.1.5 使用GridView控件创建主从表 392
15.1.6 GridView控件事件 392
15.1.7 编程格式化特定行列值 393
15.1.8 为GridView控件添加统计信息 395
15.1.9 实现分页、排序效果 397
15.2 ListView和DataPager控件 398
15.2.1 ListView控件简介 398
15.2.2 ListView控件的分组布局 402
15.2.3 使用DataPager分页 404
15.3 DetailsView和FormView控件 405
15.3.1 DetailsView控件简介 406
15.3.2 定义DetailsView字段 408
15.3.3 在DetailsView中显示图像 410
15.3.4 编程操作DetailsView 414
15.3.5 FormView控件简介 414
15.4 小结 415
15.5 常见面试题 416
15.6 习题 416
第16章 缓存技术 417
16.1 理解ASP.NET缓存技术 417
16.2 输出缓存 418
16.2.1 定义输出缓存 418
16.2.2 查询字符串缓存 418
16.2.3 自定义缓存 419
16.2.4 用户控件缓存 420
16.2.5 使用缓存配置 421
16.2.6 使用HttpCachePolicy类控制缓存 422
16.3 缓存数据 422
16.3.1 添加缓存项 423
16.3.2 指定缓存依赖 425
16.3.3 缓存优先级 425
16.3.4 使用缓存删除通知 426
16.3.5 数据源控件缓存 429
16.4 缓存依赖 430
16.4.1 文件和缓存项依赖 430
16.4.2 聚合依赖 431
16.4.3 配置SQL缓存依赖 432
16.4.4 使用SQL缓存依赖 433
16.5 小结 434
16.6 常见面试题 435
16.7 习题 435
第17章 LINQ技术 436
17.1 LINQ基础 436
17.1.1 LINQ简介 436
17.1.2 延迟执行 438
17.1.3 LINQ表达式简介 438
17.2 LINQ to DataSet操作内存表 445
17.2.1 LINQ to DataSet简介 445
17.2.2 类型化DataSet 448
17.3 LINQ to SQL操作数据库 450
17.3.1 数据实体类 450
17.3.2 DataContext类介绍 451
17.3.3 在ASP.NET中应用LINQ to SQL 454
17.3.4 自动生成数据实体类 456
17.3.5 生成存储过程方法 457
17.3.6 提交更改 458
17.4 小结 461
17.5 常见面试题 461
17.6 习题 462
第五篇 ASP.NET应用程序安全 463
第18章 成员和角色管理技术 463
18.1 ASP.NET Membership API简介 463
18.2 使用Membership API 464
18.2.1 配置表单身份验证 465
18.2.2 创建Membership数据存储 466
18.2.3 配置MembershipProvider和数据库连接 468
18.2.4 创建和验证用户 470
18.3 使用登录控件 471
18.3.1 Login控件 472
18.3.2 LoginStatus控件 476
18.3.3 LoginView控件 476
18.3.4 PasswordRecovery控件 476
18.3.5 ChangePassword控件 478
18.3.6 CreateUserWizard控件 478
18.4 使用Membership类 481
18.4.1 获取用户列表 482
18.4.2 创建、编辑和删除用户 483
18.4.3 验证用户 485
18.5 角色和授权 486
18.5.1 URL授权 486
18.5.2 文件和文件夹访问授权 487
18.5.3 使用角色管理器 488
18.5.4 使用Roles API配置基于角色的授权 489
18.6 小结 491
18.7 常见面试题 491
18.8 习题 492
第六篇 ASP.NET应用程序实战 493
第19章 ASP.NET求职系统 493
19.1 系统总体设计 493
19.1.1 系统功能介绍 493
19.1.2 系统架构简介 495
19.2 数据库设计 496
19.2.1 数据表结构 497
19.2.2 数据表关系 500
19.3 系统核心层设计 500
19.3.1 ASP.NET AJAX客户端脚本扩展 501
19.3.2 web.config系统配置 506
19.3.3 数据访问类的设计 510
19.3.4 业务对象类设计 517
19.4 表现层技术分析 520
19.4.1 ASP.NET AJAX技术的应用 521
19.4.2 基于AJAX的导航栏 526
19.4.3 母版页 528
19.4.4 主题和皮肤 529
19.4.5 用户控件 530
19.4.6 WebParts控件的应用 534
19.4.7 个性化设置 536
19.5 求职者功能设计 539
19.5.1 发布简历 540
19.5.2 搜索工作职位 545
19.5.3 收藏工作职位 549
19.6 企业雇主功能设计 551
19.6.1 登记公司信息 551
19.6.2 查看和添加工作职位 554
19.6.3 添加/编辑工作职位 556
19.7 小结 559