在3层架构中使用DTO

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

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

要回答您的问题,还取决于您的应用程序的复杂程度。 如果它很简单,只需使用CRUD操作,或者甚至可以使用DataTableDataSet进行通信。

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

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

  1. DTO,在您使用公共服务时使用,主要对象是在消费者和您的服务之间进行通信。
  2. 查看模型,表示层中的对象以支持UI。
  3. Domain Entity来自业务逻辑层,包含业务逻辑。

小心这个词:

  1. Tier :它意味着物理,如数据库服务器,Web服务器。
  2. :它表示逻辑层:Persentation Layer,业务逻辑层,数据访问层。

阅读本教程,它非常有用。 它将帮助您确定DTO是否适合您的方案。

除了@ Talha的回答,我还推荐这篇文章 。 它是面向EF的,但那里描述的概念是常见的。