繁体   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