c# – 分离的智能客户端同步

我正在处理一个应用程序,该应用程序最初只是安装在具有轻量级数据库的客户机上(可能是SqlLite).

过了一段时间,我想添加同一个软件的网络版本,然后智能客户端将能够与在线版本同步.

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

>同步的最佳方式是什么,周围有模式吗?
>是否有任何框架来处理同步?
>从一开始我是否应该注意到任何问题(可能是安全并发)?
>构建这个的最佳方法是什么?

Thansk提前……

解决方法:

因此,微软同步框架将有助于此. Introduction

几个问题在一开始就站了出来.

如果您要先在客户端上存储数据,然后在某个时间点同步到服务器,则需要考虑当许多客户端都同步到服务器时会发生什么,尤其是解决冲突.

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

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

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

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

上一篇:如何确定需要同步哪部分Java代码?


下一篇:在java中Set元素的同步