2008-10-28 3 views
1

여기에는 몇 가지 질문이 있지만 이에 대한 정확한 질문은 다루지 않았습니다.사용자/사이트 설정에 액세스하는 가장 좋은 방법

사이트 설정에 대한

,이 데이터베이스에 저장되어있는 경우는 작업을 수행합니다

  1. 때마다 누군가가 로그인
  2. 에 세션 변수에 요청을
  3. 저장을하게 DB를 받아옵니다? ??????

사용자 별 설정은 사이트 설정과 동일합니까 ??

모든 지침과 모범 사례에 크게 감사드립니다. 여러 사이트가 있고 자주 응용 프로그램 자체에 의해 변경됩니다 응용 프로그램을 제작하는 경우에만

건배

답변

1

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 시간 후에 캐시에서 항목을 던지기의 메모리 절약을 동적 로딩 선 (善)을 얻을 것이고, 플러시와 설정을 수정할 때 필요한 다시 다음 고려하십시오.

+0

사이트 별 설정 또는 개별 사용자 설정에 해당됩니까 ?? 캐시 대신 세션 개체에 사용자 설정을 저장 하시겠습니까 ?? – Schotime

+0

예, 세션의 사용자 설정을 캐시하십시오. 래퍼 클래스가 Session에 넣기 위해 Serializable인지 확인하십시오 –

0

은 일반적으로 내가 web.config 파일에서 사이트 설정을 둘 것입니다, 보통 그다지 의미가 없습니다 처음에는 데이터베이스에.

사용자 별 설정의 경우 기본 asp.net 프로필 공급자로 시작하여 데이터베이스에 설정을 저장하고 요청 당 한 번 사용자 설정 재검색을 관리하고 업데이트를 최소화하기 위해 마지막에 저장합니다. DB 호출 수. 성능 문제가 발생하기 시작하면 캐싱 및/또는 특정 요구에 맞게 프로필 공급자를 확장 할 수 있습니다.

1

어느 쪽이든 구현 될 수있는 환경 설정을 검색하기위한 모듈을 만드는 것이 좋습니다. 그리고 나서 처음 구현할 때마다 더 쉽게 데이터베이스를 방문합니다. 성능. 제가있는 경우 모듈에 캐싱을 추가하여 데이터베이스 통신량을 줄이십시오.

관련 문제