2011-12-28 3 views
4

FluentValidation 프레임 워크를 사용하고 있습니다. 지금은 여러 유효성 검사기 (엔티티 당)가 있습니다. 엔티티를 별도의 어셈블리 (ProjectName.Domain) 및 유효성 검사기 중 하나에 보관할 것입니다.서비스 계층 배치 위치

리포지토리와 컨트롤러 사이의 조정자 계층을 나타내는 서비스 계층에 대해 읽었습니다 (http://www.asp.net/mvc/tutorials/older-versions/models-(data)/validating-with-a-service-layer-cs). service layer을 동일한 어셈블리에 보관하는 것이 좋습니까?

필자는 서비스 계층의 목적이 구체적 (또는 가능한 경우 일반) 저장소와 해당 유효성 검사기를 보유하고 저장소 항목에 대해 유효성을 검사하는 것임을 이해합니다. 구현이 다를 수 있습니다. 내가 맞습니까?

FluentValidation (또는 프레임 워크 독립)을 사용하여 서비스 계층을 올바른 방법으로 만드는 방법. 또는 기본 엔터티를 FluentValidation AbstractValidator class과 통합 할 수 있습니다.

감사합니다.

답변

4

분리 층은 물리적으로 분리 된 조립체를 필요로하지 않는다. 실제로 어셈블리가 많을수록 솔루션을 관리하는 것이 더 어렵거나 복잡합니다. 층 분리는 논리적 인 문제입니다. 어쩌면 네임 스페이스 또는 명명 규칙으로 구분됩니다.

As far as I understand the purpose of service layer is to hold concrete (or possibly generic) repository and corresponding validator and make a validation over repository items. So implementations may vary. Am I right?

서비스 계층에 대한 하나 개 사용 할 수 있습니다

있지만 그럴 필요하지 않습니다. "서비스"라는 용어는 지난 몇 년 동안 남용되어 거의 아무것도 의미하지 않게되었습니다.

응용 프로그램을 레이어하는 목적은 응용 프로그램이 변경에 적응하도록하는 것입니다. 그것은 매우 모호한 진술이지만, 그것이 모두 설계된 것입니다. 레이어는 캡슐화를 허용하고 캡슐화는 변경을 허용합니다.