我一直在使用後端數據庫更新幾年的應用程序。整個關鍵在於所有內容都緩存在客戶端上,因此它永遠不需要網絡連接來操作,但是當它確實有連接時,它總是會取得最新的更新。每更新一次應用程序都附帶最新版本的數據庫,我希望它在數據庫更新時只下載最少量的數據。增量更新應用程序數據的最佳方法
我目前使用帶時間戳的表來檢查更新。它看起來像這樣。
ID - Name - Description- Severity - LastUpdated
0 - test.exe - KnownVirus - Critical - 2009-09-11 13:38
1 - test2.exe - Firewall - None - 2009-09-12 14:38
這種方法對於我以前需要的很好,但我期待擴大應用程序的更多功能以使用此類動態方法。所有的數據當前存儲爲XML
,但我不想將完整的XML文件存儲在數據庫中,只傳輸更改的數據。
那麼,你會如何去允許一個相當簡單的方法來存儲數據庫中的動態內容(text/xml/json/xaml),並讓客戶端只下載新的更新?我在想有能處理XML的邏輯直接插入
ID - Data - Revision
15 - XXX - 15
XXX
會像<Content><File>Test.dll<File/><Description>New DLL to load.</Description></Content>
,並會被插入到緩存中,而這顯然是複雜的,因爲我需要加載它們的順序。
已經提到的另一種方法是基於類似於源代碼管理的東西,將版本存儲在文件的根目錄中並計算增量以找出需要發送到客戶端的最小數據量。
任何人有任何建議如何處理這個沒有數據損壞的風險?我還將擴展功能,使我能夠恢復可能的不良修訂,並用新的工作替換它們。
這幾乎是我現在正在做的,只是進一步。我目前使用Web服務作爲後端提供邏輯和數據訪問層。根據你的文章,我想我會簡單地建立在現有的結構上,並採取一些你提供的信息來進一步改進。 – eandersson