2009-06-19 65 views
0

我開發一個Silverlight應用程序,我需要在不同的silverlight實例中同步列表,這些實例可以脫機。我將有一個在線服務器來同步它們。Silverlight同步

所以我們可以想像這樣的:

PC1:A1 A2 A3

PC2:A1 A2(A3刪除)

服務器:A1 A2 A3(刪除A3反映 PC2和然後更新pc1也刪除)

它也必須反映項目的重新排序。我希望在線和離線使用silverlight(在瀏覽器外)。

有沒有人解決了類似這個問題?有什麼好方法呢?

謝謝 阿圖爾

+0

你能澄清你的問題嗎?我不完全確定「不同的silverlight實例可以脫機」的意思。 – 2009-06-19 16:23:51

+0

@Jason:我認爲Artur意味着他有兩個用戶運行Silverlight應用程序編輯同一個列表。他希望編輯立即發生在客戶端,即使沒有連接到服務器。當通信恢復時,他想要將該列表與服務器同步,然後其他客戶端應該看到更改。 – 2009-06-19 16:34:18

回答

2

在你使用類似同步服務來處理這個正常斷開連接的環境,但是這是一個有點沉重重量有Silverlight客戶端上。

我首先給列表中的每個項目一個GUID。然後,我會在每個客戶端和服務器上維護插入,更新和刪除列表的日誌。然後每次客戶端連接到服務器時,您都必須執行合併同步。在這種情況下,你必須檢測和處理衝突:

  • 別人在編輯一個項目,而其他人將其刪除
  • 兩個客戶端編輯項目同時

你的要求來處理的重新排序項目增加一些複雜性。您可能希望將重新排序記錄爲「在項目x之前移動」或「在項目x之後移動」操作,而不是更新列表中所有項目的所有索引。