.Net을 사용하여 수년 동안 엔터프라이즈 애플리케이션을 개발해 왔습니다. 내 앱에는 일반적으로 SQL DB 테이블에 매핑되는 엔터티를 포함하는 도메인 모델이 있습니다. 리포지토리 패턴, 종속성 주입 및 서비스 계층을 사용합니다.
최근에 우리는 MVC 3 프로젝트 작업을 시작했고 어떤 로직을 어디에 둘 것인지에 대해 토론했습니다. 나는 얇은 컨트롤러 / FAT 모델 아키텍처를 건너 왔고 서비스 계층이 어떻게 들어갈 지 궁금했습니다.
옵션 1-모델이 서비스와 대화
컨트롤러는 얇고 모델의 메서드를 호출합니다. 모델은 DB에서 자신을로드하고 저장소 또는 서비스와 통신하는 방법을 "알고"있습니다. 예를 들어 customerModel에는 Load (id) 메서드가 있고 고객과 GetContracts ()와 같은 일부 자식 개체를로드합니다.
옵션 2-컨트롤러가 서비스와 통신
Controller는 서비스에 모델 개체를 검색하도록 요청합니다. 로딩 / 저장 등의 로직은 서비스 계층에 있습니다. 모델은 데이터 만있는 순수 엔티티 모델입니다.
특히 엔터프라이즈 애플리케이션에 대해 이야기 할 때 옵션 1이 더 나은 선택 인 이유는 내 경험에 따르면 우려 사항을 분리하고 모델과 컨트롤러를 가능한 한 얇게 유지하며 비즈니스 로직을 수행하는 전문 서비스 (DB 상호 작용 포함)를 갖도록합니다.
좋은 리소스에 대한 모든 조언과 참조에 감사드립니다.