CQRS에서 읽기 레이어 용 MicroORM 사용

cqrs dapper massive

문제

여러분, 도메인 조작에 사용되는 Entity Framework를 사용하여 CQRS 응용 프로그램 (Asp.Net MVC)의 읽기 액세스 구성 요소에 Dapper.net과 같은 microORM을 사용할 것을 고려하고 있습니다.

이것은 CQRS 조명입니다. 이벤트 소싱 등을 사용하지 않았습니다. CQRS의 읽기 전용 모델은 ADO.net과 같은 것을 사용하여 가능한 데이터 / 데이터를 쿼리 할 수있는 간단한 / 간단한 쿼리 여야한다는 것을 여러 번 본 적이 있습니다. 이는 잠재적으로 SQL 하드 코딩을 의미합니다. 코드 또는 일부 XML 파일에서 문자열을 쿼리하십시오. 한 편에서는 도메인 매핑을 유지하고 다른 쪽에서는 SQL 문을 유지해야하는이 접근법을 정당화하는 방법에 대해 어떻게해야합니까?

이런 식으로 CQRS 솔루션에 MicroORM을 사용한 사람이 있습니까? 고마워 믹크

수락 된 답변

예, 물론 Dapper, PetaPoco, Massive, Simple.Data 또는 원하는 다른 미세 ORM을 사용할 수 있습니다. 과거에는 문제를 해결하기 위해 NHibernate를 사용했지만 1 만 파운드였습니다. 우리가 필요한 것에 비해 고릴라.

Simple.Data와 Petapoco에 대한 우리 도서관의 평가에서 가장 좋아하는 점은 최소한의 조정이 필요한 다른 데이터베이스 엔진 (Mongo 포함)에 각각 쿼리를 적용 할 수 있다는 점이었습니다. Dapper는 기본적으로 SQL 문자열 중 하나였습니다. 그건 "문자열 형"이었습니다. 오해하지 마세요, Dapper는 위대하고 매우 빠르고 아주 훌륭하게 작동합니다. 커밋하기 전에 기능적 및 비 기능적 요구 사항을 평가하십시오.

다음은 각 주 마이크로 ORM에 대해 NuGet을 사용하여 다운로드 한 상대적인 수입니다 (2012 년 1 월 1 일 현재). 우리에게 많은 다운로드가있는 좋은 커뮤니티를 갖는 것은 문제가 발생할 때 문제를 해결하는 데 항상 필요합니다.

  • 5568 Simple.Data
  • 4990 Petapoco
  • 4913 Dapper
  • 2203 대규모
  • 1152 OrmLite

마지막으로, 조사하고자하는 한 가지는 읽은 모델에 대한 SQL의 추론입니다. 도메인이 (이벤트 소싱과 상관없이) 이벤트를 게시하고 간단한 평면 / 비 관계형 뷰 모델을 작성하는 경우 브라우저에 푸시 된 JSON 파일과 같은 단순한 항목을 제거 할 수 있습니다. 그러면 브라우저는 HTML 템플리트를 채우는 데 해석하고 사용합니다. 사용할 수있는 모든 종류의 옵션이 있습니다. 시나리오에서 가장 잘 작동하는 것이 무엇인지 결정해야합니다.




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.