如何永久保存C#Winstore Metro应用程序中的用户数据?

时间:2013-01-21 22:12:19

标签: c# windows-runtime windows-store-apps

我的Winstore C#应用程序中有一些用户数据。我刚刚了解到,在安装新版本的应用程序(或用户重新安装应用程序)后,本地商店和应用程序数据将被删除。

如何永久存储数据?可以为用户透明地完成吗?

企业级应用程序如何?您如何访问数据库等更强大的数据?

2 个答案:

答案 0 :(得分:2)

卸载应用程序时删除所有本地数据是Windows应用商店应用程序的预期模式。

如果您想永久存储数据,我建议您考虑构建一个后端数据存储和服务来访问它们。然后,您可以控制服务器端数据,并可以在用户安装应用程序时将数据与用户关联(请注意,如果您计划存储数据而不是在用户卸载应用程序时将其删除,则应该在您的应用程序中调用该数据)应用程序的隐私政策)。

在构建后端服务方面有几个不错的选择,我在目前正在处理的博客系列中探讨了其中的几个:

http://bitly.com/bundles/devhammer/2

该系列涵盖构建后端游戏排行榜服务,该服务将数据存储在Windows Azure上的SQL数据库中(尽管这些概念也适用于您自己托管的服务),使用3个堆栈中的一个:

  1. WCF数据服务
  2. ASP.NET Web API
  3. Windows Azure移动服务
  4. 这三个堆栈中的任何一个都可以让您为应用程序创建一个强大的后端,并且可以跨平台使用。

    关于透明度,您绝对可以使上述服务在功能上对用户透明,但如上所述,对于您计划在卸载应用程序后继续存储数据这一事实也是透明的。甚至可能为用户提供删除数据的选项。 Pete Brown最近发布了一个很好的Windows商店应用隐私政策特征概述,并在帖子中解释了这一点:

    http://10rem.net/blog/2013/01/21/traits-of-a-good-windows-store-app-privacy-policy

    有关Windows应用商店应用开发的详细信息,请注册Generation App

答案 1 :(得分:1)

您可以使用Skydrive或Dropbox之类的东西来存储文件。

编辑*

WinRT中没有数据库访问支持。虽然您可以使用类似SQLite的东西在本地存储数据 - 但它主要用于缓存,并且可以预期您将数据保存在云中的某个位置,因此您仍应将要存储的数据上载到计算机外部的某个位置。

如果您想在您的计算机上存储不会被您的应用删除的文件 - 您可以将它们保存在文档/图片/音乐/视频库中的某个位置,具体取决于它们最适合的位置。