meh*_*loa 5 c# architecture wcf dto n-tier-architecture
我开发了一个包含以下图层的应用程序:
所以当一些DTO回来时,我可以将DTO映射到服务层中的业务对象,并使我的应用程序与业务对象一起工作.在这种情况下,当较低层中的某些功能执行时,它不知道有关旧对象的任何事情,因此很难处理和验证状态更改,并且DTO适配器也存在类爆炸.另一方面,如果dto映射到更高层的业务对象,当它被关闭时,较低层对所调用的服务一无所知,因此它们无法解释这个dto必须如何更改业务对象(1 DTO可能以不同的方式被不同的服务使用)
所以问题是什么才是真正的解决方案?
小智 4
根据您的规格,我假设您的目标是基于DDD的实现
首先,一些假设有助于将其映射到更常见的术语:我假设您的“业务规则”层仅由您的活动层使用,因此可以被视为域层的一部分。
您提到了业务对象。我假设你有一个域层。这可能是您的“活动层”。这应该是知道如何更新对象并将它们返回到服务层的层。
服务层(或 DDD 术语中的“应用程序层”)应该映射 DTO,并调用域服务。MS这里有一个不错的图表。但基本上工作流程应该是:
当然,这个主题有很多变体,但这应该是您的起点。