2012-01-03 5 views
1

UI 프로젝트와 코드 프로젝트를 사용하여 MVC 프로젝트 구조를 살펴 보았습니다. 예 :ASP.NET MVC UI 프로젝트 + 핵심 프로젝트 분할

http://lostechies.com/jimmybogard/2009/12/09/organizing-asp-net-mvc-solutions/ http://stackoverflow.com/questions/4357911/an-ideal-folder-structure-for-net-mvc 나는 비주얼 웹 개발자 2010 익스프레스하지만 난을이 작업을 수행하려고했습니다

UI 프로젝트에서 다음과 같은 웹 사이트가 아닌 관련 파일 인 .csproj, .csproj.user, 프로젝트 dll 파일 및 프로젝트 pdb 파일이 필요합니다.

두 프로젝트로 나누는 지점은 불필요한 파일을 걸러 낼 필요없이 웹 사이트로 직접 실행할 수있는 UI를 제공합니다.

  • 나는 그것에게 UI 프로젝트 내가 두 번째 프로젝트 제작에서 UI 파일을 삭제
  • 을 나는 첫 번째 프로젝트에서 코드 파일을 삭제
  • 동일한 솔루션에 포함 된 두 번째 프로젝트에 원래 프로젝트를 복사 그것 코드 프로젝트
  • 나는 UI 프로젝트에서 코드 프로젝트에 대한 참조를 추가했다.

내가 잘못 했니? 아니면이 방법의 한계점입니까?

이 구성을 작동시키는 데 도움이되는 추가 세부 정보는 높이 평가할 수 있습니다.

답변

1

프로젝트를 별도의 핵심 + UI 프로젝트로 분리하는 이유는 소스 코드 관련 문제를 명확하게 구분하기 위해서입니다.

CSPROJ 및 CSPROJ.USER 파일 중 두 개의 파일은 VWD 전용입니다. 소스 코드가 아니며 프로젝트를 게시 할 때 배포되지 않습니다.

코어 DLL과 코어 PDB의 다른 두 파일은 각각 런타임 어셈블리와 디버그 파일입니다. 핵심 프로젝트에 작성되고 컴파일 된 코드를 실행할 수 있으려면 UI 프로젝트에서 이에 대한 참조가 필요합니다.

그래서 UI 프로젝트의 bin 폴더에 Core.dll 및 Cord.pdb가 있어도 괜찮으며 SoC를 위반하지 않습니다. csproj 파일은 코드와 아무런 관련이 없습니다. VWD가 프로젝트를 관리 할 수 ​​있도록 코드가 있습니다.

+0

죄송합니다. 내가 언급 한 DLL/PDB 파일은 실제로 코드가 없지만 여전히 3KB DLL을 생성하는 UI 프로젝트입니다. VWD 프로젝트 파일과 관련하여 저는 프로젝트 파일이 사이트 외부에 저장되는 웹 사이트 프로젝트를 여는 다른 방법에 익숙합니다. –

+0

UI 프로젝트가 MVC3 프로젝트 인 경우 코드가 생성됩니다. global.asax 파일을 참조하십시오. 이것은 UI의 dll에 컴파일됩니다. – danludwig

+0

global.asax.cs를 코어 프로젝트의 핵심 DLL로 옮겼습니다. <% @ Application %> 라인 만있는 UI 프로젝트에 global.asax 만 남겨 두었습니다. –

관련 문제