Microsoft .NET Compact Framework 数据访问策略(转)

Andreas Sjstrm
businessanyplace.net

2003 年 6 月

适用于:
Microsoft® .NET Compact Framework 1.0
Microsoft SQL Server™ 2000 Windows® CE Edition
Microsoft Windows Powered Pocket PC

摘要:.NET Compact Framework 能以多种不同的方式支持移动设备和服务器之间的通讯及应用程序数据交换。由于每种方法的特点有所不同,因此在设计、开发和部署解决方案之前先定义一个可靠的数据访问策略非常重要。本文讨论了两个重要选项:基于 XML 的访问策略和基于 SQL Server CE 的访问策略。定义数据访问策略具有重大意义,因为它会提高开发和部署的效率并减少出错的可能性。

简介

从设备的角度,本文的讨论重点在于 Pocket PC 平台。但是,Microsoft® .NET Compact Framework 也可以在非 Pocket PC 的 Microsoft Windows® CE .NET 设备上运行。此处讨论的 .NET Compact Framework 相关概念也可以适用于这些设备。

.NET Compact Framework 数据访问策略涉及许多方面。关键方面是连接,其他各个方面都取决于此。由于 Pocket PC 既可以联机使用也可以脱机使用,因此数据访问策略需要定义如何:

  • 在联机时管理和使用远程服务器上的数据
  • 在脱机时存储和使用数据
  • 在 Pocket PC 从先前的脱机状态进入联机状态时交换数据

在数据访问策略环境中,建立标准术语非常重要。标准术语的建立对于如何定义 Pocket PC 和服务器之间的数据交换尤其重要。从概念的角度,交换数据的方法有两种:数据同步和数据传输。

数据同步支持双向的数据交换,并实现确保两端数据相同的功能。在很多情况下,同一数据可以在 Pocket PC 处于脱机状态时在多个地方进行修改,然后与服务器同步。因此,同步功能常常需要包含冲突解决功能,以处理在断开连接的 Pocket PC 返回到联机状态以同步数据时发生的并发性问题。下面的示例说明了四处走动的推销员在脱机状态下实地更新订单时发生的这种情况。在推销员同步更改之前,一位联机客户服务代表也对同一订单进行更新。设计周到的冲突解决机制能够在出现冲突时决定应采取何种措施,例如,基于同步的角色或时间使四处走动的推销员覆盖客户服务代表,或者系统是否应通知用户或用户组出现了冲突。

数据传输也支持双向的数据交换,但是却没有用于确保两端数据相同的功能,也没有冲突解决。在很多情况下,数据传输是有效的方法,并且不需要数据同步。数据传输的示例有:将静态引用数据从服务器传输到 Pocket PC、仅将新收集的数据从 Pocket PC 传输到服务器、以及将明确引入和引出或分段到单个用户的数据传输到 Pocket PC 或从 Pocket PC 传出,并在数据被引出或由特定用户拥有时在服务器上将其标为只读数据。

在这一点上,术语“数据同步”和“数据传输”反应了它们真实的含义,而在同时包含这两个术语时,则使用“数据交换”。

数据访问策略的各个方面

在根本上,.NET Compact Framework 数据访问策略涉及两个方面:

  1. 如何在 Pocket PC 上存储数据。从应用程序的角度来看,数据可以保存在关系数据库(例如 Microsoft SQL Server™ CE)、本地文件(例如通常通过 DataSets 管理的 XML 文件)以及在应用程序终止时配置的基于会话的内存内数据结构中。
  2. 如何与服务器交换数据。Pocket PC 和服务器之间数据交换的执行方式根据进行通信的 Pocket PC 层与服务器层的不同而有所差异。图 1 说明了 Pocket PC 中的三个层以及服务器中的三个层。

166-50984.gif

图 1:设备和服务器中的应用程序层

.NET Compact Framework 自身包含的数据交换选项包括:

  • Pocket PC 数据库对服务器数据库:Pocket PC 数据库与服务器数据库直接交换数据。此选项在涉及很少业务逻辑或不涉及业务逻辑以及在数据量很大的情况下有效,并使用 SQL Server CE 的远程数据访问(英文)和合并复制(英文)功能来执行。如果要求进行数据同步而不仅仅是数据传输,则合并复制功能可以提供在服务器端的 SQL Server 调节程序中执行的内部冲突解决。
  • Pocket PC 组件对服务器组件:Pocket PC 应用程序与服务器上的组件进行通信。此选项能使业务逻辑(作为 Web 服务 [英文] 执行)成为数据交换的一部分。当数据保存在本地的 XML 文件或 SQL Server CE 数据库中时,均可使用此选项。
  • Pocket PC 组件对服务器数据库:Pocket PC 直接连接到服务器数据库。在 Pocket PC 应用程序需要管理远程数据库的大量数据,而不必将数据放入 Pocket PC,以及业务逻辑不是主要的考虑因素时,经常使用此选项。此选项使用 System.Data.SqlClient(英文)命名空间执行,在数据保存在本地的 XML 文件和 SQL Server CE 数据库时均可使用。
  • 仅在服务器上交换数据: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 客户端代理和服务器代理将执行有效的数据压缩,而且数据在到达最终目的地之前必须经过的进程要少得多。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-126343/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-126343/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值