我一直试图在udi dahan描述的新项目中实现这种模式.
我喜欢if的想法,但我还不确定它应该在什么情况下应用(这个东西的新东西......).
例如,假设我有一个OnUserCreated事件.我希望其中一位处理程序向用户发送确认电子邮件.但是,如果事件被触发,电子邮件将被发送,然后提交事务时出错并且数据永远不会保存到数据库中.这种模式适用于这种情况吗?我读过人们说不,但是我过去做过的一些项目实际上是这样做的.或者这是我应该只用于加载和更新其他实体的东西......另一方面,我读了有人说,操作所需的关联实体应该已经加载,所以我不应该从数据库加载它们事件.
我开始的新地方刚刚开始从头开始开发一个全新的产品。他们正在应用程序服务中使用事务脚本,完全愚蠢的实体,以及带有存储过程的手动 DAL(论点是 nhibernate 不能很好地优化 sql,加载太多东西,不能很好地扩展到大型项目等等等等)。该应用程序应该是刚刚起步的巨大项目。
我来自一个位置,我正在做域模型,其中封装了所有业务逻辑,应用程序服务仅处理基础设施 + 使用 nhibernate 加载模型并编写脚本。
我真的相信采用第二种方法要好得多。我正计划做一个关于为什么的演讲。我有很多书籍/文章/个人意见,我可以支持这一点……但更像是一个“初级”在那里可能没有多大意义(我也是我最后一个地方的单一开发者)。
我正在寻找的是来自更高级人员的一些失败项目的经验/技巧/示例,为什么使用事务脚本/手动 DAL 不是正确的想法。