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