第Ⅰ部分 ASP.NET基础 3
第1章 One ASP.NET 3
1.1 One ASP.NET简介 3
1.1.1 ASP.NET的演变史 4
1.1.2 Web的演化史 5
1.2 简化复杂的生态系统 6
1.2.1 Web生态系统 7
1.2.2 起步是很简单的 8
1.2.3 整合生态系统是很简单的 8
1.2.4 真实示例 10
1.3 如何从One ASP.NET中获益 13
1.3.1 ASP.NET使起步很简单 13
1.3.2 ASP.NET支持Web生态系统 13
1.3.3 ASP.NET更容易查找、添加、更新站点的各个模块 14
1.3.4 ASP.NET帮助把一个框架的概念应用于另一个框架 14
1.3.5 ASP.NET与Web的发展一样快 14
1.4 本章小结 15
第2章 使用ASP.NET进行HTML5和CSS3设计 17
2.1 警告 18
2.2 HTML5概述 18
2.2.1 HTML5中的新元素、特性和值 19
2.2.2 使用新的HTML5标记 21
2.2.3 HTML5中新的API 23
2.3 CSS3概述 24
2.3.1 创建样式表 24
2.3.2 CSS规则 27
2.3.3 CSS继承 36
2.3.4 元素的布局和定位 37
2.3.5 CSS3中的新功能 43
2.3.6 HTML和CSS的兼容 47
2.4 在Visual Studio中使用HTML和CSS 48
2.4.1 在Visual Studio中使用CSS 48
2.4.2 指定ASP.NET控件的样式 51
2.4.3 VS 2012中对HTML和CSS的改进 53
2.4.4 Page Inspector 54
2.5 本章小结 55
第3章 ASP.NET Web窗体的结构 57
3.1 应用程序的位置选项 57
3.1.1 使用文件系统(IIS Express) 58
3.1.2 使用IIS 59
3.1.3 使用FTP 60
3.2 ASP.NET页面的结构选项 61
3.2.1 内联编码 61
3.2.2 隐藏代码模型 63
3.3 ASP.NET 4.5的Page指令 65
3.3.1 Page指令 66
3.3.2 Master指令 68
3.3.3 Control指令 69
3.3.4 Import指令 69
3.3.5 Implements指令 72
3.3.6 Register指令 72
3.3.7 Assembly指令 73
3.3.8 PreviousPageType指令 73
3.3.9 MasterType指令 74
3.3.10 OutputCache指令 74
3.3.11 Reference指令 75
3.4 ASP.NET的页面事件 75
3.5 处理回送 76
3.6 跨页面传送 77
3.7 ASP.NET应用程序文件夹 80
3.7.1 App_Code文件夹 80
3.7.2 App_Data文件夹 84
3.7.3 App_GlobalResources文件夹 84
3.7.4 App_LocalResources文件夹 84
3.7.5 App_WebReferences文件夹 84
3.7.6 App_Browsers文件夹 85
3.8 编译 85
3.9 Build Provider 88
3.9.1 使用内置的Build Provider 90
3.9.2 使用自己的Build Provider 90
3.10 Global.asax 94
3.11 通过Visual Studio 2012使用类 96
3.12 本章小结 99
第Ⅱ部分 控 件 103
第4章 ASP.NET服务器控件和客户端脚本 103
4.1 ASP.NET服务器控件 103
4.1.1 服务器控件的类型 104
4.1.2 使用服务器控件构建页面 105
4.1.3 处理服务器控件的事件 106
4.2 给服务器控件应用样式 107
4.3 CSS在ASP.NET 4.5中的改变 109
4.4 HTML服务器控件 109
4.4.1 HtmlControl基类 110
4.4.2 HtmlContainerControl类 111
4.4.3 所有的HTML类 111
4.4.4 使用HtmlGenericControl类 113
4.5 识别ASP.NET服务器控件 114
4.6 通过JavaScript处理页面和服务器控件 116
4.6.1 使用Page.ClientScript.RegisterClientScriptBlock 117
4.6.2 使用Page.ClientScript.RegisterStartupScript 118
4.6.3 使用Page.ClientScript.RegisterClientScriptInclude 120
4.7 本章小结 120
第5章 ASP.NET Web服务器控件 121
5.1 Web服务器控件概述 121
5.2 Label服务器控件 122
5.3 Literal服务器控件 124
5.4 TextBox服务器控件 125
5.4.1 使用Focus()方法 125
5.4.2 使用AutoPostBack 126
5.4.3 使用AutoCompleteType 127
5.5 Button服务器控件 127
5.5.1 CausesValidation属性 128
5.5.2 CommandName属性 128
5.5.3 使用客户端JavaScript的按钮 129
5.6 LinkButton服务器控件 130
5.7 ImageButton服务器控件 131
5.8 HyperLink服务器控件 131
5.9 DropDownList服务器控件 132
5.10 从集合中可视化地删除数据项 134
5.11 ListBox服务器控件 135
5.11.1 允许用户选择多项 136
5.11.2 使用ListBox控件的例子 136
5.11.3 给集合添加项 137
5.12 CheckBox服务器控件 138
5.12.1 如何确定复选框是否被选中 139
5.12.2 给复选框赋值 139
5.12.3 排列复选框中的文本 140
5.13 CheckBoxList服务器控件 140
5.14 RadioButton服务器控件 142
5.15 RadioButtonList服务器控件 144
5.16 Image服务器控件 145
5.17 Table服务器控件 146
5.18 Calendar服务器控件 148
5.18.1 从Calendar控件中选择日期 149
5.18.2 从Calendar控件中选择要输出的日期格式 150
5.18.3 选择日期、星期或月份 150
5.18.4 使用日期范围 151
5.18.5 修改日历的样式和操作方式 152
5.19 AdRotator服务器控件 155
5.20 Xml服务器控件 157
5.21 Panel服务器控件 157
5.22 PlaceHolder服务器控件 159
5.23 BulletedList服务器控件 160
5.24 HiddenField服务器控件 165
5.25 FileUpload服务器控件 166
5.25.1 使用FileUpload控件上传文件 166
5.25.2 给上传文件指定正确的ASP.NET权限 168
5.25.3 理解文件的大小限制 169
5.25.4 从同一个页面上传多个文件 171
5.25.5 把上传的文件放在Stream对象中 173
5.25.6 把文件内容从Stream对象移到Byte数组中 173
5.26 MultiView和View服务器控件 174
5.27 Wizard服务器控件 177
5.27.1 定制边栏导航 178
5.27.2 AllowReturn属性 179
5.27.3 使用StepType属性 179
5.27.4 给Wizard控件添加标题 180
5.27.5 使用向导的导航系统 181
5.27.6 使用Wizard控件的事件 181
5.27.7 使用Wizard控件显示窗体元素 183
5.28 ImageMap服务器控件 186
5.29 本章小结 188
第6章 验证服务器控件 189
6.1 有效性验证 189
6.2 客户端和服务器端的验证 190
6.3 ASP.NET验证服务器控件 191
6.3.1 验证原因 192
6.3.2 ASP.NET 4.5中的隐含验证 192
6.3.3 RequiredFieldValidator服务器控件 195
6.3.4 CompareValidator服务器控件 199
6.3.5 RangeValidator服务器控件 202
6.3.6 RegularExpressionValidator服务器控件 205
6.3.7 CustomValidator服务器控件 206
6.3.8 ValidationSummary服务器控件 210
6.4 关闭客户端验证功能 213
6.5 为错误通知使用图像和声音 214
6.6 使用验证组 215
6.7 本章小结 218
第7章 用户控件和服务器控件 219
7.1 用户控件 219
7.1.1 创建用户控件 220
7.1.2 与用户控件交互 222
7.1.3 动态加载用户控件 222
7.2 服务器控件 226
7.2.1 Server Control项目 226
7.2.2 控件的特性 230
7.2.3 控件的显示 231
7.2.4 添加标记特性 234
7.2.5 关于控件ID 235
7.2.6 给HTML设置样式 236
7.2.7 添加客户端功能 238
7.2.8 浏览器功能 244
7.2.9 使用ViewState 246
7.2.10 引发回送事件 249
7.2.11 处理回送数据 251
7.2.12 复合控件 253
7.2.13 模板化控件 254
7.2.14 在设计期间创建控件 257
7.3 本章小结 268
第Ⅲ部分 数据访问 271
第8章 数据绑定 271
8.1 数据源控件 271
8.1.1 SqlDataSource控件 273
8.1.2 AccessDataSource控件 278
8.1.3 LinqDataSource控件 278
8.1.4 EntitYDataSource控件 278
8.1.5 给复杂的过滤使用QueryExtender 280
8.1.6 XmlDataSource控件 281
8.1.7 ObjectDataSource控件 282
8.1.8 SiteMapDataSource控件 283
8.2 数据源控件的高速缓存 284
8.3 数据绑定控件 284
8.3.1 GridView控件 284
8.3.2 编辑GridView中的数据行 293
8.3.3 删除GridView数据 298
8.3.4 DetailsView控件 300
8.3.5 使用DetailsView插入、更新和删除数据 302
8.3.6 ListView控件 303
8.3.7 FormView控件 309
8.4 其他数据绑定控件 312
8.4.1 TreeView控件 312
8.4.2 Menu控件 313
8.4.3 Chart控件 313
8.5 内联数据绑定语法 316
8.5.1 数据绑定语法 317
8.5.2 XML数据绑定 318
8.6 表达式和表达式生成器 318
8.7 本章小结 321
第9章 模型绑定 323
9.1 模型绑定 323
9.1.1 选择数据 324
9.1.2 分页 324
9.1.3 过滤 325
9.1.4 使用值提供程序 325
9.1.5 插入数据 326
9.1.6 更新数据 327
9.2 使用强类型化的控件 329
9.3 扩展模型绑定 330
9.3.1 定制的值提供程序 330
9.3.2 定制的模型绑定器 331
9.3.3 定制的ModelDataSource 332
9.4 本章小结 334
第10章 使用LINQ查询 335
10.1 LINQ to Objects 336
10.1.1 传统的查询方法 336
10.1.2 使用LINQ替代传统的查询 338
10.1.3 使用LINQ分组数据 345
10.1.4 使用其他LINQ运算符 345
10.1.5 建立LINQ连接 346
10.1.6 使用LINQ分页数据 347
10.2 LINQ to XML 347
10.2.1 一个简单的LINQ to XML示例 348
10.2.2 连接XML数据 350
10.3 LINQ to SQL 351
10.3.1 使用O/R映射器 351
10.3.2 访问和查询数据 353
10.3.3 使用其他SQL查询方法 356
10.3.4 通过LINQ插入、更新和删除查询 358
10.4 LINQ to Entities 361
10.4.1 创建Entity Framework数据模型 362
10.4.2 访问数据 363
10.4.3 编写LINQ查询 363
10.5 本章小结 365
第11章 Entity Framework 367
11.1 能否使用同一种语言 368
11.1.1 开发工作流选项 369
11.1.2 实体数据模型 369
11.2 创建第一个实体数据模型 370
11.2.1 使用EDM向导 371
11.2.2 使用Entity Framework设计器 373
11.2.3 使用EDM建立ASP.NET Web页面 374
11.3 理解关系 376
11.3.1 一对一和一对多关系 376
11.3.2 多对一和多对多关系 379
11.4 在EDM中使用继承功能 381
11.5 使用EntityDataSource控件 384
11.5.1 创建基本页面 384
11.5.2 配置数据源控件 385
11.6 Entity Framework Code First 387
11.6.1 创建Code First模型 387
11.6.2 约定-配置 390
11.6.3 Code First中的关系 391
11.6.4 Code First Migrations 392
11.7 本章小结 394
第12章 ASP.NET Dynamic Data 395
12.1 Dynamic Data功能 395
12.1.1 默认应用程序中创建的核心文件 395
12.1.2 应用程序特性 396
12.1.3 运行应用程序 397
12.1.4 运行应用程序的结果 397
12.1.5 向已有页面中添加动态数据 400
12.2 理解模型绑定 401
12.2.1 特性驱动的UI 401
12.2.2 特性驱动的验证 403
12.3 本章小结 404
第13章 使用服务 405
13.1 不同系统之间的通信 405
13.2 建立一个简单的XML Web服务 407
13.2.1 WebService页面指令 408
13.2.2 Web服务的基类文件 409
13.2.3 把定制的DataSet显示为SOAP 409
13.2.4 XML Web服务接口 411
13.3 使用简单的XML Web服务 413
13.3.1 添加Web引用 413
13.3.2 在客户端应用程序中调用Web服务 415
13.4 重载WebMethod 417
13.5 高速缓存Web服务的响应 420
13.6 使用SOAP报头 421
13.6.1 使用SOAP报头建立Web服务 421
13.6.2 通过SOAP报头使用Web服务 422
13.6.3 使用SOAP 1.2请求Web服务 424
13.7 异步使用Web服务 425
13.8 WCF 427
13.8.1 WCF概述 427
13.8.2 建立WCF服务 428
13.8.3 建立WCF使用者 433
13.8.4 添加服务引用 434
13.8.5 使用数据协定 436
13.8.6 定义名称空间 440
13.8.7 使用WCF数据服务 440
13.8.8 创建第一个服务 441
13.8.9 查询接口 447
13.8.10 在ASP.NET中使用WCF数据服务 458
13.9 ASP.NET Web API 460
13.9.1 建立第一个Web ApI项目 461
13.9.2 理解Web API路由 464
13.9.3 使用Web API 465
13.10 本章小结 468
第Ⅳ部分 提供程序 471
第14章 提供程序模型概述 471
14.1 提供程序概述 472
14.2 ASP.NET 4.5中的提供程序模型 473
14.2.1 设置提供程序以使用SQL Server 2005、2008或2012 474
14.2.2 成员资格提供程序 479
14.2.3 角色提供程序 483
14.2.4 个性化提供程序 486
14.2.5 站点地图提供程序 488
14.2.6 会话状态提供程序 489
14.2.7 Web事件提供程序 491
14.2.8 提供程序的配置 498
14.3 本章小结 500
第15章 扩展提供程序模型 501
15.1 提供程序是较大体系结构中的一层 501
15.2 通过基于特性的编程修改提供程序的行为 502
15.2.1 通过SqlMembership-Provider建立简单的密码结构 502
15.2.2 通过SqlMembership-Provider建立强类型的密码结构 505
15.3 ProviderBase类 506
15.4 建立自己的提供程序 508
15.4.1 创建CustomProviders应用程序 508
15.4.2 构造需要的类架构 509
15.4.3 创建XML用户数据存储 512
15.4.4 在web.config文件中定义提供程序实例 512
15.4.5 不实现MembershipProvider类的方法和属性 513
15.4.6 实现MembershipProvider类的方法和属性 514
15.4.7 使用XmlMembership-Provider进行用户登录 519
15.5 扩展预定义的提供程序 520
15.5.1 用新的LimitedSql-RoleProvider提供程序限制角色功能 521
15.5.2 使用新的LimitedSqlRoleProvider提供程序 523
15.6 本章小结 526
第Ⅴ部分 ASP.NET特性 529
第16章 使用母版页 529
16.1 需要母版页的原因 529
16.2 母版页的基础知识 531
16.3 编写母版页 532
16.4 编写内容页面 534
16.4.1 混合页面类型和语言 538
16.4.2 指定要使用的母版页 539
16.4.3 将母版页应用于页面子集 540
16.4.4 使用页面标题 540
16.4.5 使用母版页中的控件和属性 540
16.5 在母版页中指定默认内容 545
16.6 以编程方式将母版页赋予内容页面 547
16.7 母版页的嵌套 547
16.8 浏览器特定的母版页 551
16.9 事件的触发顺序 552
16.10 高速缓存母版页 553
16.11 ASP.NET AJAX和母版页 554
16.12 本章小结 556
第17章 站点导航 557
17.1 基于XML的站点地图 557
17.2 SiteMapPath服务器控件 559
17.2.1 PathSeparator属性 561
17.2.2 PathDirection属性 563
17.2.3 ParentLevelsDisplayed属性 563
17.2.4 ShowToolTips属性 564
17.2.5 SiteMapPath控件的子元素 564
17.3 TreeView服务器控件 565
17.3.1 标识TreeView控件的内置样式 568
17.3.2 研究TreeView控件的各个部分 569
17.3.3 将TreeView控件绑定到XML文件 570
17.3.4 在TreeView中选择多个选项 572
17.3.5 在TreeView控件中指定定制的图标 575
17.3.6 指定用于连接节点的线 576
17.3.7 以编程方式使用TreeView控件 577
17.4 Menu服务器控件 582
17.4.1 对Menu控件应用不同的样式 583
17.4.2 Menu事件 587
17.4.3 把Menu控件绑定到XML文件 588
17.5 SiteMap数据提供程序 589
17.5.1 ShowStartingNode属性 589
17.5.2 StartFromCurrentNode属性 590
17.5.3 StartingNodeOffset属性 591
17.5.4 StartingNodeUrl属性 592
17.6 SiteMap API 592
17.7 URL映射 594
17.8 站点地图的本地化 595
17.8.1 为本地化构建Web.sitemap文件 595
17.8.2 修改web.config文件 596
17.8.3 创建程序集资源(.resx)文件 596
17.8.4 测试结果 597
17.9 安全补偿 598
17.9.1 启动管理员的角色管理功能 598
17.9.2 建立管理员的配置部分 600
17.9.3 启用安全补偿功能 601
17.10 嵌套站点地图文件 602
17.11 本章小结 604
第18章 个性化 605
18.1 个性化模型 605
18.2 创建个性化属性 606
18.2.1 添加简单的个性化属性 607
18.2.2 使用个性化属性 607
18.2.3 添加一组个性化属性 610
18.2.4 使用分组的个性化属性 611
18.2.5 为个性化属性定义类型 611
18.2.6 使用定制的类型 612
18.2.7 提供默认值 613
18.2.8 把个性化属性指定为只读 614
18.3 匿名个性化 614
18.3.1 支持终端用户的匿名身份 614
18.3.2 使用匿名身份识别事件 617
18.3.3 个性化属性的匿名选项 617
18.3.4 有关匿名用户配置信息的警告 618
18.4 编程访问个性化功能 618
18.4.1 迁移匿名用户 619
18.4.2 配置信息的个性化 619
18.4.3 确定是否继续自动保存配置信息 620
18.4.4 在Web Application Projects中使用配置信息 621
18.5 个性化提供程序 622
18.5.1 使用SQL Server Express Edition 622
18.5.2 使用SQL Server 623
18.5.3 使用多个提供程序 625
18.5.4 使用通用提供程序 626
18.6 管理应用程序的配置信息 626
18.6.1 ProfileManager类的属性 627
18.6.2 ProfileManager类的方法 627
18.6.3 建立配置信息管理页面 628
18.6.4 研究配置信息管理页面的代码 630
18.6.5 运行配置信息管理页面 631
18.7 本章小结 631
第19章 成员资格和角色管理 633
19.1 ASP.NET 4.5的身份验证 634
19.1.1 为成员资格建立Web站点 634
19.1.2 添加用户 637
19.1.3 请求凭据 649
19.1.4 处理验证用户 655
19.1.5 显示在线用户数 657
19.1.6 处理密码 658
19.2 ASP.NET 4.5的授权 662
19.2.1 使用LoginView服务器控件 662
19.2.2 为角色管理建立Web站点 664
19.2.3 添加和检索应用程序角色 667
19.2.4 删除角色 669
19.2.5 给角色添加用户 669
19.2.6 获取某个角色的所有用户 670
19.2.7 获取包含某个用户的所有角色 671
19.2.8 从角色中删除用户 672
19.2.9 检查角色中的用户 672
19.2.10 角色的高速缓存方式 673
19.3 使用SimpleMembershipAPI 674
19.4 使用Web Site Administration Tool 675
19.5 Membership API的公有方法 675
19.6 Roles API的公有方法 676
19.7 集成OAuth和OpenID身份验证 677
19.7.1 使用OpenID 677
19.7.2 使用OAuth 681
19.8 本章小结 685
第20章 安全性 687
20.1 应用身份验证措施 688
20.1.1〈authentication〉节点 688
20.1.2 基于Windows的身份验证 689
20.1.3 基于表单的身份验证 696
20.2 验证特定的文件和文件夹 703
20.3 以编程方式授权 704
20.3.1 使用User.Identity属性 705
20.3.2 使用IsInRole方法 706
20.3.3 使用WindowsIdentity显示更多信息 706
20.4 身份和模拟 708
20.5 通过IIS进行保护 710
20.5.1 使用文件扩展名 710
20.5.2 使用IIS 7.x/8 Manager 712
20.5.3 使用ASP.NET MMC管理单元 713
20.6 本章小结 714
第Ⅵ部分 应用程序状态 717
第21章 状态管理 717
21.1 如何选择会话状态 717
21.2 理解ASP.NET中的Session对象 719
21.2.1 会话和事件模型 720
21.2.2 配置会话状态的管理 721
21.2.3 进程中的会话状态 721
21.2.4 进程外的会话状态 727
21.2.5 SQL支持的会话状态 732
21.2.6 使用其他提供程序扩展会话状态 734
21.2.7 无cookie的会话状态 735
21.2.8 选择维护状态的正确方式 736
21.3 Application对象 737
21.4 查询字符串 737
21.5 cookie 738
21.6 回送和跨页面回送 738
21.7 隐藏字段、ViewState和ControlState 740
21.8 为短时间状态存储应用HttpContext.Current.Items 743
21.9 本章小结 744
第22章 高速缓存 745
22.1 高速缓存 745
22.1.1 输出高速缓存 746
22.1.2 部分页面(UserControl)的高速缓存 749
22.1.3 Post-Cache Substitution 750
22.1.4 HttpCachePolicy和客户端高速缓存 752
22.2 使用编程方式进行高速缓存 753
22.2.1 使用Cache对象高速缓存数据 754
22.2.2 控制ASP.NET高速缓存 754
22.2.3 高速缓存依赖性 755
22.2.4 .NET 4.x中新的对象高速缓存选项 758
22.3 使用SQL Server高速缓存依赖性 761
22.3.1 使数据库支持SQL Server高速缓存禁用功能 762
22.3.2 使表支持SQL Server高速缓存禁用功能 762
22.3.3 对SQL Server的影响 763
22.3.4 查看支持SQL Server高速缓存禁用功能的表 764
22.3.5 使表不支持SQL Server高速缓存禁用功能 764
22.3.6 使数据库不支持SQL Server高速缓存禁用功能 764
22.3.7 SQL Server高速缓存禁用功能 765
22.4 配置ASP.NET应用程序 766
22.5 测试SQL Server高速缓存禁用功能 767
22.5.1 给页面添加多个表 769
22.5.2 给SQL Server高速缓存依赖性和Request对象建立关联 770
22.5.3 给SQL Server高速缓存依赖性和Cache对象建立关联 770
22.6 本章小结 773
第Ⅶ部分 客户端开发 777
第23章 ASP.NET AJAX 777
23.1 理解对AJAX的需求 777
23.1.1 AJAX出现之前的请求/响应过程 777
23.1.2 AJAX改变了请求/响应过程 778
23.2 ASP.NET AJAX和Visual Studio 2012 780
23.2.1 客户端技术 781
23.2.2 服务器端技术 781
23.2.3 使用ASP.NET AJAX进行开发 782
23.3 创建ASP.NET AJAX应用程序 782
23.3.1 建立没有使用AJAX的简单ASP.NET页面 784
23.3.2 建立使用AJAX的简单ASP.NET页面 785
23.4 ASP.NET AJAX的服务器控件 790
23.4.1 ScriptManager控件 791
23.4.2 ScriptManagerProxy控件 793
23.4.3 Timer控件 794
23.4.4 UpdatePanel控件 795
23.4.5 UpdateProgress控件 799
23.5 使用多个UpdatePanel控件 801
23.6 使用页面历史记录 804
23.7 脚本合并 809
23.8 本章小结 813
第24章 AJAX控件工具集 815
24.1 下载和安装AJAX控件工具集 816
24.2 ASP.NET AJAX控件 818
24.2.1 AJAX控件工具集的扩展程序 819
24.2.2 AJAX控件工具集中的服务器控件 863
24.3 本章小结 873
第25章 jQuery 875
25.1 jQuery简介 876
25.2 选择元素 880
25.3 修改元素 882
25.3.1 修改内容 882
25.3.2 添加和删除元素 884
25.4 事件处理 886
25.5 AJAX 888
25.6 jQuery UI 895
25.7 本章小结 898
第26章 实时通信 899
26.1 传统的实时通信选项 899
26.1.1 使用Comet 900
26.1.2 Polling 901
26.1.3 服务器发送的事件 901
26.1.4 现有方法的缺点 901
26.2 HTML5 WebSockets 902
26.2.1 WebSockets的概念 902
26.2.2 TCP/IP 903
26.2.3 TCP/HTTP 903
26.2.4 WebSockets协议简介 904
26.2.5 WebSockets数据传输 905
26.2.6 WebSockets API 906
26.2.7 ASP.NET 4.5中的WebSockets 907
26.2.8 使用WebSockets的优点 910
26.3 SignalR 911
26.3.1 什么是SignalR? 911
26.3.2 ASP.NET中的服务器端SignalR 912
26.3.3 ASP.NET中的客户端SignalR 913
26.4 本章小结 914
第27章 开发移动网站 915
27.1 移动Web设计的挑战 916
27.2 响应式设计和适应式设计 916
27.2.1 修改视口 917
27.2.2 使用CSS媒介查询 918
27.3 ASP.NET移动应用程序 920
27.3.1 检测移动浏览器和设备 921
27.3.2 处理移动母版页 921
27.3.3 创建移动Web窗体 923
27.3.4 ASP.NET Web窗体中的FriendlyURLs 924
27.4 ASP.NET MVC 4移动应用程序 925
27.4.1 ASP.NET MVC 4中的适应式显示功能 925
27.4.2 创建移动专用的视图 928
27.4.3 提供显示模式 929
27.4.4 包含jQuery Mobile和ViewSwitcher 931
27.4.5 使用Mobile Application项目模板 934
27.5 测试移动应用程序 934
27.6 本章小结 935
第Ⅷ部分 应用程序的配置与开发 939
第28章 配置 939
28.1 配置概述 939
28.1.1 服务器配置文件 940
28.1.2 应用程序配置文件 943
28.1.3 应用配置设置 943
28.1.4 检测配置文件发生的改动 944
28.1.5 配置文件的格式 944
28.2 公共配置设置 945
28.2.1 连接字符串 945
28.2.2 配置会话状态 946
28.2.3 编译配置 950
28.2.4 定制错误 952
28.2.5 身份验证 952
28.2.6 匿名身份 955
28.2.7 授权 956
28.2.8 锁定配置设置 958
28.2.9 ASP.NET页面配置 958
28.2.10 包含文件 960
28.2.11 配置ASP.NET运行时设置 961
28.2.12 配置ASP.NET工作者进程 963
28.2.13 存储与应用程序相关的设置 966
28.2.14 对配置文件编程 966
28.2.15 保护配置设置 970
28.2.16 编辑配置文件 973
28.3 创建定制部分 975
28.3.1 使用NameValueFile-SectionHandler对象 975
28.3.2 使用Dictionary-SectionHandler对象 976
28.3.3 使用SingleTag-SectionHandler对象 977
28.3.4 使用定制的配置处理程序 977
28.4 使用配置转换 979
28.4.1 添加web.config转换 979
28.4.2 更新配置转换文件 981
28.5 打包和压缩功能 983
28.5.1 什么是打包和压缩功能 983
28.5.2 启用打包和压缩功能 984
28.6 本章小结 985
第29章 调试和错误处理技术 987
29.1 设计期间的支持 987
29.1.1 语法通知 988
29.1.2 Immediate和Command窗口 989
29.1.3 任务列表 989
29.2 跟踪 990
29.2.1 System.Diagnostics.Trace和ASP.NET的Page.Trace 990
29.2.2 页面级的跟踪 991
29.2.3 应用程序的跟踪 991
29.2.4 查看跟踪数据 991
29.2.5 在组件中跟踪 994
29.2.6 跟踪的传送 995
29.2.7 TraceListener 995
29.2.8 诊断选项 999
29.2.9 Web事件 1000
29.3 调试 1001
29.3.1 需要的内容 1002
29.3.2 启动调试会话 1003
29.3.3 有助于调试的工具 1004
29.3.4 使用IntelliTrace执行历史调试 1007
29.3.5 调试多个线程 1008
29.3.6 客户端的JavaScript调试 1008
29.3.7 SQL存储过程的调试 1009
29.4 异常和错误处理 1010
29.4.1 处理页面上的异常 1010
29.4.2 处理应用程序异常 1011
29.4.3 HTTP状态码 1011
29.5 用Page Inspector进行调试 1012
29.6 本章小结 1015
第30章 模块和处理程序 1017
30.1 处理HTTP请求 1017
30.1.1 IIS 6和ASP.NET 1017
30.1.2 IIS 7、IIS 8和ASP.NET 1018
30.1.3 ASP.NET请求处理 1019
30.2 HttpModule 1019
30.3 HttpHandler 1024
30.3.1 一般的处理程序 1024
30.3.2 在IIS中映射文件扩展名 1028
30.4 本章小结 1029
第31章 异步通信 1031
31.1 异步编程 1031
31.1.1 使用异步方式的原因 1031
31.1.2 编写异步代码的场合 1032
31.1.3 异步简史 1032
31.2 ASP.NET中的异步 1034
31.2.1 线程池 1035
31.2.2 编写异步代码 1036
31.2.3 并行 1039
31.2.4 服务器配置 1040
31.2.5 使用异步模式的缺点 1040
31.3 本章小结 1041
第32章 国际化应用程序的建立 1043
32.1 区域性和地区 1043
32.1.1 了解区域性类型 1044
32.1.2 ASP.NET线程 1045
32.1.3 服务器端的区域性声明 1046
32.1.4 客户端的区域性声明 1048
32.1.5 翻译值和行为 1049
32.2 ASP.NET 4.5资源文件 1056
32.2.1 使用本地资源 1056
32.2.2 使用全局资源 1061
32.3 本章小结 1064
第33章 打包和部署ASP.NET应用程序 1065
33.1 部署各个部分 1066
33.2 部署之前的准备步骤 1066
33.3 部署Web应用程序的方法 1067
33.3.1 使用XCopy 1067
33.3.2 使用Copy Web Site选项 1069
33.3.3 部署预编译的Web应用程序 1072
33.3.4 创建ASP.NET Web Package 1073
33.3.5 发布配置文件详解 1076
33.4 部署Windows Azure Web Sites 1082
33.5 本章小结 1084
第Ⅸ部分 其他ASP.NET技术 1087
第34章 ASP.NET MVC 1087
34.1 MVC的定义 1087
34.2 当今Web上的MVC 1088
34.3 MVC和ASP.NET 1089
34.3.1 为方法而不是文件服务 1089
34.3.2 ASP.NET MVC是Web Forms 4.5? 1089
34.3.3 为什么不是Web窗体 1090
34.3.4 ASP.NET MVC是完全不同的 1090
34.3.5 为什么“(ASP.NET>ASP.NET MVC)==True” 1090
34.3.6 约定胜于配置 1092
34.3.7 第三个请求是Charm 1095
34.4 理解路由和URL 1097
34.4.1 路由选择与URL重写的比较 1097
34.4.2 路由的定义 1098
34.5 控制器 1103
34.5.1 控制器的定义:IController接口 1103
34.5.2 控制器类和操作 1104
34.5.3 处理参数 1105
34.5.4 处理多个参数 1106
34.6 视图 1106
34.6.1 指定视图 1108
34.6.2 ASP.NET MVC布局 1109
34.6.3 强类型化视图 1112
34.6.4 使用HTML辅助方法 1113
34.6.5 HtmlHelper类和扩展方法 1113
34.7 本章小结 1114
第35章 ASP.NET Web Pages和Razor 1115
35.1 ASP.NET Web Pages概述 1116
35.2 使用Razor创建HTML窗体 1116
35.3 显示数据 1120
35.3.1 验证 1123
35.3.2 使用布局 1125
35.4 使用辅助方法 1127
35.4.1 核心辅助方法 1127
35.4.2 使用辅助方法添加功能 1130
35.4.3 创建定制的辅助方法 1132
35.5 本章小结 1133
第Ⅹ部分 附 录 1137
附录A 迁移ASP.NET旧项目 1137
附录B COM集成 1145
附录C ASP.NET终极工具 1155
附录D 管理 1165
附录E 动态类型与语言 1189
附录F ASP.NET联机资源 1197
附录G 使用NuGet扩展Visual Studio 1201