我的工作Silverlight客户和相关的ASP.NET 网络服务(不WCF),并且我需要执行的某些功能含有用户的偏好,例如一个"最喜爱的商品"系统,以及他们是否想字包装或没有。为了做一个愉快的(而不是令人愤怒)用户经历,我要坚持这些设置跨越会议。一个简短的调查表明,有两种主要可能性。

  1. Silverlight孤立的储存
  2. ASP。网可访问的数据库

我意识到,备选案文2可能是最好的选择,因为它确保即使用户禁止孤立存储企业实现动态it,他们的喜好依然存在,但是我想要避免的重担保持一个数据库,在这个时候,我喜欢这个主意的偏好提供的用于装载和编辑即使在服务器的连接是无法使用。然而,我开到合理的论据,为什么它可能是比较好,采取这一打的现在,而不是以后。

我正在寻找是建议的最佳方式实现设置的持久性,在任何情况。例如,如果孤立存储使用,应该使用XML格式,或一些其他文件的布局,用于持续存在的设置;如果数据库的方法是使用时,我必须要设计一个设置表,或者是有一个内在的机制在ASP.NET 为了支持这一点,以及如何才能服务的偏好的客户吗?

所以:

其解决办法是更好的解决方案用户的首选的持久性?怎么可能设置可持续解决方案,以及如何可能的客户的访问和更新他们吗?

现有的研究

注意,我们进行了一个小小的现有研究该问题和找到下面的链接,它似乎倡导解决方案取决于这篇文章你读。

更新

事实证明,微软已经提供了设置的持续存在孤立的储存作为一个内在的一部分Silverlight(I某种方式错过了它,直到实施之后替代). 我的回答下面 有更多的细节。

我保持的问题打开的,即使微软提供客户端设置的持久性,它并不一定意味着这是最好的方法为持续存在的用户喜好和我想到画布上的更多的意见和建议。

有帮助吗?

解决方案

在调查一些更多和执行我自己的XML文件的基础设置持久性使用 IsolatedStorage, 我发现了 IsolatedStorageSettings 类和 IsolatedStorageSettings.应 对象是一个关键/价值收集具体用于存储用户的具体应用程序的设置。

这一切似乎显而易见的。当然,长期而言,一个机构,用于备份和恢复设置使用的一个服务器数据库将是一个良好的增加这个客户端设置的持久性。

其他提示

我认为,在一般的默认将储存在服务器;只有当有特定的令人信服的理由,试图存在的客户我们应该这样做。你越依靠存储在一个中等你不能控制,更多的风险。

有人说,设置自己的"数据库"侧的参数,我会问,什么样的缺点的数据库?你提到使用XML-是你的数据只有半结构化?如果是这样,为什么不存储XML在SQL数据库?设立这么简单一般不被视为"负担"是通过大多数标准。一个简单的网络的服务可以作为中间人之间的Silverlight客户和所设置的数据库。

如果它是一个重要特征对你的用户访问到他们的喜好的,而离线,然后它看起来像孤立存储的路要走。如果这是更重要的是,用户可能节省的偏好,即使他们关闭了孤立存储(这是一个真正的问题?我会忍不住叫YAGNI在这但是我不是非常有经验的与控平台...)然后你需要主持一个数据库。如果两者都是重要的,那么你就可能看着某种混合解决方案;采用孤立的储存,如果可用,然后回落到一个数据库。

换句话说,我认为需要的应用程序更重要的不是某种抽象的最佳做法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top