2012-09-20 59 views
10

我正在使用簡單的3層架構。 在此我使用DTO類在UI,BL和DL之間進行通信。 所以有更好的方法進行圖層之間的通信?或者這是正確的方式?在3層架構中使用DTO

+0

定義「溝通」 – jgauffin

回答

8

DTO,數據傳輸對象,是分佈層的概念,用於在消費者和服務之間傳輸數據。所以,如果你不發佈任何服務,下車DTO。

要回答你的問題,這也取決於你的應用程序有多複雜。如果很簡單,只需使用CRUD操作,或者甚至可以使用DataTable,DataSet進行通信。

否則,來自DDD的域實體是層間通信的核心對象:數據訪問層,業務邏輯層和表示層。

基本上,在應用一些不同類型的對象:

  1. DTO,使用時你的公共服務,主要目標消費者和服務之間的通信。
  2. 查看模型,表示層中的對象以支持UI。
  3. 域實體來自業務邏輯層以包含業務邏輯。

小心術語:

  1. :它是指物理,如數據庫服務器,Web服務器。
  2. :它意味着邏輯層:Persentation層,業務邏輯層,數據訪問層。
7

閱讀tutorial這是非常豐富的信息。它將幫助您決定DTO是否適合您的場景。

+0

謝謝,我讀過的最好的DTO教程。試圖總結:從解耦的角度看,DTO是最佳的,將表示層與業務層分開。但它可能是一個派拉利的勝利;創建數百個DTO類會膨脹項目併產生開銷。作者說,是否使用DTO取決於項目的具體情況。他提出了一種實用的中間方法,允許在表示層中引用實體對象。 – Gruber

1

除了@ Talha的回答,我推薦這個article。它是面向EF的,但在那裏描述的概念是常見的。