| |
.NET智能版数据访问策略 |
|
时间: 2003-08-29 来自:微软 |
 |
|
数据访问策略的各个方面
在根本上,.NET Compact Framework 数据访问策略涉及两个方面:
1、如何在 Pocket PC 上存储数据。从应用程序的角度来看,数据可以保存在关系数据库(例如 Microsoft SQL Server? CE)、本地文件(例如通常通过 DataSets 管理的 XML 文件)以及在应用程序终止时配置的基于会话的内存内数据结构中。
2、如何与服务器交换数据。Pocket PC 和服务器之间数据交换的执行方式根据进行通信的 Pocket PC 层与服务器层的不同而有所差异。图 1 说明了 Pocket PC 中的三个层以及服务器中的三个层。
 图 1:设备和服务器中的应用程序层
.NET Compact Framework 自身包含的数据交换选项包括:
1、Pocket PC 数据库对服务器数据库:Pocket PC 数据库与服务器数据库直接交换数据。此选项在涉及很少业务逻辑或不涉及业务逻辑以及在数据量很大的情况下有效,并使用 SQL Server CE 的远程数据访问(英文)和合并复制(英文)功能来执行。如果要求进行数据同步而不仅仅是数据传输,则合并复制功能可以提供在服务器端的 SQL Server 调节程序中执行的内部冲突解决。
2、Pocket PC 组件对服务器组件:Pocket PC 应用程序与服务器上的组件进行通信。此选项能使业务逻辑(作为 Web 服务 [英文] 执行)成为数据交换的一部分。当数据保存在本地的 XML 文件或 SQL Server CE 数据库中时,均可使用此选项。
3、Pocket PC 组件对服务器数据库:Pocket PC 直接连接到服务器数据库。在 Pocket PC 应用程序需要管理远程数据库的大量数据,而不必将数据放入 Pocket PC,以及业务逻辑不是主要的考虑因素时,经常使用此选项。此选项使用 System.Data.SqlClient(英文)命名空间执行,在数据保存在本地的 XML 文件和 SQL Server CE 数据库时均可使用。
4、仅在服务器上交换数据:Pocket PC 应用程序用户界面元素可以直接连接到服务器端的组件或作为使用 Pocket PC Web 浏览器的 Web 应用程序执行。显然,这要求 Pocket PC 始终连接到服务器并需要足够的带宽。该选项可行的实例是地理环境受限制、但可以实现 WiFi 网络的情况,例如在仓库、保健机构、办公室中等等。此选项不要求将所有数据存储在 Pocket PC 本地。
在确定如何处理“如何存储数据”和“如何交换数据”这两个方面之前,必须了解或建立某些基本条件:数据特性、连接和系统结构。
数据特性
解决方案的数据特性显示了以下重要信息:
1、要存储在 Pocket PC 上的静态数据及事务性数据的量:如果要存储在 Pocket PC 上的数据量少(在本例中为少于 50 至 100 kb),则数据可以存储在本地的 XML 文件中。如果数据量较大,则 SQL Server CE 将提供较高的性能及可靠性。原因是,将使用 SQL Server CE 查询引擎访问数据,该查询引擎支持具有更高性能和可管理性的结构查询语言 (SQL)。 2、要与服务器交换的事务性数据的量:如果要在服务器和 Pocket PC 之间交换的事务性数据的量少(例如少于 500 kb 至 1 Mb),则可使用 Web 服务将数据作为 XML 传递。如果数据量较多,则远程数据访问和合并复制功能将提供较高的性能。原因是,SQL Server CE 客户端代理和服务器代理将执行有效的数据压缩,而且数据在到达最终目的地之前必须经过的进程要少得多。例如,在使用远程数据访问将数据从 Pocket PC 传输到服务器时,数据无需经过 Pocket PC 端的 OLEDB CE、CLR/NET CF、SQL Server CE 数据提供程序和 ADO.NET 层,当数据传输到服务器时,也无需经过服务器上相应的这些程序。而是,数据可以从客户端代理直接传递到服务器代理,也可以通过 Internet Information Server 直接传递到远程 SQL Server。
请务必注意,如果数据被存储为本地 XML 文件,则可以使用 Web 服务进行数据交换,如果数据存储在 SQL Server CE 中,也可能使用 Web 服务,而不是远程数据访问和合并复制。其原因包括使用了业务逻辑和现有的系统结构策略(可能适合)。
连接
解决方案的连接方面涉及 Pocket PC 联机时的可用带宽以及 Pocket PC 的联机频率问题。这些因素有时可以作为前提条件给定,有时也可以进行定义和控制。
由于 XML 通常包含大量未经压缩的重复元数据,因此,对于相同的数据,Web 服务比 SQL Server CE 远程数据访问和合并复制需要更多的带宽。但事实表明,当需要交换大量数据时,调用的是远程数据访问和合并复制的功能设置。另外,在数据交换频率低时也经常使用这两种方法,这可能会提高需要交换的数据量。这意味着,在现实中,SQL Server CE 远程数据访问和合并复制常用于高带宽的情况,而 Web 服务常用于低带宽的情况。因此,在使用 Web 服务时,“聊天式”(大量小请求)设计比“区块式”(少量大请求)设计更适合。
|
|
|
|
|
|
|
|