什么是域名模型?为什么它比.net中的数据集更受欢迎?

时间:2011-04-06 02:02:59

标签: asp.net-mvc-2 domain-driven-design

我想知道,在作业中我一直在使用数据集。现在,当我开始在这家软件公司工作时,人们正在使用一种叫做DTO的东西 - 数据传输对象。域名模型在哪里?真的是什么?

由于

2 个答案:

答案 0 :(得分:2)

DTO是简单的数据结构对象,仅用于将数据传输出数据库(通常通过ORM),并使这些数据可用于应用程序的更高层。如果使用DTO进入适当的域模型层,这在架构上是有效的(尽管可能是多余的)。如果您将DTO视为域模型层(换句话说,您没有与用户界面分离的域逻辑),那么您将DTO用作anemic domain model,这是一种严重的架构反模式。

答案 1 :(得分:0)

DTO =数据传输对象就像听起来一样。在系统层之间传输数据的对象。目的通常是调整请求和响应数据,使其适合用例。示例可以是您通过HR系统的应用程序层中的CandidateService请求CV。候选服务加载信息而不是跨越不同的域实体:WorkExperince,Education,Personal Letter等。为了避免复杂和大规模的响应对象图,我们可以通过构建一个完全针对客户端(GUI)设计的DTO对象来平坦响应。需要。

关于DTO还有很多话要说。但是我不想写小说:)但是DTO不属于Core Model中的Domain Model。 DTO主要用DDD作为应用程序服务与客户端之间通信的工具,特别是如果您使用Web服务(WCF等)。然后,DTO是将您的部分域序列化为Web服务消息(序列化DTO)的完美方式。

希望你能问问你的同事/同事以及他们打算用DTO做些什么。 DTO有几个缺点,通常会给你一个额外的层,这意味着在维护阶段还有更多的工作......

(现在几乎是一本小说)我只在有真正的好处时使用DTO,那就是当你能用DTO提供与客户需求完全匹配的复杂响应时。否则,客户端通常需要调用不同的服务或方法来收集足够的信息。