我在想如何將大型應用程序劃分爲多個項目。 我需要創建:
1.數據訪問層的一個項目。
2.業務邏輯層的一個項目。
3.一個Web應用程序項目。
?解決方案中的項目
我應該把數據訪問層和企業登錄層放在一起嗎?
另外,數據訪問層是否應該取決於企業登錄層?
Web應用程序應該直接依賴數據訪問層嗎? (是否應使用來自業務登錄層的對象使用來自數據訪問層的方法)?
現在我有兩個項目:
1. web應用程序。
2.所有代碼包括數據訪問和業務對象。
我在想如何將大型應用程序劃分爲多個項目。 我需要創建:
1.數據訪問層的一個項目。
2.業務邏輯層的一個項目。
3.一個Web應用程序項目。
?解決方案中的項目
我應該把數據訪問層和企業登錄層放在一起嗎?
另外,數據訪問層是否應該取決於企業登錄層?
Web應用程序應該直接依賴數據訪問層嗎? (是否應使用來自業務登錄層的對象使用來自數據訪問層的方法)?
現在我有兩個項目:
1. web應用程序。
2.所有代碼包括數據訪問和業務對象。
我通常把我的項目獨立:
解決方案
- >表示層
- >業務層
- >數據層
我再從介紹到企業和企業加入到數據參考。我從來不讓我的演示文稿直接與數據交互。通常我還會在我的業務層中使用服務,如果需要,可以將其部署爲分隔位置。
下載微軟應用架構指南,在這裏第2版,我現在讀它,它是關於這個問題非常有幫助:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ce40e4e1-9838-4c89-a197-a373b2a60df2
@Joshua Girard:偉大的發現,我會讀它,因爲它有幫助,但它560頁 - 我必須儘快決定.. – Naor 2011-04-15 21:54:59
這取決於你的意思是一個「非常大的項目是什麼「。
我們正在編寫一個MVC應用程序,我們已經將它分成幾個程序集......一個用於我們正在訪問的每個數據庫。但它不僅僅是DAL,它還有一些特殊的邏輯。這個程序集也有一些共同的功能。
然後,我們有一個共同的網絡項目。
然後,我們爲使用此數據的3個站點中的每個站點都有一個Web項目,它們都依賴於通用項目。
如果將其分成至少3個組件,它可能會更容易維護和開發。這是爲什麼。
@Dustin Laine:如果數據層不依賴於業務層,您的數據層如何返回業務對象? – Naor 2011-04-15 21:39:50
根據您編寫代碼的方式,您可能需要爲模型創建另一個項目以供其他人共享。我不遵循DDD,所以我有MyApplication.Model和MyApplication.Business。 – e36M3 2011-04-15 21:42:43
我的數據層將返回數據,而不是業務對象。例如,一個數據表,業務層將從該數據表變成業務對象或業務對象列表。 – 2011-04-15 21:43:40