几年来,我一直在开发一个应用程序,我使用后端数据库进行了更新。整个关键是所有内容都缓存在客户端上,因此它永远不需要网络连接来操作,但是当它确实有连接时,它总是会获取最新的更新。每个更新的应用程序都附带最新版本的数据库,我希望它在数据库更新时只下载最少量的数据。
我目前使用带有时间戳的表来检查更新。它看起来像这样。
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>
并且会被插入到缓存中,但这显然会很复杂,因为我需要按顺序加载它们。
已经提到的另一种方法是基于类似于源代码控制的东西,将版本存储在文件的根目录中并计算增量以找出需要发送到客户端的最小数据量。
有人对如何在没有数据损坏风险的情况下解决此问题有任何建议吗?我还将扩展一些功能,使我能够恢复可能不好的修订,并用新的工作替代它们。