我的 Winstore C# 应用程序中有一些用户数据。我刚刚了解到,安装新版本的应用程序(或用户重新安装应用程序)后,本地商店和应用程序数据将被删除。
如何永久存储数据?它可以为用户透明地完成吗?
企业级应用程序怎么样——你们如何访问更强大的数据,如数据库?
我的 Winstore C# 应用程序中有一些用户数据。我刚刚了解到,安装新版本的应用程序(或用户重新安装应用程序)后,本地商店和应用程序数据将被删除。
如何永久存储数据?它可以为用户透明地完成吗?
企业级应用程序怎么样——你们如何访问更强大的数据,如数据库?
卸载应用程序时删除所有本地数据是 Windows 应用商店应用程序的预期模式。
如果您想永久存储数据,我的建议是您考虑构建一个后端数据存储和服务来访问它们。然后您控制服务器端数据,并可以在用户安装您的应用程序时将数据与用户关联(请注意,如果您计划存储数据而不是在用户卸载应用程序时将其删除,您可能应该在您的应用程序的隐私政策)。
在构建后端服务方面有几个不错的选择,我在我目前正在处理的博客系列中探讨了其中的几个:
http://bitly.com/bundles/devhammer/2
该系列涵盖了构建一个后端游戏排行榜服务,该服务将数据存储在 Windows Azure 上的 SQL 数据库中(尽管这些概念也适用于您自己托管的服务),使用 3 个堆栈之一:
这三个堆栈中的任何一个都将允许您为您的应用程序创建一个强大的后端,并且可以跨平台使用。
关于透明度,您绝对可以使上述服务在功能上对用户透明,但如上所述,最好对您计划在卸载应用程序后继续存储数据这一事实保持透明,也许甚至为用户提供删除数据的选项。皮特布朗最近发布了一个很好的 Windows 应用商店应用程序隐私政策特征的概述,并在帖子中解决了这个问题:
http://10rem.net/blog/2013/01/21/traits-of-a-good-windows-store-app-privacy-policy
有关 Windows 应用商店应用开发的更多信息,请注册Generation App。
您可以使用 Skydrive 或 Dropbox 之类的工具来存储文件。
编辑*
WinRT 中不支持数据库访问。虽然您可以使用 SQLite 之类的东西在本地存储数据 - 它主要用于缓存,并且预计您将数据保存在云中的某个位置,因此您仍然应该上传您想要存储在机器外部某处的数据。
如果您想在您的计算机上存储不会被您的应用程序删除的文件 - 您可以将它们保存在文档/图片/音乐/视频库中的某个位置,具体取决于它们最适合的位置。