
《ASP.NET 4.5数据库入门经典(第3版) 带您进入使用ASP.NET、ADO.NET、Entity Framework和C#构建数据驱动网站的世界,向您介绍有助于快捷高效地开发专业ASP.NET和数据库解决方案的方法和最佳实践。
在这本综合性指南的指引下,您将能熟练地将网站连接到包括数据库在内的多种不同数据源,并了解如何使用这些数据创建动态页面内容。
欢迎阅读本书。本书并不是上一版Beginning ASP.NET 2.0 Databases的简单修订版本。自上一版出版之后,.NET Framework已经发布了多个版本,构建数据驱动的应用程序涉及的概念也发生了巨大变化。随着.NET Framework引入了Entity Framework 5、WCF数据服务和ASP.NET 4.5中的一些新功能(如强类型化控件和模型绑定),开发人员在构建从各种数据源获取数据的Web应用程序时,有了更好的选择。本书将指导你使用.NET Framework 4.5中的新功能构建数据驱动的网站,还将介绍现代Web应用程序开发中的领先技术ASP.NET MVC 4。
目标读者
对于仍在使用.NET Framework 2.0,想要学习.NET Framework 4.5中新的数据访问功能的开发人员,本书是一个极佳选择。对于初学者,本书也是一本非常实用的指南,带领他们进入使用ASP.NET 4.5开发数据驱动网站的世界。本书不只介绍构建数据访问层的新方式,还介绍相关的最佳实践。
本书结构
本书共分为13章。
第1章是简介章节,概述了新的数据访问模式。该章还讨论了ASP.NET 4.5中可以使用的不同数据源,并介绍了ADO.NET的新功能。
第2章探讨了关系数据库的未来。该章介绍了SQL Server 2012,并讨论了一些数据可视化功能。
第3章介绍了非关系数据库的概念,以及它们与在.NET中构建数据驱动应用程序有什么关系。该章将通过MongoDB介绍NoSQL概念。
第4章详细介绍了ADO.NET,并使用ADO.NET执行一些数据库操作。该章讨论了一个重要的新功能:异步CRUD操作。
第5章概述了本书中将一直用到的LINQ功能。
第6章概述了实体数据模型。不仅第三方ORM工具会用到其基本概念,Entity Framework也会使用它。该章还详细讨论了概念模式定义语言。
第7章探讨了Entity Framework使用实体数据模型的基本概念生成数据模型的方式。该章还介绍了使用LINQ和实体SQL查询模型的不同方式,以及一些数据访问接口。
第8章在Entity Framework中使用第1章讨论过的数据访问模式。该章还概述了在ASP.NET Web Forms中执行验证的数据注释。
第9章详细叙述了如何使用REST风格的架构,通过WCF数据服务和Web API获取数据。该章还讨论了OData协议。
第10章介绍了ASP.NET 4.5和ASP.NET MVC 4中新的数据绑定功能。该章还讨论了数据表示功能的增强之处。
第11章讨论了ASP.NET 4.5中的动态数据概念,以及如何使用动态数据快速构建一个原型以操作存储库中的数据。
第12章探讨了构建没有耦合的数据访问层的最佳实践,并针对构建数据驱动网站时可能遇到的实际问题提供了一些有用的提示。
第13章介绍的知识可帮助更高效地开发数据驱动的应用程序。该章还讨论了如何有效利用Team Foundation Server(TFS) 2012对Visual Studio 2012所做的增强。
本书的出版需要感谢整个编辑团队,特别是Jonathan Hassell、Kevin Shea和Gary Schwartz。
特别感谢Michael Mayberry审校本书。并提出了见解深刻的反馈意见。
第1章 ASP.NET 4.5数据源 1
1.1 新的数据访问模式 2
1.2 ASP.NET中的数据源 4
1.2.1 ADO.NET数据源 4
1.2.2 NoSQL 5
1.2.3 Web服务 5
1.2.4 WCF数据服务 5
1.2.5 联合服务 6
1.2.6 Azure存储 6
1.2.7 HTML 5本地存储 6
1.3 .NET Framework 4.5中的
ADO.NET简介 7
1.3.1 ADO.NET的新变化 7
1.3.2 Entity Framework 5.0 7
1.3.3 SqlClient数据访问接口 7
1.3.4 ADO.NET和LINQ 8
1.3.5 数据访问接口 8
1.3.6 异步数据访问 9
1.3.7 .NET Framework 4.5中的
异步编程模型 10
1.4 开发第一个示例 12
1.4.1 试一试:使用ASP.NET 4.5创建
第一个数据驱动的页面 12
1.4.2 示例说明 20
1.5 小结 20
第2章 关系数据库的未来发展 21
2.1 关系数据库的演化 22
2.1.1 关系数据库的缺点 22
2.1.2 Microsoft SQL Server
如何摆脱限制 22
2.2 Microsoft SQL Server 2012
简介 23
2.3 空间数据 25
2.4 数据库引擎和T-SQL增强 29
2.4.1 支持分页 29
2.4.2 序列 30
2.4.3 在Exec命令中使用WITH
RESULT SET 31
2.4.4 FileTable 32
2.5 数据可视化 32
2.5.1 Power View和Power Pivot 33
2.5.2 自助警报 33
2.6 SQL Server 2012云 34
2.6.1 私有云 35
2.6.2 SQL Azure——公有云 35
2.7 小结 38
第3章 非关系数据库简介 39
3.1 理解NoSQL数据库 39
3.1.1 概述 40
3.1.2 关键优势 40
3.1.3 流行的NoSQL技术 40
3.1.4 面向文档的数据库 41
3.1.5 使用MongoDB进行编程 42
3.1.6 MongoDB的设置步骤 42
3.1.7 使用MongoDB客户端 43
3.1.8 使用C#进行MongoDB
编程 44
3.1.9 MongoDB的工作原理 47
3.2 小结 48
第4章 使用ADO.NET访问数据 49
4.1 ADO.NET架构 49
4.1.1 使用ADO.NET数据访问接口
读取和修改数据库 50
4.1.2 DataSet与DataReader 50
4.1.3 连接数据库 51
4.1.4 CRUD操作的命令 53
4.1.5 使用存储过程操作数据 53
4.1.6 异步数据流 55
4.1.7 访问接口工厂 55
4.1.8 多重活动结果集 57
4.2 DataSet、DataAdapter和
DataSource控件 58
4.3 数据类型映射 60
4.4 安全的数据访问 61
4.4.1 访问SQL数据库的权限 61
4.4.2 加密Web配置 62
4.4.3 防止注入攻击 63
4.4.4 异常处理 64
4.4.5 在内存中处理敏感信息的
安全字符串 64
4.4.6 Microsoft SQL Server 2012
扩展保护 64
4.5 小结 64
第5章 LINQ简介 65
5.1 使用LINQ编写查询 65
5.1.1 LINQ数据源 66
5.1.2 使用LINQ构建查询 69
5.2 查询运算符 70
5.2.1 查询运算符的分类 70
5.2.2 查询运算符的执行 70
5.3 将LINQ用于ADO.NET
数据访问 71
5.3.1 LINQ to SQL 71
5.3.2 延迟加载 74
5.3.3 LINQ to DataSet 75
5.3.4 LINQ to Entities 76
5.4 LINQ和并行性 76
5.5 查询WCF数据服务 77
5.6 小结 80
第6章 ADO.NET实体数据模型 81
6.1 EDM架构 81
6.1.1 概念模式 82
6.1.2 存储模式 84
6.1.3 映射模式 85
6.1.4 EDM生成工具 86
6.2 ADO.NET元数据 87
6.2.1 EDM类型和关系 88
6.2.2 DataSpace枚举器 89
6.2.3 元数据工作区 89
6.2.4 规范和存储函数 92
6.3 实体SQL简介 92
6.4 小结 93
第7章 使用Entity Framework设计数据
访问应用程序 95
7.1 Entity Framework架构 95
7.2 生成实体模型 96
7.2.1 实体关联 99
7.2.2 使用LINQ to Entities
查询EDM 100
7.3 Entity Framework中使用
Text Template的代码生成 101
7.3.1 DbContext生成器和
POCO类 103
7.3.2 POCO代理 105
7.4 预先加载实体 106
7.5 复杂类型 106
7.6 枚举类型 110
7.7 实体客户端数据访问接口 110
7.8 对数据访问层进行
单元测试 110
7.9 小结 112
第8章 Entity Framework的数据
访问模式 113
8.1 模型优先的方法 113
8.2 代码优先的方法 120
8.2.1 数据库初始值 122
8.2.2 使用Fluent API的
自定义映射 124
8.2.3 代码优先迁移 125
8.2.4 代码优先方法的逆向工程 125
8.3 使用数据注释进行验证 126
8.4 小结 127
第9章 使用WCF数据服务 129
9.1 REST语义概述 130
9.2 WCF数据服务简介 130
9.3 将数据公开为服务 132
9.3.1 WCF数据服务访问接口 136
9.3.2 将ASP.NET MVC WebAPI
服务公开为OData源 137
9.4 在客户端应用程序中使用
数据服务 140
9.4.1 通过jQuery Ajax使用
OData源 140
9.4.2 通过WCF数据服务客户端库
使用OData源 141
9.5 小结 143
第10章 ASP.NET 4.5中的数据
绑定 145
10.1 数据源控件 145
10.1.1 LinqDataSource 146
10.1.2 EntityDataSource 148
10.2 数据绑定控件 153
10.2.1 DataList 153
10.2.2 DetailsView 154
10.2.3 QueryExtender 155
10.3 强类型化数据控件 156
10.3.1 ItemType特性 156
10.3.2 HTML编码的
表达式 157
10.4 模型绑定 157
10.5 ASP.NET MVC 4中的
数据绑定 159
10.5.1 Razor视图引擎 159
10.5.2 非介入式JavaScript 161
10.5.3 使用Ajax进行异步
显示 163
10.6 小结 164
第11章 使用动态数据构建可扩展的
数据驱动Web应用程序 165
11.1 动态数据层 165
11.2 动态数据基架 166
11.2.1 自定义Scaffolding
Template 170
11.2.2 模板行为 172
11.3 动态数据的工作原理 173
11.3.1 MetaModel 173
11.3.2 路由 174
11.3.3 已有控件中的动态
数据 174
11.4 小结 175
第12章 构建数据驱动网站的最佳
实践和技术 177
12.1 数据访问层模式 177
12.1.1 隔离数据层和实体
模型 177
12.1.2 存储库模式 179
12.1.3 工作单元 183
12.2 处理问题的技术 188
12.2.1 并发性 188
12.2.2 事务 189
12.2.3 调试问题 189
12.3 小结 192
第13章 应用程序生命周期管理 193
13.1 为企业创建架构 194
13.1.1 设计新应用程序 194
13.1.2 分析已有的应用程序
代码库 195
13.2 提高工作效率 196
13.2.1 更好地访问文件和
代码 196
13.2.2 访问数据 197
13.2.3 暂停和恢复 199
13.2.4 代码评审 199
13.2.5 分析和配置应用
程序 200
13.3 测试和调试ASP.NET
应用程序 201
13.3.1 单元测试 201
13.3.2 使用IntelliTrace进行
历史调试 201
13.4 生成和部署 202
13.4.1 团队生成的定义 202
13.4.2 团队生成定义
触发器 203
13.4.3 团队生成过程 203
13.4.4 使用团队生成进行
部署 204
13.4.5 部署SQL Server
数据库 205
13.5 小结 206