在Silverlight中保留用户首选项

Jef*_*tes 8 c# asp.net persistence silverlight-2.0 preferences

我正在开发一个Silverlight客户端和相关的ASP.NET Web服务(而不是WCF),我需要实现一些包含用户首选项的功能,例如"喜欢的项目"系统以及他们是否喜欢自动换行.为了获得愉快(而非令人愤怒)的用户体验,我希望在会话中保留这些设置.一项简短的调查表明,有两种主要可能性.

  1. Silverlight隔离存储
  2. ASP.NET可访问的数据库

我意识到选项2可能是最好的选择,因为它确保即使用户禁用Silverlight的独立存储,他们的首选项仍然存在,但我想避免此时维护数据库的负担,我喜欢这个想法即使服务器连接不可用,首选项也可用于加载和编辑.但是,我对合理的论据持开放态度,为什么现在而不是以后可能更喜欢这种打击.

在任一场景中,我正在寻找的是关于实现设置持久性的最佳方法的建议.例如,如果使用了独立存储,我应该使用XML格式还是其他文件布局来保存设置; 如果使用数据库方法,我是否必须设计一个设置表,或者ASP.NET中是否有内置机制来支持这一点,以及如何向客户端提供首选项?

所以:

哪种解决方案是用户偏好持久性的更好解决方案?如何在该解决方案中保留设置,以及客户端如何访问和更新它们?

先前的研究

请注意,我已就此事进行了一些先前的研究,并发现了以下链接,这些链接似乎主张根据您阅读的文章解决方案.

更新

事实证明,微软已经将隔离存储中的设置持久性作为Silverlight的内置部分提供(我在实现替代方案之前不知何故错过了它).我在下面的回答有更多细节.

即使微软提供客户端设置持久性,我仍然保持这个问题的开放性,但这并不一定意味着这是保持用户偏好的最佳方法,我想就此提出更多意见和建议.

Jef*_*tes 2

在进行更多研究并使用isolatedStorage实现我自己的基于XML文件的设置持久性之后,我发现了IsolatedStorageSettings类和IsolatedStorageSettings.ApplicationSettings对象,它是一个键/值集合,专门用于存储特定于用户的应用程序设置。

现在一切似乎都很明显了。当然,从长远来看,使用服务器数据库备份和恢复设置的机制将是对客户端设置持久性的良好增强。