【问题标题】:Use of DTO in 3 tier architecture [closed]在 3 层架构中使用 DTO [关闭]
【发布时间】:2012-09-12 10:56:55
【问题描述】:

我正在使用简单的 3 层架构。 在此我使用 DTO 类在 UI、BL 和 DL 之间进行通信。 那么有没有更好的层间通信方式呢?或者这是正确的方法?

【问题讨论】:

    标签: c# dto 3-tier


    【解决方案1】:

    DTO,Data transfer Object,是分布层的概念,在消费者和服务之间传输数据时使用。因此,如果您不发布任何服务,请退出 DTO。

    要回答您的问题,还取决于您的应用程序有多复杂。简单的话就用CRUD操作,也可以用DataTable,DataSet进行通信。

    否则,来自 DDD 的域实体是层之间通信的核心对象:数据访问层、业务逻辑层和表示层。

    基本上,应用中有一些不同类型的对象:

    1. DTO,在您公开服务时使用,主要对象是消费者和您的服务之间的通信。
    2. 视图模型,表示层中支持 UI 的对象。
    3. 域实体来自业务逻辑层,包含业务逻辑。

    小心用词:

    1. Tier:表示物理的,如数据库服务器、Web 服务器。
    2. Layer:表示逻辑层:Persentation Layer、Business Logic Layer、Data Access Layer。

    【讨论】:

      【解决方案2】:

      阅读此tutorial 内容非常丰富。它将帮助您确定 DTO 是否适合您的方案。

      【讨论】:

      • 谢谢,我读过的最好的 DTO 教程。试图总结:从解耦的角度来看,DTO 是最佳的,将表示层与业务层分开。但这可能是一场代价高昂的胜利;创建数百个 DTO 类会使项目膨胀并产生开销。作者说是否使用 DTO 取决于项目的具体情况。他提出了一种务实的中间方式,允许在表示层中引用实体对象。
      【解决方案3】:

      除了@Talha 的回答,我推荐这个article。它是面向 EF 的,但其中描述的概念是常见的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-12
        • 2020-11-08
        • 1970-01-01
        • 2011-10-12
        • 2014-06-26
        • 2011-01-13
        • 2011-07-30
        相关资源
        最近更新 更多