2010-06-10 3 views
9

ASP.NET MVC를 Entity Framework POCO 클래스 및 FluentValidation 프레임 워크와 함께 사용하고 있습니다. 그것은 잘 작동하고 유효성 검사는 (마치 DataAnnotations를 사용하는 것처럼) 일어나야합니다. 나는 클라이언트 쪽 유효성 검사 작업을하기까지했다. 그리고 나는 그것에 꽤 만족합니다.ASP.NET에서 ViewModel 사용 FluentValidation을 사용하는 MVC

신기술을 함께 사용할 수 있는지 (그리고 그 과정을 통해 배울 수 있는지) 확인하기 위해 작성한 테스트 응용 프로그램이므로 실제 모델을 전달하는 대신 ViewModels를 사용하여 실험 할 준비가되었습니다. 보기. 내 서비스에서 AutoMapper와 같은 것을 사용하여 Model에서 ViewModel로 앞뒤로 매핑하는 것을 계획하고 있지만 먼저 질문이 있습니다.

내 인증에 어떤 영향이 있습니까? 내 유효성 검사 클래스 (FluentValidation을 사용하여 작성)를 모델 대신 ViewModel에 대해 작성해야합니까? 아니면 두 곳에서 일어날 필요가 있습니까? DataAnnotations (및 FluentValidation)에 대한 큰 거래 중 하나는 "어디에서나"작동 할 수있는 한 곳에서 유효성을 검증 할 수 있다는 것입니다. 그리고 그 약속을 이행합니다 (대부분).하지만 ViewModels를 사용하기 시작하면, 그 능력을 잃지 않고 두 곳에서 유효성 검사를 다시해야합니다.

아니면 그냥 잘못 생각하고 있습니까?

답변

4

아니면 그냥 잘못 생각하고 있습니까? 아마

, 당신은 당신의 ViewModels에 모든 유효성 검사 코드를 추가하는 경우)

당신은 대신에 실제 모델을 검증 할 것입니다. 정말로 변화하는 모든 객체가 무효 상태가 될 수 있습니다.

지금 당장 나는 ViewModels의 유효성을 검증하는 것만으로 행복해하며 그 정보를 실제 모델과 DAO 레이어로 다시 전달합니다. 도메인이 유효하지 않은 상태가 될 수 있는지 여부는 논쟁의 여지가 있지만, 지금까지이 기술은 저에게 큰 도움이되었습니다. 유효성 검사는 한 곳에서 이루어지며 영속성 저장소에는 유효하지 않은 개체가 없습니다.