我正在开发一个silverlight应用程序,我需要在可以脱机的不同silverlight实例中同步列表。我将在线服务器同步它们。
所以我们可以想象这个:
pc1:A1 A2 A3
pc2:A1 A2(A3删除)
服务器:A1 A2 A3(删除A3以反映 pc2然后更新pc1也删除)
它也必须反映物品的重新排序。我想在线和离线(在浏览器之外)使用Silverlight。
你们有没有解决过类似这个的问题?有什么好方法呢?
谢谢你, 阿图尔
答案 0 :(得分:2)
在正常的断开连接的环境中,你会使用像Synchronization Services这样的东西来处理这个问题,但这对Silverlight客户端来说有点重要。
我首先给列表中的每个项目一个GUID。然后,我将在每个客户端和服务器上维护列表的插入,更新和删除日志。然后,每次客户端连接到服务器时,您都必须进行合并同步。在这种情况下,您必须检测并处理冲突:
您处理物品重新排序的要求增加了一些复杂性。您可能希望将重新排序记录为“在项目x之前移动”或“在项目x之后移动”操作,而不是更新列表中所有项目的所有索引。