什么是从服务器查询/保存的“更好”方法:DTO或Wcf数据服务?

时间:2010-04-21 10:05:39

标签: wcf architecture wcf-data-services

从我的角度来看,从服务器端域模型查询简单对象图时,数据服务及其查询方法很有用。但是当你想要查询复杂的依赖关系时,我无法创造出任何好处。

经典的DTO方法是细粒度的,可以处理所有事情,但缺点是你必须为每种类型的服务器请求创建Dto类,这是非常耗时的,你必须将Dto类型与你的域实体同步/业务逻辑。

2 个答案:

答案 0 :(得分:4)

取决于您对“更好”的定义 - 这是否意味着更快上市,或者从长远来看更容易维护应用程序。

手工制作DTO意味着最初的开发工作可能比使用WCF数据服务等工具更长。但是,通过仅公开DTO,您的应用程序将比内部域模型与WCF数据服务更加分离,因此未来的维护修复可能会更容易和更短。

如果您在初始开发期间有足够的时间和预算,我会倾向于DTO,因为如果应用程序存活的时间足够长,将会节省资金,并且更容易修复/修改。同样使用诸如Automapper之类的工具可以减轻与域对象和DTO之间的映射相关的许多痛点。

答案 1 :(得分:2)

另一种方法是使用持久视图模型,该模型由DTO形式的数据组成(无映射)。从Udi查看CQRS