ASP.NET MVC에서 상당히 큰 HR 응용 프로그램을 구축하고 있으며 지금까지 컨트롤러가 상당히 커졌습니다. 예를 들어 직원 컨트롤러가 있고 모든 직원보기가 포함됩니다 (개인 정보, 직원 공제, 피부양자 등). 각보기에는 여러 작업 또는 하위보기 (예 : CRUD)가있을 수 있습니다. 각 동작은 비교적 작지만 제어기에는 수십 개의 기능이있을 수 있습니다.거대한 컨트롤러 또는 많은 컨트롤러를 MVC에 두는 것이 좋습니까?
컨트롤러를 분할하는 모범 사례가 있습니까? 수십 개의 뷰가있는 Employee 컨트롤러가있는 대신 각 하위 유형 (예 : EmployeePersonalInfoController, EmployeeDeductionController, EmployeeDependentController)에 대해 하나의 컨트롤러가 있어야할까요?
마지막으로 중요합니까?
내 원래 관심 해명 업데이트
은 CRUD 작업과 함께했다. 예를 들어,에는 EmployeeController에 ...의 생성 및 삭제를 고려
현재 작업을하자
CreateEmployee()
DeleteEmployee()
CreateEmployeeDeduction()
DeleteEmployeeDeduction()
CreateDependent()
DeleteDependent()
etc.
을 컨트롤러가 분리 된 경우 : 첫번째 시나리오에서
EmployeeController
Create()
Delete()
EmployeeDeductionController
Create()
Delete()
EmployeeDependentController
Create()
Delete()
EmployeeBenefitController
Create()
Delete()
etc.
, 우리 ~ 100 화면은 8-10 개의 대형 컨트롤러로 분할됩니다. 두 번째로, 아마 ~ 50 개의 컨트롤러가있을 것입니다.
"부속 유형"이 제 부분에서 가장 좋은 표현인지 확실하지 않습니다. 나는 그 (것)들을 더 많은 것을 창조하는 지역을 (폴더로 그룹화하는), 실행하고 있지 않을 것입니다. 나는 분명히하기 위해 몇 가지 유형의 예제로 질문을 업데이트 할 것이다. 감사. –
실제로 MVC 컨트롤러는 단순히 뷰를 렌더링하는 것 이상의 기능을 수행합니다. 최소한 각 페이지마다 별도의 get 및 post 처리기가 필요합니다. 각각 다른 입력이 필요합니다. 운이 좋으면 렌더 한 뷰 모델이 다시 게시되는 뷰 모델과 같습니다. 포스트에서 컨트롤러는 뷰 모델을 비즈니스 로직 계층으로 전달하기 위해 DTO에 압축을 풀어야하며, 사용자로부터 오는 데이터가 논리적으로 분류되기 때문에 일종의 변환을 수행해야 할 것입니다 비즈니스 로직 계층에 전송되는 것과 반드시 동일하지는 않습니다. – Triynko
처리를 위해 비즈니스 계층에 데이터를 전달한 후에 컨트롤러는 성공 또는 실패 조건을 처리해야합니다. 실패하면 맞춤 데이터 모델 (예 : 데이터를 JSON 문자열로 렌더링)이있는 경우 기본 제공 모델 상태는 쓸모가 없으므로 사용자가 게시 한 내용이 다시 작성되었는지 확인하기 위해 다른 단계를 수행해야합니다. - 디스플레이에 표시됩니다. 성공하면 다음에 사용자를 보낼 위치를 결정해야합니다. 이 모든 것은 그리 중요하지 않으며 비즈니스 로직을 컨트롤러에 넣지 않는 기본 규칙을 따르고 있습니다. 컨트롤러는 사람들이 만들어내는 것처럼 단순하지 않습니다. – Triynko