【发布时间】:2017-08-11 21:07:09
【问题描述】:
我正在尝试使用 ASP.Net WebApi 在我的应用中实现具有模式单元的领域驱动设计。
1) 我应该在哪里开始/提交事务(API 控制器、应用层/服务、DAL、域层/服务)?
2) 在具有大量业务规则的复杂应用程序中管理事务的最佳方式是什么(AOP、显式调用或其他方式)?
3) 在更大的事务中重用一段代码与事务的最佳方法是什么? 例如我有独立的用例 - 关闭发票 - 其中已经包含交易。此代码还包含一些非域代码,如日志记录、统计计数等。 我想在更复杂的用例中重用这段代码 - 支付发票、扣除佣金和关闭发票。
3.1)如何处理内部事务问题(流行的数据库不支持)?
3.2) 层应该对此负责吗?
我知道答案可能取决于特定项目。但是考虑任何在实际项目中可行的技术会很棒
【问题讨论】:
-
你需要先真正学习 DDD。此时,您正在使用 DDD 名称进行 CRUD。
-
@MikeSW,我读过 Eric Evans 的 DDD,但我仍然不明白如何使用域驱动设计正确管理应用程序中的数据库事务。
-
那是因为 DDD 和 DB 事务是非常不同的东西。开始阅读 Vaughn Vernon 的书或我的 DDD tutorials 以了解 DDD 的真正含义。我花了大约 7 年的时间才真正了解 DDD :) 但今天的资源比以往任何时候都多。祝你好运!
标签: asp.net .net transactions domain-driven-design