Asp.net mvc CQR将域/业务逻辑放在何处
我正在为MVC应用程序开发框架。作为框架的一部分,我创建了一个虚拟应用程序。我遵循洋葱架构和坚实的原则与CQRS。这是我与MVC和CQRS的第一个项目。我还遵循CQR的责任链 目前,我不确定我应该保留业务逻辑的部分 例如。 我已从银行账户获得借记账户的指令。我已经将命令创建为DebitAccount,将处理程序创建为IDebitAccountHandler。IDebitAccountHandler将在基础架构层实现,并具有DebitAccountHandler所需的依赖项 在这里,我有一个在借记账户之前检查余额的核心逻辑。我希望在核心中实现这一点,因为它不会随着基础设施的变化而改变 现在我应该在哪里实现这个逻辑并加载所需的依赖项。我的命令是没有任何方法体的接口,它们也只包含Handle/Execute方法Asp.net mvc CQR将域/业务逻辑放在何处,asp.net-mvc,domain-driven-design,cqrs,solid-principles,Asp.net Mvc,Domain Driven Design,Cqrs,Solid Principles,我正在为MVC应用程序开发框架。作为框架的一部分,我创建了一个虚拟应用程序。我遵循洋葱架构和坚实的原则与CQRS。这是我与MVC和CQRS的第一个项目。我还遵循CQR的责任链 目前,我不确定我应该保留业务逻辑的部分 例如。 我已从银行账户获得借记账户的指令。我已经将命令创建为DebitAccount,将处理程序创建为IDebitAccountHandler。IDebitAccountHandler将在基础架构层实现,并具有DebitAccountHandler所需的依赖项 在这里,我有一个在借记
我觉得这是一个新手问题,因为我对模式的理解有限。每个命令都代表一个用例。命令处理程序不包含任何逻辑;它负责处理基础设施问题,并向该领域授权 您希望所有逻辑都位于域模型中:聚合、实体、值对象、服务。。。在您的示例中,逻辑将由
帐户
聚合封装
public class Account
{
private Balance _balance;
public void Debit(Amount amount)
{
if (_balance.IsSufficient())
// debit..
}
}
我对域不熟悉,但一般来说,您可以实现签入域模型(如帐户)或域服务(如果涉及多个模型),然后调用checker-in处理程序。