2012-01-13 4 views
2

C# 4 솔루션에 3 개의 프로젝트가 있습니다.C# 솔루션을 어떻게 구성해야합니까?

  • MooDB : 내 도메인의 개체 NHibernate에 매핑, 프리젠 테이션 클래스를 가지고 있습니다.
  • 데이터 : 내가했습니다

    enter image description here

    : 여기

이 스크린 샷의 내 테스트 클래스를 가지고 :은 (NHibernate에 사용) 내 데이터 액세스 레이어 클래스

  • 이 시험을 가지고 내 Test 프로젝트에 app.confighibernate.cfg.xml이 있다는 것을 알았습니다. 이것은 옳은 것처럼 보입니다. 내 Data 프로젝트에 app.config이 없습니다. 내 Data 프로젝트에 log4net을 사용하고 싶기 때문에 문제가 될 수 있지만, app.config이 없으면 구성 할 수 없습니다.

    내 솔루션을 설정하는 가장 좋은 방법은 무엇입니까? 각 프로젝트 또는 솔루션 전체에 대해 app.config이 있어야합니까? 내 Test 프로젝트에 하나가 필요합니까? "모범 사례"에 따라 조직 했습니까?

  • +1

    나는 호스팅 응용 프로그램의 app.config 파일에 연결 문자열 등과 같은 설정을 넣고이를 클래스 라이브러리 (이 경우에는 Data)에 전달하는 경향이 있습니다. 클래스 라이브러리가 응용 프로그램에 특정한 외부 리소스에 의존하게 만드는 것은 나쁜 생각입니다. –

    답변

    3

    일반적으로 가장 높은 계층에 구성 파일이 표시됩니다. 일반적으로 UI 또는 테스트입니다.

    응용 프로그램이 저장소에서 데이터를 가져와야하는 데이터 계층을 지정하기 때문에 이는 적어도 나에게 의미가 있습니다. 테스트 계층은 프로덕션 응용 프로그램과 다른 곳으로 갈 것입니다. 그래서 Data 프로젝트의 설정은 나에게 많은 의미를주지 않을 것입니다 ... 그것은 맨 아래의 레이어를 "구성"하는 최상위 레이어입니다.

    1

    한 곳에서 구성을 변경하려면 기본 프로젝트에서 파일을 구성하고 post-build events을 사용하여 결과 출력 파일을 다른 실행 가능한 프로젝트의 bin 폴더로 복사하십시오.

    주 응용 프로그램에서 사용하는 구성이 단원 테스트에서 사용하려는 구성과 같은지 여부를 고려해야합니다. 그렇지 않다면, 별도의 설정 파일은 절대적으로 괜찮습니다.

    +0

    나를 혼란스럽게하는 것은 설정 파일을 읽을 때 확실하지 않다는 것입니다. RepoTests.cs 및 Run All Tests를 마우스 오른쪽 버튼으로 클릭하면 어떤 설정 파일을 읽을 수 있습니까? 'Test' 프로젝트에있는 파일이나 다른 설정 파일도'Test'가'Data'를 참조한다면 읽을 수 있습니까? –

    +1

    읽을 설정 파일은 실행중인 실행 (또는 테스트) 프로젝트와 관련된 것입니다. 그것은 일반적인 질문 (http://stackoverflow.com/questions/594298/c-sharp-dll-config-file),하지만 당신이 그것에 대해 생각한다면 프로덕션 응용 프로그램을 실행할 때 사용하려는 log4net에 대한 구성은 테스트하는 동안 원하는 것과 다를 가능성이 있습니다. 이것이 설정이 코드가 아닌 설정 파일에서 이루어진 이유입니다. –

    +0

    아, 알겠습니다. 감사합니다. –

    관련 문제