2010-02-27 97 views
4

我正在使用轻量级数据库(可能是SqlLite)在最初刚刚安装在客户端计算机上的分钟上处理应用程序。独立智能客户端同步

过了一段时间我想添加同一款软件的网页版本,然后智能客户端就可以与在线版本同步了。

有没有人做过类似的事情,我希望知道:

  1. 什么是同步的最佳方式,是有它周围的模式?
  2. 是否有任何框架来处理同步?
  3. 是否有任何问题,我应该从一开始就知道(也许安全并发)?
  4. 建筑师的最佳方式是什么?

Thansk提前...

+0

智能客户端是否与Web服务器位于同一LAN中?或者您是否期望位于不同地点的许多智能客户端和单个Web服务器安装? – Timores

+0

他们不会在同一个网络上,它将通过互联网与人们从网站下载应用程序。 – Burt

回答

1

所以,微软的同步框架将有助于这一点。 Introduction

几个问题在一开始就站在正确的位置。

如果您打算首先在客户端上存在数据,然后在稍后的某个时间点同步到服务器,则需要考虑大量客户端全部同步到服务器时发生的情况,围绕冲突解决。

在服务器端发生了一些事件,以确定发生冲突时的情况,但您需要决定谁胜出。 (一个在服务器上,一个来自客户端)。根据您选择在此处执行的操作,第二次同步可能会修改客户端数据。

仔细考虑要同步的内容。如果它是一个联系数据库,是否足以让客户姓名和电话号码同步,还是需要整个联系记录?

从同步表的角度考虑,使用键值都相同的行。即使这是一个带有触发器的构造表格,这会使框架同步一个更简单的过程,并且不易出错(表格需要以不同的顺序同步)。

如果需要开具发票计划,可能只需要上载订单表,并且所有相关的发票,历史记录,报表等都在服务器上更新,而不是在客户端上更新它们并同步多个表。 ..

+0

我一直在为几个项目使用Microsoft Sync Framework,我认为这是一个不错的选择。对于轻量级数据库,我建议使用SqlCE,因为这是由开箱即用的框架支持的。 – Cornelius