我有SOA处理diff客户端的数据(asp,sl)。这个设计的基础是我的商业模式的领域。为了运输,向客户展示我使用DTO。为了将域映射到DTO,我使用AutoMapper。现在我应该坚持客户的新实体。我也希望在这种情况下使用我的DTO。所以我有一些问题,因为我对这个设计不太熟悉
1)在客户端构建DTO并将其发送到网络服务是一种好的做法吗?我应该通过我的域名吗?
2)是否可能有多个DTO到一个域(一个显示在网格上,一个显示在保存中)。为了保存,我需要在客户端设置所有非原始道具。
3)DTO - >到域名。如果我有int,我可以使用AutoMapper为此ID生成NHibernate代理,或者我应该手动执行。
你的表现和实践非常有趣。 谢谢你的回答!
答案 0 :(得分:3)
使用的一个好习惯是屏幕和命令特定的DTO。
这方面的一个例子是,当用户正在查看客户显示屏时,有一个DTO,其中包含所有(或大多数情况下,如果您需要延迟加载一些东西)该客户的信息。
这种技术的价值在于,数据可以来自多个来源,这使您可以对您的域进行建模,而不是屏幕的设置方式。它还允许您更改域,而无需担心屏幕,因为您只需要更新映射。
根据您的编程语言,可能会有AutoMapper(对于C#)这样的工具,可以让您轻松创建域和DTO之间的映射。
答案 1 :(得分:-1)
您的架构通过线路使用DTO变得更加灵活,而不是域模型实体。每个域可以有多个DTO。