在Windows RT中持续保存数据的最佳实践

时间:2013-02-10 22:35:35

标签: c# windows-8 winrt-xaml

我正在开发一个允许用户输入各种数据的Windows RT应用程序。主要是整数和一些与角色相关的字符串。比如:名字,力量,灵巧等等。

我希望看到的是每个字符保存到自己的文件中,并且立即进行的任何更改都会保存到该字符的文件中,以便在应用程序结束时数据存在。

在加载时,我想在屏幕上填入“新建”和文件夹中找到的字符。目前我专注于加载单个字符并适当更新文件。

我的想法是通过这里的漫游数据:http://msdn.microsoft.com/en-gb/library/windows/apps/hh700362.aspx但这将涉及在加载时将容器中的每个位分别加载到变量中,并且每次更新两次(变量和漫游数据)。

我考虑将它们作为XML加载并保存更改,如示例3中的http://code.msdn.microsoft.com/windowsapps/XML-API-Scenario-Sample-42ce708b,尽管我没有找到一种简单的方法将地图和XML文件映射到使用C#的角色的模板中。

理想情况下,将XML文件保存到漫游数据对于多个设备来说会很好,我可以找到一种方法将XML文件加载到模板中以便加载,但我不确定这是否可行。

做这样的事情的最佳方法是什么?上述想法是否可能?

1 个答案:

答案 0 :(得分:0)

根据数据量,您可以只使用Application or Roaming Settings。两者都有数据大小和类型的限制,但如果它只是几个字符串和整数,它可能就足够了。您可以为每个字符和application data containers创建write all of the properties atomically

或者,使用本地/漫游文件,但请注意,漫游数据也有一个配额,因此您可能需要确定应用可能发送的数据量。另请注意,漫游数据具有延迟并且可能永远不会同步(例如,如果超出配额)。如果您确实需要多个设备并且有大量数据,或者您需要更可靠地同步它,那么下一步就是云(您可以在Azure中使用Windows Azure Mobile Services或其他存储)。

我不知道您的应用程序的具体细节或要求的优先级,我可能会从LocalRoaming Application Data开始,我非常喜欢JSON.NET的易用性用于序列化,它可以通过NuGet轻松添加到您的解决方案中。如果您使用本地文件并构建一些抽象层,那么如果您的应用程序的大小或使用量增加,以后将这些文件移动到云中并不难。