2008-10-21 4 views
6

각 "모듈"에 대해 ASP.NET configSections 섹션에 저장 한 값이 여러 개 있습니다. 나는 그들이 심지어이 파일에 속하는지조차 궁금해하고있다.이 값은 구성 파일 또는 데이터베이스에 속합니까?

배경은 다음과 같습니다. 배포 된 웹 응용 프로그램의 여러 인스턴스입니다. 모두 동일한 데이터베이스를 사용하지만 자체 설정이 있습니다.

개발과 제작의 차이점은 설정 파일에 들어 있다고 확신합니다. 내가 아는 값 중 일부는 연결 문자열, 사용할 공급자, 디버그 설정 등을 포함해야합니다.

나는 자신의 규칙과 방법으로 모든 공통 부분을 요소로 분해했습니다. 나머지 부분은 각 사이트의 각 모듈에 대한 기타 설정입니다. 나는 확신 해요 일부 옵션은 다음과 같습니다 ModuleA를 들어

  • , 표시/숨기기 옵션 ModuleB를 들어
  • ,이 필드 ModuleC를 들어
  • 에 사용되는 용어, 최종 사용자에게 허용은 무엇입니까 X 작업을 수행하십시오.
+0

:-) 모든 설정을 귀하의 질문에 대답하기 위해 많은 변수를 고려해야하지만, 런타임에 변경 될 수 있습니다. –

답변

4

음 이러한 것은 app.config를 수정하지 않고도 응용 프로그램의 런타임에 변경할 수 있도록하려는 것 같습니다. 내가 따라야 할 엄지 손가락의 한 가지 규칙은 배치 또는 서버 구성을 위해 구성의 모든 것이 있어야한다는 것입니다. 이 경우 귀하의 설정은 응용 프로그램 동작을 수정하는 것으로 보이므로 많은 노력이 들지 않으면 DB로 옮길 것입니다.

+0

데이터베이스 레이아웃에 대한 권장 사항이 있습니까? 데이터베이스에 들어가야한다면 우리는 applicationId, moduleId, key 및 value가있는 단일 테이블을 필드 또는 명시 적으로 정의 된 테이블 (IE : config_moduleA, config_moduleB 등)로 숙고하고 있습니까? –

+0

모듈 ID에 대한 열이있는 단일 테이블. 그런 다음 모듈 또는 추가 모듈의 하위 집합을 쉽게 추가 할 수 있습니다. 또한 백업 및 DB 마이그레이션, 그리고 실질적으로 모든 것을 관리 할 수 ​​있습니다. – gbjbaanb

+0

정말 설정에 달렸으며 구성 가능한 방법에 따라 달라집니다. @gbjbaanb가 한 테이블에서 시작해서 거기서 시작한다고합니다. 행운을 빕니다. – smaclell

1

ModuleA 및 ModuleC는 사용자 프로필 정보 일 수 있습니다. 사용자가 동적 인 것이 아니라 나중에 기능을 추가 할 수 있다면 DB로 이동할 수 있습니다.

ModuleB를 DB에 넣은 앱도 작성했습니다. 양식 레이블과 같은 것들은 DB에 쉽게 갈 수 있습니다. 나중에 모든 사람이 모든 양식 레이블에 콜론을 추가하거나 제거하기로 결정한 경우 모든 텍스트가 DB에 저장되어 있으면 매우 쉬운 방법입니다.

1

값 중 하나를 편집해야하는 상황을 고려하십시오.

값이 web.config에 있으면 해당 파일에 변경 사항을 저장하면 응용 프로그램이 재활용되어 불편을 겪고 현재 사용자를 버리게됩니다. 응용 프로그램이 업무 시간에만 사용되는 인트라넷에있는 경우 문제가 많지 않습니다 (늦게까지 작업 한 사람에게서 성난 전화를받을 수는 있지만). 그러나 잠재적으로 국제 사용자가있는 공개 웹 사이트의 문제.

값이 데이터베이스에 있으면 앱 처리에 영향을 미치지 않습니다.

어느 쪽이든 값이 앱의 RAM에 캐시되는지 (web.config인지) 고려하십시오. 응용 프로그램 변수 또는 캐시에 데이터베이스 값이 있습니까? 그렇다면 변경이 언제 발생하는지 알 수 없습니다. 앱을 다시 시작하지 않는 한.

그리고 적절한 관리자가 변경하려면 어떤 액세스 권한이 필요합니까? 누군가는 web.config 또는 데이터베이스 (및 테이블)를 변경하기 위해 웹 서버 (들)에 액세스해야합니다.

0

몇 가지 질문 : 응용 프로그램의 여러 인스턴스에 대해 동일한 DB를 사용하는 이유는 무엇이며 어떻게 유지 관리에 영향을 줍니까? 향후 성능을 향상시키기 위해 db를 분할하는 옵션이 있습니까? config 모델이 DB 기반의 것보다 더 나은 변화를 지원합니까?

즉, 응용 프로그램 인스턴스에 전역

+1

여러 인스턴스가 동일한 응용 프로그램 및 데이터베이스 서버에서 중앙 호스팅되지만 완전히 다른 설정 집합이 필요합니다. –