第1章 ASP.NET基础 1
1.1 认识网页和网站 2
1.1.1 网页基础知识 2
1.1.2 网站 2
1.2 Web技术简介 3
1.2.1 本地计算机和远程服务器 3
1.2.2 Web应用程序的工作原理 4
1.2.3 常用的Web开发技术 4
1.2.4 ASP.NET在Web开发中的作用 6
1.3 Web标准 6
1.4 ASP.NET基础 7
1.4.1 ASP.NET简介 7
1.4.2 全新的.NETFramework4.5 8
1.4.3 公共语言运行时 8
1.5 3种必备技术 9
1.5.1 HTML技术基础 9
1.5.2 CSS技术基础 13
1.5.3 JavaScript技术基础 14
1.6 技术解惑 15
1.6.1 ASP.NET技术和新兴技术HTML 5的结合 15
1.6.2 学好ASP.NET的建议 15
第2章 搭建开发环境 16
2.1 配置ASP.NET环境 17
2.1.1 安装IIS 17
2.1.2 IIS的配置 19
2.2 Visual Studio 2012概述 19
2.2.1 VisualStudio2012基础 20
2.2.2 Visual Studio 2012的新功能 20
2.2.3 安装VisualStudio2012 22
2.2.4 设置默认环境 23
2.2.5 新建项目 24
2.2.6 解决方案资源管理器 26
2.2.7 文本编辑器 27
2.2.8 生成与查错 30
2.2.9 强大的工具箱 31
2.3 编译和部署ASP.NET程序 32
2.3.1 编译、运行ASP.NET程序 32
2.3.2 部署ASP.NET程序 32
2.4 第一个ASP.NET程序 33
第3章 C#基础 36
3.1 C#概述 37
3.1.1 C#的推出背景 37
3.1.2 C#的特点 37
3.2 .NETFramework框架简介 38
3.2.1 .NET Framework简介 38
3.2.2 几个常见的概念 40
3.2.3 程序编译 41
3.3 C#的基本语法 43
3.4 变量 44
3.4.1 C#的类型 44
3.4.2 给变量命名 47
3.5 常量 47
3.6 类型转换 48
3.6.1 隐式转换 48
3.6.2 显式转换 48
3.6.3 装箱与拆箱 49
3.7 其他数据类型 51
3.7.1 枚举 51
3.7.2 结构 52
3.7.3 数组 52
3.8 基本.NET框架类 53
3.8.1 Console类 53
3.8.2 Convert类 53
3.8.3 Math类 53
3.9 表达式 54
3.10 运算符 54
3.11 语句和流程控制 58
3.11.1 选择语句 59
3.11.2 循环语句 60
3.11.3 跳转语句 63
3.12 技术解惑 64
3.12.1 代码缩进的意义 65
3.12.2 变量是否必须初始化 65
3.12.3 常量和变量的区别 65
3.12.4 为什么使用类型转换 66
3.12.5 避免分配额外的内存空间 66
3.12.6 在编程中要确保尽量少的装箱 67
3.12.7 使用语句的几种限制 68
3.12.8 带/不带表达式的return语句 68
第4章 面向对象编程 70
4.1 面向对象编程基础 71
4.1.1 OOP思想介绍 71
4.1.2 C#的面向对象编程 71
4.2 函数是神秘的箱子 72
4.2.1 定义和使用函数 72
4.2.2 函数参数详解 73
4.3 类 75
4.3.1 定义类 75
4.3.2 类的成员 75
4.4 对象 76
4.4.1 创建对象 76
4.4.2 使用对象 76
4.5 属性 78
4.6 命名空间 80
4.6.1 编译单元 80
4.6.2 完全限定名标识 81
4.6.3 using指令 82
4.7 灵活自由的集合 83
4.7.1 C#集合概述 83
4.7.2 使用集合 84
4.8 继承 84
4.8.1 类的层次结构 84
4.8.2 声明继承 85
4.8.3 继承规则 85
4.9 多态 86
4.9.1 虚方法和虚方法重写 86
4.9.2 重写方法的特点 87
4.10 接口 87
4.10.1 定义接口 88
4.10.2 接口的实现和继承 88
4.11 委托 88
4.11.1 声明委托 89
4.11.2 委托链 89
4.12 事件 89
4.12.1 声明事件 90
4.12.2 使用事件 90
4.13 技术解惑 91
4.13.1 面向对象的作用 91
4.13.2 一个函数只做一件事 91
4.13.3 何时使用静态函数,何时使用实例函数 92
4.13.4 引用参数和输出参数的关系和区别 92
4.13.5 不要在密封类型中声明虚拟成员 92
4.13.6 不要在密封类型中声明受保护的成员 93
4.13.7 类和对象之间的关系和区别 93
第5章 ASP.NET的页面结构 95
5.1 一个简单的ASP.NET文件 96
5.1.1 简单ASP.NET文件实例 96
5.1.2 ASP.NET页面元素介绍 97
5.2 ASP.NET页面指令 98
5.2.1 Page指令 98
5.2.2 @Master指令 100
5.2.3 @Control指令 101
5.2.4 @Import指令 101
5.2.5 @Implements指令 102
5.2.6 @Assembly指令 102
5.2.7 @PreviousPageType指令 103
5.2.8 @MasterType指令 103
5.2.9 @OutputCache指令 103
5.2.10 @Reference指令 104
5.2.1 1@Register指令 105
5.3 技术解惑 106
5.3.1 两种布局ASP.NET页面的方式 106
5.3.2 @Register指令的真正用途 106
第6章 内置对象和应用程序配置 108
6.1 ASP.NET内置对象介绍 109
6.1.1 Response对象 109
6.1.2 Request对象 111
6.1.3 Application对象 112
6.1.4 Session对象 114
6.1.5 Server对象 117
6.1.6 Cookie对象 118
6.1.7 Cache对象 120
6.1.8 Global.asax文件 120
6.2 配置ASP.NET应用程序 121
6.2.1 配置文件结构 122
6.2.2 配置文件的继承层次结构 122
6.2.3 使用位置和路径 123
6.2.4 ASP.NET配置元素 124
6.2.5 自定义应用程序设置 126
6.3 预编译和编译 127
6.3.1 网站预编译 127
6.3.2 网站编译 127
6.4 技术解惑 128
6.4.1 对内置对象的总结 128
6.4.2 Session对象和Cookie对象的比较 128
6.4.3 Application对象和Session对象的区别 129
6.4.4 对Application、Session、Cookie、ViewState和Cache的选择 129
第7章 HTML服务器控件和Web服务器控件 130
7.1 HTML服务器控件 131
7.1.1 HTML服务器控件基础 131
7.1.2 HTMLButton控件 131
7.1.3 HTMLInput控件 132
7.2 Web服务器控件 135
7.3 标准控件 136
7.3.1 Label控件 136
7.3.2 TextBox控件 137
7.3.3 CheckBox和CheckBoxList控件 138
7.3.4 RadioButton和RadioButtonList控件 140
7.3.5 Image控件 140
7.3.6 Table控件 140
7.3.7 按钮控件 141
7.3.8 ListBox控件 144
7.3.9 CheckBoxList控件 144
7.3.10 DropDownList控件 144
7.3.11 DataList控件 148
7.3.12 Wizard控件和WizardStep控件 151
7.3.13 AdRotator控件 156
7.3.14 Calendar控件 158
7.3.15 HiddenField控件 161
7.3.16 FileUpload控件 162
7.3.17 ImageMap控件 164
7.4 技术解惑 165
7.4.1 总结用户登录系统的设计流程 165
7.4.2 服务器控件与HTML控件的区别 166
7.4.3 什么时候使用服务器控件,什么时候使用HTML控件 166
第8章 数据控件 167
8.1 数据绑定控件 168
8.1.1 GridView控件 168
8.1.2 DetailsView控件 169
8.1.3 FormView控件 170
8.1.4 Repeater控件 171
8.1.5 DataList控件 172
8.1.6 DetailsView控件 173
8.1.7 FormView控件 175
8.1.8 数据绑定控件演练 178
8.2 数据源控件 179
8.2.1 SqlDataSource控件 180
8.2.2 AccessDataSource控件 188
8.2.3 XmlDataSource控件 190
8.2.4 SiteMapDataSource控件 192
8.2.5 ObjectDataSource控件 195
8.2.6 LinkButton控件 200
8.3 技术解惑 200
8.3.1 GridView控件的优缺点分析 200
8.3.2 ListView控件的优缺点分析 201
8.3.3 GridView控件与DataGrid控件的对比 201
第9章 验证控件、用户控件和自定义控件 202
9.1 验证控件 203
9.1.1 RequiredFieldValidator控件 203
9.1.2 RangeValidator控件 204
9.1.3 CompareValidator控件 205
9.1.4 RegularExpression Validator控件 206
9.1.5 CustomValidator控件 207
9.1.6 ValidationSummary控件 209
9.2 用户控件 210
9.2.1 入门用户控件 211
9.2.2 创建一个简单的用户控件 211
9.2.3 属性和事件 212
9.2.4 动态加载 214
9.2.5 片段缓存处理 215
9.3 自定义控件 215
9.3.1 一个简单的自定义Web用户控件 215
9.3.2 子控件 219
9.3.3 复合控件 219
9.4 技术解惑 221
9.4.1 为什么推出验证控件 221
9.4.2 验证时检查数据的两种时机 221
9.4.3 提高网站健壮性的两个原则 221
第10章 ASP.NET新增功能 223
10.1 更加简洁的web.config 224
10.2 新增的3个属性 224
10.2.1 ViewStateMode属性 224
10.2.2 ClientIDMode属性 225
10.2.3 EnablePersistedSelection属性 227
10.3 增强的DynamicData控件 228
10.4 并行运算 230
10.5 ADO.NET Data Services 1.5的新增功能 232
10.6 ADO.NET Entity Framework的新增功能 233
10.7 技术解惑 235
10.7.1 QueryExtender控件的用法 235
10.7.2 并行运算中的多线程 236
10.7.3 并行循环的中断和跳出 237
10.7.4 在并行循环中为数组/集合添加项 237
10.7.5 对SEO的改进 239
第11章 ADO.NET详解 242
11.1 ADO.NET简介 243
11.1.1 ADO.NET的作用 243
11.1.2 ADO.NET结构 243
11.2 ADO.NET对象 244
11.2.1 ADO.NET的使用环境 245
11.2.2 使用ADO.NET对象实现数据库访问 249
11.3 ODBC.NET Data Provider 256
11.3.1 ODBC.NETDataProvider概述 257
11.3.2 连接ODBC数据源 257
11.4 DataSet对象 258
11.4.1 DataSet概述 258
11.4.2 使用DataSet 262
11.5 XML 263
11.5.1 XML概述 263
11.5.2 文档类型定义 264
11.5.3 创建XML文件 265
11.5.4 DataSet读取XML数据 268
11.5.5 XML填充DataSet 269
11.6 技术解惑 269
11.6.1 和ADO以及其他数据访问组件相比,ADO.NET的优势是什么 269
11.6.2 如何选择DataReader/DataSet 270
11.6.3 在数据库中的E-R图 271
11.6.4 三层架构 271
11.6.5 ADO.NET起了一个接口的作用 272
第12章 使用母版页、样式、主题和皮肤 273
12.1 母版页详解 274
12.1.1 何谓母版页 274
12.1.2 创建母版页 275
12.1.3 创建内容页 277
12.1.4 母版页的嵌套 279
12.1.5 动态访问母版页 280
12.1.6 母版页的应用范围 281
12.1.7 缓存母版页 282
12.2 主题、样式和皮肤 282
12.2.1 主题概述 282
12.2.2 应用样式 284
12.2.3 应用主题和皮肤 286
12.2.4 如何创建主题 288
12.2.5 应用主题 289
12.3 技术解惑 293
12.3.1 母版页和普通Web页的区别 293
12.3.2 文件的存储和组织方式 293
第13章 个性化设置 295
13.1 个性化设置基础 296
13.2 实现个性化用户配置 303
13.2.1 匿名用户个性化用户配置 303
13.2.2 注册用户个性化用户配置 305
13.3 技术解惑 308
13.3.1 Web.Config文件中一段完整的<profile>配置代码 308
13.3.2 Profile对象与Session对象的对比 308
第14章 用WebPart构建门户 309
14.1 WebPart概述 310
14.1.1 Portal框架简介 310
14.1.2 WebPart的基本要素 311
14.2 WebPart的基本控件 311
14.2.1 WebPartManager控件 311
14.2.2 WebPartZone控件 312
14.2.3 CatalogZone控件 312
14.2.4 EditorZone控件 312
14.3 配置WebPart环境 313
14.4 创建、管理WebPart页面 315
14.4.1 使用WebPartZone控件创建WebPart页面 315
14.4.2 使用CatalogZone控件创建WebPart页面 317
14.4.3 使用EditorZone控件创建WebPart页面 317
14.4.4 管理WebPart页面 320
14.4.5 WebPart页面间的通信 321
14.4.6 自定义WebPart 321
14.5 技术解惑 323
14.5.1 实际应用中使用WebPart控件的方式 323
14.5.2 WebPart的定制功能推动了ASP.NET的发展 324
14.5.3 ASP.NET中3种WebPart部署方式 324
第15章 使用缓存 325
15.1 缓存概述 326
15.1.1 ASP.NET缓存介绍 326
15.1.2 ASP.NET中的几种缓存 326
15.2 整页输出缓存 327
15.2.1 使用@OutputCache指令 327
15.2.2 使用API缓存 329
15.2.3 页面输出缓存应用 331
15.3 页面部分缓存 332
15.3.1 使用@OutputCache指令 332
15.3.2 使用PartialCachingAttribute类 332
15.3.3 使用ControlCachePolicy类 333
15.3.4 缓存后替换 335
15.4 应用程序数据缓存 338
15.4.1 将项添加到缓存中 338
15.4.2 检索缓存项的值 341
15.4.3 从缓存中移除项时通知应用程序 341
15.5 技术解惑 344
15.5.1 缓存的优缺点 344
15.5.2 如何从ASP.NET缓存中移除项 344
15.5.3 系统缓存的好处 345
15.5.4 服务器端缓存的两种类型 345
15.5.5 提升ASP.NET应用程序的性能 345
第16章 构建安全的ASP.NET站点 346
16.1 ASP.NET的安全性 347
16.1.1 ASP.NET安全性的几个相关概念 347
16.1.2 ASP.NET安全结构 347
16.1.3 身份验证的方式 347
16.2 用户账户模拟 348
16.2.1 模拟某一个用户 350
16.2.2 实现临时模拟 350
16.3 基于Windows的身份验证 351
16.3.1 配置IIS安全 352
16.3.2 配置Windows安全 353
16.3.3 配置Windows身份验证和授权 354
16.3.4 自定义角色 355
16.3.5 获取用户信息 355
16.4 基于表单的身份验证 355
16.5 登录控件 360
16.5.1 登录控件 361
16.5.2 用户向导控件 361
16.5.3 密码恢复控件 361
16.5.4 修改密码控件 362
16.5.5 其他控件 362
16.6 网站管理工具 362
16.6.1 用户管理 363
16.6.2 角色管理 364
16.6.3 访问规则管理 365
16.6.4 其他配置 366
16.7 技术解惑 367
16.7.1 正确验证用户输入数据的经验 367
16.7.2 ASP.NET中的角色管理 367
16.7.3 ASP.NET角色管理的工作原理 368
16.7.4 ASP.NET应用程序标识 368
16.7.5 有关代码访问安全性的知识 369
第17章 用户登录验证系统 370
17.1 用户登录验证系统介绍 371
17.2 规划项目文件 371
17.3 系统配置文件 372
17.4 搭建系统数据库 372
17.4.1 数据库设计 372
17.4.2 数据库访问层设计 372
17.5 设置主题皮肤 374
17.6 用户登录处理模块 375
17.6.1 创建图文验证码 375
17.6.2 编写用户登录界面 378
17.6.3 登录数据处理 379
17.7 用户注册处理模块 381
17.7.1 编写用户注册界面 381
17.7.2 注册数据处理 382
17.8 用户注销处理模块 384
17.8.1 注销程序激活页面 384
17.8.2 注销处理页面 384
第18章 在线信息搜索系统 386
18.1 在线信息搜索系统介绍 387
18.2 在线信息搜索系统模块文件 387
18.3 系统配置文件实现 388
18.4 搭建系统数据库 388
18.4.1 数据库设计 389
18.4.2 数据库访问层设计 389
18.5 设置主题皮肤文件 390
18.5.1 设置按钮元素样式 390
18.5.2 设置页面元素样式 390
18.6 信息搜索模块 390
18.6.1 信息搜索表单页面 390
18.6.2 搜索处理页面 392
18.6.3 搜索结果显示 392
18.6.4 搜索智能提示 393
第19章 图文处理模块 396
19.1 图文处理模块概述 397
19.2 图文处理模块实例实现文件 397
19.3 系统配置文件 398
19.4 系统设置文件的实现 398
19.5 搭建系统数据库 399
19.5.1 数据库设计 399
19.5.2 数据库访问层设计 399
19.6 系统文件列表显示模块 401
19.6.1 列表显示页面 401
19.6.2 列表处理页面 402
19.7 创建缩略图模块 404
19.7.1 创建缩略图页面 404
19.7.2 创建缩略图处理页面 405
19.8 创建水印图模块 407
19.8.1 创建水印图页面 407
19.8.2 创建水印图处理页面 407
19.9 文件上传处理模块 409
19.9.1 多文件上传处理模块 409
19.9.2 文件自动上传处理模块 412
第20章 在线留言本系统 417
20.1 在线留言本系统简介 418
20.2 在线留言本系统实例概述 418
20.3 系统配置文件 419
20.4 搭建系统数据库 419
20.4.1 数据库设计 420
20.4.2 数据库访问层设计 420
20.5 留言数据显示模块 424
20.5.1 留言列表显示页面 425
20.5.2 留言展开回复模块 428
20.6 留言分页列表显示模块 429
20.6.1 留言分页显示页面 429
20.6.2 分页处理页面 430
20.7 留言回复模块 431
20.7.1 留言回复表单页面 431
20.7.2 回复数据处理页面 432
20.8 留言发布模块 433
20.9 留言管理模块 434
20.9.1 留言管理列表页面 434
20.9.2 留言删除处理页面 435
第21章 在线聊天系统 438
21.1 项目规划分析 439
21.1.1 在线聊天系统功能原理 439
21.1.2 在线聊天系统构成模块 439
21.2 系统配置文件 440
21.3 搭建数据库 440
21.3.1 数据库设计 440
21.3.2 系统参数设置 441
21.4 数据库访问层 442
21.4.1 数据访问层——登录验证处理 443
21.4.2 数据访问层——聊天处理 444
21.4.3 数据访问层——系统管理 446
21.5 用户登录验证模块 451
21.5.1 用户登录表单页面 451
21.5.2 登录验证处理页面 451
21.6 系统主界面模块 452
21.6.1 在线聊天界面 452
21.6.2 在线聊天处理页面 453
21.7 客户的新需求 455
21.8 聊天室显示界面 456
21.8.1 聊天室列表页面 456
21.8.2 聊天室列表处理页面 457
21.9 聊天室管理界面 458
21.9.1 聊天室添加模块 459
21.9.2 聊天室列表模块 460
21.9.3 聊天室修改模块 462
21.10 项目调试 464