2010-10-12 22 views
2

當我開始在新的web應用程序上工作時,我傾向於嘗試與ASP.NET MVC,BLL(由包含所有業務邏輯的一組服務)和DAL(由一組儲存庫,其促進工作單元的模式,比如EF/* Linq到SQL *)。ASP.NET MVC三層 - 其他人在做什麼?

控制器談話只服務,在服務和其他服務。在服務層是定義模型的地方,這些模塊用作控制器的輸入/輸出。

我的問題是:別人在做什麼?我很想知道人們是否在ASP.NET MVC Web應用程序的上下文中做了任何不同的事情。例如,有像CQRS域名事件的概念。有人使用這些來解決我上面描述的方法的問題嗎?

這個問題主要是試圖發現我不知道我不知道的來源。我希望這不是太模糊,但我認爲重要的是要看看別人正在做什麼來評估你自己的方法。

+2

這是社區wiki嗎? – StriplingWarrior 2010-10-12 15:24:33

+1

有趣的問題,但這是討論。使其至少維基,或更好的,但考慮移動到程序員.stackexchange.com – 2010-10-12 15:24:51

+0

乾杯的傢伙,使它成爲社區維基。 – John1221 2010-10-12 15:54:30

回答

1

我們基本上正在做你在做什麼,除了我們認爲我們的存儲庫接口是服務(它們在業務層中定義),因此我們的控制器經常直接訪問它們。 IoC容器負責通過構造函數注入來注入正確的存儲庫實現。所以數據層依賴於業務層,並負責實現存儲庫,而業務層只是假定它定義的所有存儲庫都將在運行時可用。

我們進一步將我們的產品分成不同的功能模塊。一些模塊相互依賴(例如,一切取決於我們的核心功能,其他大部分模塊依賴於門戶網站模塊),但將它們保存在單獨的dll中有助於避免使這些模塊過於緊密地耦合。因此係統只能加載給定客戶已經支付的模塊的DLL。我們計劃使用一個事件總線來定義核心模塊中定義的事件,以允許模塊通過發佈/訂閱模式進行通信。

1

我正在使用CQRS和MVC。這真好。你仍然使用MVC模式,但是在控制器中我使用命令模式進行寫操作,只使用純NHibernate Linq進行讀取......還有一些SolrNet用於讀取。 :-)

相關問題