4

我目前正在开发一个应用程序,该应用程序最初将安装在具有轻量级数据库(可能是 SqlLite)的客户端计算机上。

一段时间后,我想添加同一软件的网络版本,这样智能客户端就可以与在线版本同步。

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

  1. 同步的最佳方式是什么,它周围有模式吗?
  2. 是否有任何框架可以处理同步?
  3. 有没有我应该从一开始就知道的问题(可能是安全并发)?
  4. 构建这个的最佳方法是什么?

提前谢谢...

4

1 回答 1

1

因此,Microsoft 的 Sync Framework 将对此有所帮助。 介绍

一开始就有几个问题很突出。

如果您要先让数据存在于客户端,然后在稍后同步到服务器,您需要考虑当多个客户端都同步到服务器时会发生什么,尤其是。围绕解决冲突。

当发生冲突时,服务器端会引发一些事件来识别,但您需要决定谁获胜。(一个在服务器上,一个来自传入的客户端)。根据您在此处选择的操作,第二次同步可能会修改客户端数据。

仔细考虑要同步的内容。如果它是一个 contacvts 数据库,仅同步客户姓名和电话号码是否足够好,或者您是否还需要完整的联系历史记录?

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

如果它是一个开票程序,可能只需要上传订单表,所有相关的发票、历史记录、报告表等都在服务器上更新,而不是在客户端更新它们并同步多个表......

于 2010-04-22T08:46:55.240 回答