2011-02-18 55 views
1

我很困惑。請指導我。.net應用程序體系結構指導

請參閱我有.net應用程序(比如web應用程序)。這是n-trier。基本上它是3層。照常。它具有表示層,業務層,數據訪問層。在那裏找到複雜的數據集和數據表中的數據層中的記錄。但是當我將數據從數據層傳遞到業​​務層時,我必須在那裏使用。因爲按照我的想法,在業務層中使用System.Data是不合適的。它可能會損害性能。那麼媒體應該在這兩層之間傳輸數據呢?

在同一場景中的另一個問題是,比方說,我有我的數據庫存儲過程具有用戶信息插入功能。我想通過業務層將數據從表示層傳遞到數據。什麼是正確的方法在層之間傳遞數據反之亦然。我可以使用用戶對象。但是在體系結構級別,如果我使用User對象然後傳遞數據,則需要訪問所有層中的用戶對象。那麼User對象應該放在應用程序的圖層中哪裏?

回答

2

問題一:類。創建User類,並在從用戶表中讀取時從數據層返回IList<User>到業務層。

問題2:我使用單獨的程序集/類庫來定義所有業務對象。

+0

好的,但如果我使用單獨的程序集,並且如果我有小的業務改變然後對象級別的功能,然後我總是需要更改對象。我知道我可以通過部分擴展對象。但如果我想用接口來擴展我的類/對象,那麼如何使用接口實現類的擴展? – 2011-02-18 08:50:19

+0

如果你不想強迫所有使用BO的類改變,你也可以針對BO的接口工作。 `IUser`,`IUserWithExtraInfo`等。讓`User`類實現它們,在單獨的程序集中沒有`User`但是在數據層中。始終與BL中的接口工作。 – jgauffin 2011-02-18 08:58:03

2

你可以使用DTOs其目的是爲了層

0

之間傳輸數據類我想指出你領域驅動設計。但由於學習曲線的原因,它可能不適合你/你的團隊。您可能沒有足夠的時間。