我正在開發一個MVC 3和流利NHibernate的應用程序。我想知道什麼是最好的應用程序架構,就像我們應該分離業務層,DAL和存儲庫層,稍後在業務中定義實體類和映射類一樣,所有接口都存儲在DAL中的存儲庫和所有數據邏輯中。 任何想法什麼是處理應用程序的最佳方式?Fluent NHibernate的架構是什麼?
謝謝
我正在開發一個MVC 3和流利NHibernate的應用程序。我想知道什麼是最好的應用程序架構,就像我們應該分離業務層,DAL和存儲庫層,稍後在業務中定義實體類和映射類一樣,所有接口都存儲在DAL中的存儲庫和所有數據邏輯中。 任何想法什麼是處理應用程序的最佳方式?Fluent NHibernate的架構是什麼?
謝謝
您可以將您的業務實體定義爲單獨的圖層。然後,您可以使用這些業務實體(存儲庫)定義CRUD操作的接口。然後你會得到這些存儲庫的具體實現:在你的情況下使用NHibernate。這是你的數據訪問邏輯和FluentNHibernate映射的地方。最後,您將擁有一個服務層,它將定義複雜的業務操作,包括業務實體上的多個簡單CRUD操作。業務層還可以包含業務驗證邏輯。
由於存儲庫實現的接口,服務層和數據訪問層將會很弱地耦合,因此業務層不應該瞭解這些存儲庫的特定實現。
最後,您的MVC控制器將與服務方法和業務實體一起工作。它位於UI層(MVC應用程序)中,您還可以定義視圖模型,以便控制器操作可以在業務實體和視圖模型之間進行映射,並將這些視圖模型傳遞給視圖。
一個非常優秀的開源項目,看看是CodeCampServer
這是我開始了,它使用的是你有興趣(MVC,流利NHib)堆棧
在我看來,S#arp Architecture是一個很好的代碼庫,用於學習使用NHibernate和Fluent NHibernate作爲ORM的ASP.NET MVC項目的設計良好,鬆耦合和域驅動的設計體系結構。
FluentNhibernate映射裏面的倉庫? – alexn
@alexn,在包含存儲庫的特定NHibernate實現的圖層中。 –
當你談論圖層時,你不是在談論物理分離(即項目)嗎? – alexn