2011-04-15 209 views
2

我在想如何將大型應用程序劃分爲多個項目。 我需要創建:
1.數據訪問層的一個項目。
2.業務邏輯層的一個項目。
3.一個Web應用程序項目。
解決方案中的項目

我應該把數據訪問層和企業登錄層放在一起嗎?

另外,數據訪問層是否應該取決於企業登錄層?

Web應用程序應該直接依賴數據訪問層嗎? (是否應使用來自業務登錄層的對象使用來自數據訪問層的方法)?

現在我有兩個項目:
1. web應用程序。
2.所有代碼包括數據訪問和業務對象。

回答

4

我通常把我的項目獨立:

解決方案
- >表示層
- >業務層
- >數據層

我再從介紹到企業和企業加入到數據參考。我從來不讓我的演示文稿直接與數據交互。通常我還會在我的業務層中使用服務,如果需要,可以將其部署爲分隔位置。

+0

@Dustin Laine:如果數據層不依賴於業務層,您的數據層如何返回業務對象? – Naor 2011-04-15 21:39:50

+0

根據您編寫代碼的方式,您可能需要爲模型創建另一個項目以供其他人共享。我不遵循DDD,所以我有MyApplication.Model和MyApplication.Business。 – e36M3 2011-04-15 21:42:43

+0

我的數據層將返回數據,而不是業務對象。例如,一個數據表,業務層將從該數據表變成業務對象或業務對象列表。 – 2011-04-15 21:43:40

1

這取決於你的意思是一個「非常大的項目是什麼「。

我們正在編寫一個MVC應用程序,我們已經將它分成幾個程序集......一個用於我們正在訪問的每個數據庫。但它不僅僅是DAL,它還有一些特殊的邏輯。這個程序集也有一些共同的功能。

然後,我們有一個共同的網絡項目。

然後,我們爲使用此數據的3個站點中的每個站點都有一個Web項目,它們都依賴於通用項目。

如果將其分成至少3個組件,它可能會更容易維護和開發。這是爲什麼。

  1. 它迫使你有一個關注的分離,需要從數據中獲得某些東西?把它放在數據程序集中。需要修改一些JavaScript?把它放在演示文稿中。
  2. 它允許專業化。您可以獲得一名後端開發人員或JavaScript專家,他們可以在不影響其他任何人的情況下開展工作。
  3. 如果前端的某些內容發生變化,並且您想要轉到新的前端,那麼DAL和業務層很可能不需要進行太多更改。
相關問題