팀은 통합 리포지토리 추상화 뒤에 다양한 데이터 소스를 숨길 도메인 모델을 디자인하는 중입니다. 이 접근 방식의 주요 동력 중 하나는 가까운 미래에 이러한 데이터 소스가 중요한 변화를 겪을 가능성이 매우 높기 때문에 비즈니스 로직을 다시 작성하고 싶지는 않습니다. 하나의 데이터 소스는 원래 기본 ASP.Net 멤버쉽 공급자를 사용하여 구현 된 멤버십 데이터베이스입니다. 회원 공급자는 System.Web.Security 네임 스페이스에 묶여 있지만 우리는 도메인 모델 계층이 System.Web (또는 다른 구현/환경 종속성)에 종속되지 않도록 요구하는 디자인 지침을 가지고 있습니다. 이는 다른 환경에서 사용되기 때문입니다. 우리 웹 사이트가 데이터베이스와 직접 통신하기를 원하지도 않습니다.리포지토리 패턴이있는 .NET 멤버십
MembershipProvider 접근 방식을 추상화 된 n 계층 아키텍처와 조정하는 좋은 방법이 무엇인지 고려하고 있습니다. 저의 초기 감정은 도메인 모델과 상호 작용하고 저장소에서 처리하고 유효성/비즈니스 논리를 처리하는 모델에서 개체를 구현하는 "DomainMembershipProvider"를 만들 수 있다는 것입니다. 그런 다음 저장소는 우리의 (아직 결정되지 않은) ORM/데이터 액세스 도구를 사용하여 데이터 액세스를 구현합니다.
이 접근법에 눈부신 구멍이 있습니까? MembershipProvider 클래스와 긴밀히 협력하지 않아서 뭔가 빠져있을 수 있습니다. 또는 앞서 설명한 요구 사항에 더 부합 할 것이라고 생각하는 접근 방식이 있습니까?
미리 감사드립니다.
감사합니다, 자크
네, 그게 정확히 우리 문제였습니다. 답변에서 언급했듯이, 우리는 결코 그것을 만족스럽게 해결하지 못했기 때문에 멤버쉽 제공자를 파기했을뿐입니다. 행운을 빌어 해결책을 찾는다 - 당신이 유사한 상황에서 다른 사람들을 돕기 위해 여기에 올릴 수있는 더 나은 것을 생각 해낸다면 어쩌면? –