大家好,去年我发布了一篇 OnionArch - 采用DDD+CQRS+.Net 7.0实现的洋葱架构 。很多程序员都比较感兴趣,给我要源代码。这次我把OnionArch进行了升级,改进了一些特性,并放出源代码,iamxiaozhuang/OnionArch2 (github.com) 欢迎大家研究使用。 一、自动生成和发布领域事件 我在OninArch1.0实现了对删除的实体自动生成和发布领域事件,并通过订阅这个领域事件,将删除的实体数据备份至回收站表中,以备审计和数据恢复。 本次我改进了这个特性,对实体数据的新增,修改和删除都会自动生成和发布领域事件。我认为尽量不要通过修改代码来新增和发布领域事件,这会导致新增的业务功能也需要修改代码而不是新增代码来实现,不符合对修改关闭和对扩展开放的设计原则。应该对实体数据的任何变动都自动发布领域事件,然后在事件Handler中筛选需要的领域事件并进行处理。 我基于这个特性实现了按配置自动审计记录和和按配置自动发布集成事件功能。 按配置自动审计功能 我们可以通过配置的方式来实现那些实体,那种修改类型,那个字段需要审计。请看如下配置:...