扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共19页)
简介
数据访问一直是开发 Web 应用程序的一个关键问题。几乎每个商业应用程序都需要数据驱动的 Web 页面。由于数据访问如此普遍,开发人员不断地为简单的数据库任务重新生成复杂的代码就显得毫无意义了。开发人员需要从格式各异的不同数据源中快速访问数据。幸运的是,ASP.NET 2.0 中新增的数据访问控件和 ADO.NET 2.0 解决了这一问题。
对于传统的 ASP 和 ASP.NET 1.1 应用程序而言,开发人员不得不创建代码访问和更新数据库,将检索到的数据转换为浏览器识别的 HTML 格式。尽管 Visual Studio .NET 的向导可以帮助完成这个任务,但是要完成诸如分页和排序这样的高级功能,仍需要在后端代码和前端显示之间进行复杂的同步。通常,这样的代码难以维护和同步,特别是在数据库发生更改或需要在页面上显示附加数据的时候。此外,作为数据存储,XML 需要添加大量混有数据访问逻辑的代码。
为了提高开发人员的开发效率和 Web 应用程序的性能,ASP.NET 2.0 通过新增的数据控件中封装的功能,更加灵活地控制数据,从而减少访问和显示数据所需的代码。从传统的数据库到 XML 数据存储,各种各样的数据源都能连接到这些控件。所有数据源都以相似的格式进行处理,大大地降低了开发数据驱动的应用程序的复杂性。
ASP.NET 2.0 需要进行广泛的体系结构改进,以便从内部支持这些功能。新增的数据源对象通过业界认可的最佳方法增加了一个非常可靠的基础结构。现在,大多数复杂的应用程序都可以利用 ASP.NET 2.0 提供的数据访问工具。从体系结构和机制上限制 ASP.NET 1.x 执行的绑定和缓存问题,在 ASP.NET 2.0 中都得以解决了。
Web 应用程序的数据访问
在 .NET Framework 中,通过 ADO.NET API 执行数据访问。API 提供一个抽象层来封装和隐藏直接访问数据库的细节,这些细节有时是很杂乱的。ASP.NET 2.0 Web 应用程序通过提供的一些服务在 ADO.NET 上生成,这些服务用于自动生成与各种类型数据的连接,将用户控件与数据绑定,减少开发数据识别的 Web 应用程序所需的代码数量。
数据访问体系结构
对于 .NET Framework 中的 Web 应用程序,数据访问依赖于两个独立的体系结构层。第一层由执行数据访问所需的框架组件组成。第二层由为程序员提供数据访问功能的 API 和控件组成。从实践的观点看,只需了解能否为特定数据源找到匹配的数据提供程序。
数据访问涉及四个主要的组件:Web 应用程序 (ASP.NET)、数据层 (ADO.NET)、数据提供程序,以及真正的数据源。这些组件之间的关系构成了所有数据识别 Web 应用程序的基础结构。
图 1. 组件体系结构
数据存储
数据存储始于堆栈底部,提供了整个数据访问体系结构的基础。通过 ADO.NET 2.0、ASP.NET 2.0 的新增控件,Web 应用程序能够访问多种数据存储中的数据,包括关系数据库、XML 文件、Web 服务、平面文件,或诸如 Microsoft Excel 这样的电子数据表程序中的数据。实际上,真正的数据源与读取和操作数据所使用的机制关系不大。
数据提供程序
由于具有提供程序模型,ADO.NET 使用一组类和命令与不同的数据源进行交互。提供程序通过定义的一组接口和类挂钩来提供对一个特定数据源的存储和检索功能。这种模型的灵活性使开发人员只需编写一组数据访问代码(使用 ADO.NET)就能够访问多种类型的数据。
在 ASP.NET 2.0 中,除了基本的数据访问之外,提供程序模型实际上还用于多种不同的任务。例如,使用新增的个性化功能存储用户数据时依赖于几类提供程序。因此,实际的提供程序结构是功能依赖的。一个成员提供程序的用途与数据访问提供程序的用途不同。
下表显示组成 ADO.NET 数据提供程序的四个核心对象:
表 1. 一个 ADO.NET 数据提供程序的核心对象
对象 | 描述 |
Connection |
建立到指定资源的连接 |
Command |
对一个数据源执行命令。公开 Parameters, 在 Connection 的 Transaction 范围内执行。 |
DataReader |
从一个数据源读取只进的只读数据流。 |
DataAdapter |
填充一个 DataSet,解析数据源的更新。 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者