MVC에서는 컨트롤러가 가능한 "얇은"모델인지 확인하고 모델이 최대한 바보인지 확인합니다.
필요한 논리 및 도우미 함수는 별도의 독립형 도우미 클래스에 배치됩니다. 내 테스트도 훨씬 쉬워집니다 (테스트 중입니다. right ?? : D) 컨트롤러 테스트는 컨트롤러의 인스턴스를 만들려고 할 때 HTTP 컨텍스트와 가짜에 대해 생각해야 할 때마다 매우 어렵습니다. http 이것과 저것 그리고 그것의 고통, 그러나 그것의 고의적 인 고통. 컨트롤러는 HTTP와 웹에 밀접하게 연결되어 있기 때문에 모든 것이 필요합니다. 웹 앱의 진입 점입니다.
논리 및 도우미 기능은 웹과 관련이 없습니다. 그들은 전적으로 환경에 구애받지 않습니다 (또는 있어야합니다). 그것만으로는 그들이 같은 장소에 속해 있지 않다고 말할 수 있습니다. 또한 모든 응용 프로그램 논리를 웹이나 특정 웹 구현에 밀접하게 연결하면 절대로 사용할 수 없습니다.
우리는 모든 mvc 모델, 실제 db 엔터티가 아닌 모든 데이터베이스 엔터티, 저장소, 도우미 클래스 및 별도의 독립형 dll의 논리를 사용하여 MVC 사이트를 개발했습니다. 우리는 오직 하나의 웹 사이트 만 가지고 있지만 어쨌든 이렇게했습니다.
몇 달 전에 우리는 몇몇 프린지 시스템과 관련된 몇 가지 데스크탑 앱을 만들라는 요청을 받았습니다. 테스트 된 모든 코드를 쉽게 재사용 할 수 있으므로 쉽게 수행 할 수 있습니다. 코드를 웹 프로젝트에 넣거나 컨트롤러에 넣었다면 결코 그렇게 할 수 없었을 것입니다.