簡體   English   中英

CQRS模式的服務層

[英]Service Layer on CQRS pattern

我正在嘗試使用CQRS模式而不是存儲庫和洋蔥架構來構建應用程序而不是使用MVC5堆棧的n層。

我現在有以下幾層:

Web.Data - Contains DbContext 
Web.Model - POCO classes
Web.Service - Implementation of Commands and Queries using MediatR
   --Commands
   -----Request
   -----Handlers
   --Queries
   -----Request
   -----Handlers
Web.UI

我正在考慮將業務邏輯(例如驗證)放在Handler類上,但我認為這些類可以直接訪問EF。 它仍然是放置這些邏輯的好地方嗎?

如果我有電子郵件邏輯或運輸邏輯怎么樣? 在傳統層上,他們自然會轉到應用程序服務,將存儲庫注入到該服務中,它們如何適應當前的體系結構? 我們不想去存儲庫路由,因為我們想要整體利用EF而不是更多地抽象它。

我是否應該擁有接受MediatR接口的傳統服務層,並讓控制器具有服務接口?

處理程序類應該處理命令並包含邏輯以協調任務的完成。 此邏輯可以包括對域模型的委派,持久性和檢索,以及調用其他服務(例如傳送或電子郵件)。 注意,命令處理程序只是應用程序服務的另一種風格。 因此,它不應該直接訪問EF,也不應該進行業務邏輯驗證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM