많은 응용 프로그램에서 공유 할 도메인의 일부를 캡슐화하는 어셈블리를 개발하는 중입니다. 주문 관리 시스템의 예를 사용하면 이러한 어셈블리 중 하나가 애플리케이션이 주문에 대해 수행 할 수있는 모든 핵심 작업을 포함하게됩니다. "시스템"의 상태를 변경하는 모든 작업이 CancelOrderCommand, ShipOrderCommand 및 CreateORderCommand와 같은 공개 명령으로 표시되도록 CQS/CQRS의 간단한 버전을 적용합니다. 명령 처리기는 어셈블리 내부에 있습니다.공유 모듈에서 읽기 모델을 노출하는 방법
답변을 얻으려고 애 쓰고있는 질문은 읽기 모델을 코드를 사용하는 데 가장 잘 드러내는 방법입니다.
쿼리를 수행하기 위해 코드를 소비함으로써 읽기 모델이 사용됩니다. 읽기 모델이 어떻게 사용되어 인터페이스가 모든 쿼리를 허용 할 수 있도록 유연해야하는지 모릅니다.
나를 복잡하게 만드는 이유는 내 집계 루트를 노출 할 필요가있을뿐만 아니라 클라이언트 응용 프로그램에서 사용할 수있는 관련 데이터의 "조회"목록이 여러 개 있기 때문입니다. 예를 들어, 각 주문에는 데이터 기반 (예 : 열거 형) 인 관련 OrderType이 있으며 수행 할 수있는 작업/수행 할 수없는 작업을 제어하는 비즈니스 규칙 중 일부를 구동하는 여러 가지 속성이 포함되어 있습니다. 이 관계를 관리하는 모듈; 그러나 주. 작성을 허용하는 클라이언트 응용 프로그램은 가능한 OrderTypes 목록을 사용자에게 표시해야 할 가능성이 높습니다. 따라서 Order 집계 목록을 공개 할뿐만 아니라 내 읽기 모델의 OrderTypes (및 다른 조회 목록)의 지원 목록을 노출해야합니다.
일반적으로 어떻게 이루어 집니까?
나는 내가 CQRS 기반의 구현은 임시 그래서이 쿼리의 전체 데이터 집합을 노출 본 적이 없다