我正在开发具有以下层的 N 层 .NET 应用程序:
- 介绍
- 应用
- 领域
- 基础设施(包含持久性和常用实用功能,如电子邮件)
在我的申请中,某个请求被批准了。一旦获得批准,必须执行以下 4 个步骤:
- 将产品标签代码分配给请求中的已发行产品。
- 将请求状态从“正在处理”更新为“订单已完成”</li>
- 向请求者发送一封电子邮件,说明他们的产品已准备好取货
- 向请求者的经理发送一封电子邮件,告知他们已向他们的员工提供了什么以及他们批准的产品请求的副本
上述步骤必须是原子操作的一部分,这意味着它们必须全部完成,否则操作将被取消。我正在考虑让应用层指导请求存储库和持久层执行以下任务:
- 应用层请求请求存储库执行步骤 1 和 2 作为工作单元事务
- 应用层请求基础设施层执行步骤 3 和 4。
我不确定应用层是否应该这样做。我认为这是因为前两个操作需要联系我在域层中避免做的存储库。最后两个步骤涉及基础设施层,域层可以通过依赖注入实例与之对话。按照这个逻辑,应用层并不要求领域层做任何事情。当你有一个应用层时,这通常是这样的多步骤过程吗?还是我在这里错过了什么?
我知道一个名为 Windows Workflow 的框架,但我不确定这在这种情况下是否会有所帮助,因为这个多步骤过程不涉及处理步骤中的人机交互,而事情可能会等待几天。如果我不需要的话,我也不想让应用程序过于复杂。
提前致谢。