우리는 많은 것들과 함께 Active Directory에 대한 몇 가지 변경 (그룹에서 사용자 추가/제거, 사용자의 속성 값 변경 등)을 수행하는 응용 프로그램을 보유하고 있습니다.도메인 모델에 기술 관련 정보를 배치 할 위치는 어디입니까?
우리는 이제 "스파게티 코드"에서 더 계층화 된 솔루션으로 재 설계하는 중입니다. Active Directory 관리 기능은 도메인 계층에서 어느 정도 추상화하려는 것이지만 동시에 대부분의 기능은 매우 기술 의존적입니다.
우리는 DB 액세스와 함께 데이터 액세스 계층에 모든 Active Directory 액세스 코드를 배치해야합니까? 아니면 함수의 활성 디렉토리 라이브러리를 만들고 도메인 모델에서이 라이브러리를 직접 호출 할 수 있습니까? 그게 도메인 객체를 지속적으로 인식하게 만드는 것은 아마도 나쁜 생각일까요?
대신 서비스 레이어에서 모든 Active Directory 액세스가 대신 수행되어야하며 도메인 계층을 포함하지 않아야합니까?
그건 의미가있다. 그래서 내 도메인 계층에 사용자, 그룹 등을위한 도메인 객체가 있어야한다는 것을 의미하고 가상 프록시 패턴과 같은 것을 활용하여 도메인 객체에 기술 특정 관심사를 추가합니다 (예 : 그룹 추가/제거). – Per
컨텍스트에서 의미가있는 경우 사용자 및 그룹을 도메인 모델에 추가하십시오 (아마도 그렇게 할 것입니다). 모든 도메인 객체는 POCO이어야하므로 가상 프록시는 필요 없습니다. 리포지토리는 기본 저장소에서 Domain 개체를 검색하거나 수정할 수있는 메서드를 간단히 표시합니다. –
도메인 객체가 리포지토리를 인식해야한다는 의미입니까? 여기에 내 머리를 굴곡시키고 있지만 도메인 모델을 올바르게 구현하는 방법을 명확하게 볼 수는 없습니다 ...;).도메인 모델을 구현하는 방법에 대한 많은 의견이있는 것으로 보입니다 (아니면 그냥 잘못 해석 한 것입니다). 누군가가 내 손을 잡고 디자인 할 수 있기를 바랍니다.) – Per