已经有几个问题,这种处理这个但不是复盖我确切的问题,所以在这里,我们走。

网站的设置,如果这些存储在数据库做你:

  1. 检索他们的数据库,每次有人让一个请求
  2. 它们存储在一个会议变量上登录
  3. ???????

对用户的具体设置,我做相同的作为网站的设置??

任何指导/最佳做法,将不胜感激。

欢呼

有帮助吗?

解决方案

我更喜欢一种办法喜欢Glomek提出了...缓存设置在WebCache将大大提高速度的访问。考虑以下几点:

    #region Data Access

private string GetSettingsFromDb(string settingName)
{
    return "";
}
private Dictionary<string,string> GetSettingsFromDb()
{
    return new Dictionary<string, string>();
}

#endregion

private const string KEY_SETTING1 = "Setting1";
public string Setting1
{
    get
    {
        if (Cache.Get(KEY_SETTING1) != null)
            return Cache.Get(KEY_SETTING1).ToString();

        Setting1 = GetSettingsFromDb(KEY_SETTING1);

        return Setting1;

    } 
    set
    {
        Cache.Remove(KEY_SETTING1);
        Cache.Insert(KEY_SETTING1, value, null, Cache.NoAbsoluteExpiration, TimeSpan.FromHours(2));
    }
}

private Cache Cache { get { return HttpContext.Current.Cache; } }

你会获得的动态加载善、记忆保护的折腾项目的高速缓存后2小时不使用和冲洗和重装需要时设置的修改。

其他提示

我建议建立一个模块,用于检索的偏好,可以实施的无论哪种方式,那么对于你的第一个实施打击的数据库,每次由于这是更加容易。如果你有性能的问题,加缓存模块以减少数据库业务。

通常我会把网站设在网络上。配置文件,除非你建立一个应用程序,有多个地点并得到改变通过应用自身的常见,它通常没有意义,以把它放在数据库。

对用户的具体设置,我会看到开始与默认asp.net 配置文件提供将储存在数据库中的设置和管理retrival的用户设置的每一次请求,保存更新,以结束以尽量减少数据库的电话。一旦你开始打击性能的问题可以考虑延伸的配置文件提供缓存和/或您的具体需要。

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