多语言展示
当前在线:369今日阅读:168今日分享:49

.NET智能版数据访问策略(B)

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