좋아, 그래서 MVC, EF4, 저장소 패턴, UoW, 서비스 레이어 등에 대한 모든 종류의 멋진 정보를 가져 왔고 지금은 함께 정리하려고 시도 할 것입니다.ASP.NET MVC Application Design
제 질문은 어떻게 분리해야합니까? 이 같은
내가 생각 프로젝트 :
1) 응용 프로그램 - MVC 응용 프로그램
2) 저장소 계층 3) 엔티티 - EF4/부분 엔티티 클래스
어떤 제안이 좋은 것!
감사합니다, 샘
좋아, 그래서 MVC, EF4, 저장소 패턴, UoW, 서비스 레이어 등에 대한 모든 종류의 멋진 정보를 가져 왔고 지금은 함께 정리하려고 시도 할 것입니다.ASP.NET MVC Application Design
제 질문은 어떻게 분리해야합니까? 이 같은
내가 생각 프로젝트 :
1) 응용 프로그램 - MVC 응용 프로그램
2) 저장소 계층 3) 엔티티 - EF4/부분 엔티티 클래스
어떤 제안이 좋은 것!
감사합니다, 샘
다음은 응용 프로그램을 구조화 할 수있는 방법에 대한 한 가지 예입니다 :
이 층의 물리적 거리를 나타낼 수의 도메인 객체)
내가 볼 수있는 표본을 가지고 있니? 나는 1 & 2에서 약간 혼란 스럽습니다. 조금 더 자세히 설명해 주시겠습니까? 또한 서비스 계층은 EF로 생성 된 객체로 작업하고 있습니까? 도메인 객체가 EF 생성 객체입니까? - 감사!! – Sam
@Sam Striano, 내가 작성한 샘플 MVC 프로젝트 구조는 다음과 같습니다 (서비스 계층 => 컨트롤러는 저장소를 호출하지 않습니다) : https://github.com/darind/samplemvc. 정교하게 노력하자. 서비스 계층은 EF 생성 객체로 작동하지 않는다. 1에서 정의한 도메인 모델로 작업하고 있습니다. EF 객체는 EF 특정 항목으로 오염되어 있습니다 (코드 우선을 사용하지 않는 한 EF 코드 첫 번째 모델이 포인트 1이됩니다). 모델은 사용중인 데이터 액세스 기술과 관련되어서는 안됩니다. 자동 생성 된 EF 클래스는 절대로 각 레이어의 경계를 벗어나서는 안됩니다. –
샘플 응용 프로그램 구조에서 EF는 어디에 적합하고 서비스 계층은 어디에 있습니까? - 감사!! – Sam
배포 또는 코드 공유와 같은 물리적 인 이유가있을 때까지 코드를 물리적으로 분리하지 마십시오. 폴더와 네임 스페이스를 사용하십시오.
프로젝트를 시작할 때 별도의 프로젝트를 만드는 것이 정말 쉽습니다. 그것은 코드에서 좋은 분리를 시행하고 (레이어 간 상호 의존성이 없음) 잠재적 인 리팩토링 두통을 줄여줍니다. 전이 일을하지 않을 이유가 없습니다. 또한 TDD를 수행하는 경우 끊임없이 재구성하여 개발주기를 가속화하거나 생각 프로세스를 자주 방해하지 않는 코드가 적습니다. – Ryan
나는 이걸 처음 겪었고, 내가 찾은 최선의 접근 방식은 S#arp Architecture입니다.
우수한 템플릿은 프로젝트 스캐 폴딩을 생성하며 실제 프로젝트 분리가 필요한 이유에 대한 좋은 설명이됩니다. Good argument here. Theyre 튜토리얼은이 모델을 가진 TDD가 어떻게 산들 바람인지 보여줍니다.
이 모델의 장점은 EF를 사용하고 싶다면 NHibernate를 스왑하기 위해 EF를 사용하려는 경우 걱정거리를 분리하는 것입니다.
이것은 MVC 패턴에 익숙하지 않고 올바른 아키텍처에 대한 지식을 더 얻고 자하는 사람들에게 큰 질문입니다. 나는 그 대답을 고대하고있다 – stephen776