我有一個像這樣的MVC解決方案設置,有三個'項目'。ASP.NET MVC - 身份驗證層在哪裏?
網(MVC項目,視圖,控制器的ViewModels)
模型(域對象)
持久性(NHibernate的映射,SessionFactory的)
我需要開始建立資料庫,並且將從認證模型開始。基本上遵循默認的MVC模板,有一個IMembershipService
和一個IFormsAuthenticationService
和相關的類(使用自定義代碼,不內置在身份驗證提供程序中)。
我的問題是......這應該去哪裏?我的存儲庫需要訪問我的域對象和我的持久層。不過,我一直認爲任何一種「耦合」都意味着它是一種糟糕的設計。因此,我不願意爲引用Models/Persistence的Repositories/Services創建第四個項目......但我無法真正找到任何其他方式來按照邏輯執行它。
我害怕做任何事情,需要我參考解決方案的另一部分。看起來無處不在,我所看到的只是人們在談論項目任何部分的「任何」耦合是多麼可怕。在這一點上,我和我的團隊沒有任何意義 - 因爲如果不在某個級別耦合到域和映射模型,實際上與數據庫進行通信似乎是不可能的。我是否允許應用程序的Repository部分查看SessionFactory?我是否必須避免看到其他東西? – Ciel 2010-12-03 20:50:25
我不會過分關注程序集引用。事實是他們*是耦合的。一個需要另一個來運作。總是需要遵守一些紀律,以避免濫用技術上可用的內容和範圍。 – 2010-12-03 20:59:40