2015-08-27 50 views
0

我正在使用MVVM模式(使用Galaxoft MVVMLight庫)的WPF應用程序。我的應用程序通過將JSON數據解析爲DataModels(使用RestSharp庫和Newtosnoft Json.NET)從遠程API(服務器)加載數據。我需要允許用戶直接從應用程序修改APP(所有CRUD操作)中的數據,但我的應用程序需要在離線模式下以及在互聯網連接速度較慢的環境下也能夠響應。WPF MVVM和遠程API - 離線模式

現在我已經實現了使用我的DataController類,它註冊到我的ViewModels生成的不同消息(用於消息傳遞,我正在使用MVVMLight Messenger)。因此,在用戶例如更改實體A後,我發送RequestToUpdate消息,DataController處理它並:1)更新分配給實體A的DataModel, 2)發送消息UpdateComplete(因此所有ViewModel都有此實體A處理此消息並進行更新3)DataController嘗試異步更新遠程API上的實體(每個DataModel都有一個DateTime?屬性SyncedToServer,因此如果遠程請求失敗 - 用戶處於脫機模式,我將此屬性設置爲空,否則我將它設置爲完成同步的時間)。

應用程序恢復聯機後,它遍歷所有DataModel並檢查它們是否是SyncedToServer,如果不是,它會嘗試重新同步它。

有沒有更好的模式/庫來實現我的應用程序在離線和惡劣互聯網環境下的響應和可靠?

回答