일반적인 MVC 응용 프로그램에서 우리는 여러 곳에서 유효성 검사를 수행합니다. 이는 클라이언트 측, 제어기에서, 그리고 다시 데이터 레벨에서 일어날 수 있습니다. 비즈니스 계층이있는 경우 여기에도 추가 유효성 검사가 있습니다.계층/계층에서 유효성 검사를 통합하는 방법
우리는 DRY를 위반하지 않도록 모든 것을 통합하고 유효성 검사가 변경 될 때 악몽을 낳습니다. 하위 질문은 모든 레이어에서 모델을 기반으로 동적 유효성 검사를 활성화하는 방법입니다.
예 : 데이터 주석 속성이있는 ViewModel이있을 수 있습니다. MVC2/3에서는 클라이언트 측 및 컨트롤러 유효성 검사를 통합하지만 데이터 모델을 뷰 모델로 사용하지 않는 한 데이터 모델에는 도움이되지 않습니다. 이는 좋은 방법이 아닙니다.
즉, 동일한 유효성 검사를 데이터 모델 및 비즈니스 계층에 추가하여 복제해야합니다. 또한 데이터 모델은보기 모델과 약간 다른 유효성 검사 요구 사항을 가질 수 있습니다 (예 : 전체 데이터 레코드가 여러 단계의 마법사보기 모델로 구성 될 수 있으며 전체 레코드 만 저장할 수 있음).
일부 사용자는 부분 클래스가있는 EF 나 L2S와 같은 ORM을 사용할 때 데이터 모델에 복잡한 유효성 검사를 추가합니다. 올바른 경로인지는 확실하지 않습니다. 주로 데이터 지향 (데이터 입력 유형 앱) 인 앱에서 작동하지만 비 데이터 비즈니스 로직이 더 많은 앱에서는 작동하지 않습니다.
내가 원하는 것은 모든 레이어에 대한 유효성 검사를 생성하거나 단일 유효성 검사 시스템에 연결하는 방법입니다. 존재하는 것과 비슷한 것이 있습니까?
어쩌면 레이어 사이의 유효성 검사 규칙을 번역하기 위해 Automapper와 같은 것이 있어야합니다. – Benjamin