代码之家  ›  专栏  ›  技术社区  ›  Artur Carvalho

Silverlight同步

  •  0
  • Artur Carvalho  · 技术社区  · 15 年前

    我正在开发一个Silverlight应用程序,我需要在可以脱机的不同Silverlight实例中同步一个列表。我将有一个在线服务器来同步它们。

    所以我们可以想象:

    PC1:A1 A2 A3

    PC2:A1 A2(删除A3)

    服务器:a1 a2 a3(删除a3以反映 PC2,然后更新PC1以同时删除)

    它也必须反映项目的重新排序。我想将它与Silverlight联机和脱机(浏览器外)一起使用。

    你们中有人解决过类似的问题吗?什么是好的方法?

    谢谢您, 阿图尔

    1 回复  |  直到 15 年前
        1
  •  2
  •   Scott Whitlock    15 年前

    在一个正常的断开连接的环境中,您可以使用类似同步服务之类的东西来处理这个问题,但在Silverlight客户机上这有点重。

    我先给列表中的每个项目一个guid。然后,我将在每个客户机和服务器上维护列表的插入、更新和删除日志。然后,每次客户端连接到服务器时,都必须进行合并同步。在这种情况下,您必须检测和处理冲突:

    • 有人编辑项目,而有人删除它
    • 两个客户端同时编辑一个项目

    您处理项目重新排序的要求增加了一些复杂性。您可能希望将重新排序记录为“在项目x之前移动”或“在项目x之后移动”操作,而不是更新列表中所有项目的所有索引。