我目前正在开发一个应用程序,该应用程序最初将安装在具有轻量级数据库(可能是 SqlLite)的客户端计算机上。
一段时间后,我想添加同一软件的网络版本,这样智能客户端就可以与在线版本同步。
有没有人做过类似的事情,我想知道:
- 同步的最佳方式是什么,它周围有模式吗?
- 是否有任何框架可以处理同步?
- 有没有我应该从一开始就知道的问题(可能是安全并发)?
- 构建这个的最佳方法是什么?
提前谢谢...
我目前正在开发一个应用程序,该应用程序最初将安装在具有轻量级数据库(可能是 SqlLite)的客户端计算机上。
一段时间后,我想添加同一软件的网络版本,这样智能客户端就可以与在线版本同步。
有没有人做过类似的事情,我想知道:
提前谢谢...
因此,Microsoft 的 Sync Framework 将对此有所帮助。 介绍
一开始就有几个问题很突出。
如果您要先让数据存在于客户端,然后在稍后同步到服务器,您需要考虑当多个客户端都同步到服务器时会发生什么,尤其是。围绕解决冲突。
当发生冲突时,服务器端会引发一些事件来识别,但您需要决定谁获胜。(一个在服务器上,一个来自传入的客户端)。根据您在此处选择的操作,第二次同步可能会修改客户端数据。
仔细考虑要同步的内容。如果它是一个 contacvts 数据库,仅同步客户姓名和电话号码是否足够好,或者您是否还需要完整的联系历史记录?
考虑同步表,使用键值相同的行。即使这是一个带有触发器等的构造表。这使得框架同步一个更简单的过程并且更不容易出错(表需要以不同的顺序同步)。
如果它是一个开票程序,可能只需要上传订单表,所有相关的发票、历史记录、报告表等都在服务器上更新,而不是在客户端更新它们并同步多个表......