현재 대형 응용 프로그램을 개발하고 있습니다. 현재 많은 프로젝트에서 한 가지 해결책이 있습니다 (시간이 흘러도 바뀔 수 있습니다). 나뿐만 디렉토리 구조 설정 한중형/대형 솔루션 - Visual Studio 빌드 프로세스 - 조언 필요
:
\ lib 디렉토리의 \는 (제 3 자 구성 요소를 공유 포함) 빌드 \ 빌드 \ 빈 (출력 디렉터리) 빌드 \ wwwroot에 (웹 응용 프로그램의 출력 디렉토리) config \) src \ (아래 프로젝트의 폴더 포함)
각 프로젝트에서 빌드 위치 (출력 디렉토리)를 ".. \ build \ bin \"으로 설정했습니다. src 디렉토리 위의 build \ bin에 프로젝트를 빌드합니다.
Company.Entities에 는 언급 이 모든 비즈니스 객체 (고객, 주문, 제품) 등 ....
이 Company.Common 클래스를 포함 Company.Common 그 형식 문자열, 날짜, 파일 액세스 등. 회사에 대한 어떤 언급도 포함되어 있지 않습니다. 라이브러리. Company.Data이 참조 3 자 LIB (성 윈저 예를 들어) 이 IRepository, ICustomerRepository, IOrderRepository 등 .... 같은 인터페이스가 포함되어 RepositoryFactory 클래스가
-이라는 방법이있다 "GET () "를 반환하는 Ioc (Castle Windsor)를 사용합니다. 또한 이러한 저장소의 현재 구현을 해결하기위한 IoC가 포함되어 있습니다. Castle.config는 \ config \ 디렉토리에 있으며이 프로젝트에는 "링크로"포함되어 있습니다. 나는 항상 출력 디렉토리
Company.Data.LinqToSql 참조 Company.Data 이 현재 데이터 액세스 라이브러리에 복사를 설정했습니다. 그것은 참조 Company.Data 비즈니스 로직 계층에 IOC의
Company.Logic 인스턴스화 것 - GetProductById (문자열 ID) 등의 방법이있다 -. 차례이 Repository.Get() GetById (ID)를 호출 - 예 :
회사 테스터 자명하면 ... 앞으로 더 많이 활용할 것입니다.
Company.Web 참조 Company.Logic, Company.Entities, Company.Common 웹 UI 층 -이 주요 웹 사이트입니다.
좋아, 잘하면 내 프로젝트 등의 현재 아키텍처에 대한 약간의 배경을 제공합니다.
현재 빌드/wwwroot로 빌드하는 Company.Web을 제외하고는 모든 것을 thie 빌드/bin 디렉토리에 구축하고 있습니다 (여기에 bin 디렉토리가 추가됩니다). 그런 다음 빌드 후 이벤트를 복사합니다. 스타일 시트, 이미지, js 파일 등 .... src/Company.Web 위치에서 빌드/wwwroot 디버깅에 IIS를 사용하도록 Visual Studio를 구성하고 iis 가상 디렉터리를 가리 키도록 설정했습니다. 내 빌드/wwwroot 폴더.
그러나 ... 특정 필요한 파일은 wwwroot에/bin 디렉토리에 만들어지는 것이 아니다 등 - Company.Data.LinqToSql - 이것은 proejcts에 의해 참조되지 않지만, IOC의
사용하여 인스턴스화 이후 어떻게 내 개발 프로세스/프로젝트 구조를 개선하여 개발에 도움이 되었습니까? 나는 현명한 제안을 모두 "돋보이게"할 것입니다.