3 개의 프로젝트로 구성된 MVC 웹 응용 프로그램을 빌드하고 있습니다. 하나는 GUI 용이고 다른 하나는 BusinessLogic 용이고 다른 하나는 데이터 액세스 용입니다.ASP.NET MVC - GUI의 DAL에서 종속성 제거
내 데이터 액세스를 위해 EF가 생성 한 파일이 있으므로 "Customer"라는 생성 된 클래스가 있습니다. 이 클래스에 대한 유효성 검사 속성을 만들려면 MetaDataType을 만들어야합니다 (동일한 네임 스페이스에서 수행해야하므로 DAL 계층에서 바인딩해야합니다). 이렇게하면 GUI에서 데이터 액세스 계층을 참조합니다 이제는 내 GUI가 내 DAL 및 BL 레이어를 모두 참조하기 때문에 프로젝트를 분할하는 전체 아이디어를 망칠 수 있습니다. 어쨌든 GUI와 DAL 레이어를 분리하여 보관할 수 있습니까? 그렇지만 [필수]와 같은 유효성 검사 속성을 사용하는 것은 여전히 가능합니까?
미리 감사드립니다.
제 대답에 대해 논평했듯이, 이것은 실용적 일 수 있습니다. 그러나 UI가 도메인 모델과 섞여 있기 때문에 영속성의 무지의 개념에 완전히 위배됩니다. 그러나 아무도 DDD 프로그래머가되어야합니다. – rsenna
@rsenna : 내가 잘못 본 것이 아니라면, 당신은 여전히 끈기를 알지 못한다. 그것이 POCO 사용의 요점입니다. 데이터베이스 호출을 처리하는 저장소 패턴과 같은 다른 추상화가있는 한 전체 데이터베이스 백엔드를 대체하여 POCO 엔티티를 유지 보수 할 수 있습니다. 물론, POCO 엔티티는 더 이상 EF에 의해 생성되지 않지만 EF에 대한 의존성은 없으므로 중요하지 않습니다. –
내가 보는 문제는 기술적 인 것이 아니라 건축적인 것입니다. DAL과 UI에서 ** 같은 ** 엔티티를 공유하고 있습니다. 따라서 프레젠테이션은 지속성에 사용되는 것과 동일한 엔티티에 연결됩니다. 그리고 나는 이것이 "무지"라고 불릴 수 있다고 생각하지 않습니다 ...그러나 다시 한번, 나는 이전에 그렇게 해왔고, 단순한 시스템이나 CRUD 지향적 인 것을 위해 다시 할 것입니다. 그 외에도 UI 용 뷰 모델과 비즈니스 및 데이터 액세스 레이어 용 도메인 엔터티를 사용합니다. – rsenna