2012-04-25 54 views
1

我在Visual Studio中創建了一個解決方案,試圖實現基本的3層C#應用程序。我已經研究了這個概念,現在我正在嘗試將每個層的不同項目放在一起,即我有DataAccess,BusinessRulesBusinessObjects的項目。在Visual Studio中創建數據訪問,業務規則和業務對象的項目

BusinessRules項目是否應包含對DataAccessBusinessObject項目的引用? (和DataAccessBusinessObjects不應引用BusinessRules?)

設置此功能後,我意識到,儘管我明白每一層負責,我不知道是否應該填充業務對象(S)與數據DataAccess圖層,或者DataAccess圖層是否應將請求的數據傳遞給BusinessRules,然後填充對象 - 這樣做的推薦方式是什麼?

回答

1

雖然它可能對您的問題沒有幫助,但答案將始終爲「視情況而定」。當談到這個時,沒有「一個環來統治他們」。如果有的話,建築師將不再需要。

話雖這麼說,在我的具體情況我想:

  • 擁有的數據訪問層的業務對象進行操作。這假定DAL全部在代碼中,不會在代碼和數據庫中的存儲過程之間進行分割。
  • 業務規則層是否在業務對象上運行。再次假設所有代碼而不是存儲過程。
  • 業務規則到數據訪問是一個棘手的問題。這在很大程度上取決於應用程序的類型和規則。如果您需要您的業務規則來更新商店,我可能會從DAL中提取接口,以便業務規則只能依賴於接口。

同樣,這些項目在我的情況下工作。他們可能對你完全錯誤。另外,你沒有提到用戶界面層,服務層,等等等等。可能有很多部分和部分。

沒有任何硬性規則必須遵循才能正確。你必須看看你的需求,你的要求,以及你有什麼限制。

祝你好運。

+0

謝謝,那是我正在尋找的那種答案。網上有很多文章,關於這個問題已經被Stack Overflow詢問過了,但是它們似乎表明有一個正確的方法來做到這一點,事實上(正如你的回答指出的那樣)有很多不同的方式執行此操作。 – Theomax 2012-04-26 08:25:10