2016-01-13 80 views
0

我讀了很多,但我找不到明確的答案ASP.NET MVC項目分離的最佳實踐的問題。我有一個非常小的,一個人演示項目,我想要使用Entity Framework實現對象關係映射數據庫,但是我想避免將數據庫層分離到另一個項目。據我所知,把數據模型放到MVC項目的隱式模型文件夾中是不是個好主意,但放在哪裏? View模型(模型文件夾I gues),edmx文件,接口,存儲庫的正確命名和情況是什麼,放置整個業務邏輯的最佳位置是什麼?ASP.NET MVC小型項目架構

編輯

我表達自己錯了與分離DAL到另一個項目,it's並不重要,讓我有或不具有DAL在單獨的項目,我只是鴕鳥政策看到任何優勢這種方法在這個規模的項目中。

+0

DAL在單獨的項目中出現了什麼問題? –

+0

什麼也沒有,我只是沒有看到這種方法在這個規模的項目中的任何優勢。我表達了自己的錯誤,對我來說,將DAL納入單獨項目並不重要。 –

回答

0

好,ASP.NET MVC默認情況下只有2個命名約定(這反正是可以改變的):

  1. 控制器放置到Controllers文件夾,他們的名字應該與「控制」字,如「ShoppingChartController」結束。
  2. 視圖被放置到Views文件夾的子文件夾中(其名稱與控制器名稱相同),默認情況下,它們的名稱與您的控制器的操作名稱相同。

原因是默認情況下,MVC框架在這些文件夾中查找控制器和視圖(實際上有一個更復雜的邏輯來尋找它們,但其餘的你可以從我提到的網站以上和來自MSDN)。

至於模型 - 這完全沒有關係。至於我,如果我需要創建一個非常簡單的網站,那麼我將ViewModels放到ViewModels文件夾中,並將它們命名爲'ShoppingChartViewModel'和映射到數據庫中相應表格的數據模型到Models文件夾中。 如果您有服務或其他業務邏輯封裝的內容,則可以將它們放入「服務」文件夾中。

3

如果你的一個人展示項目隨着時間的推移變成一個大項目會怎樣?通過不分離問題,您立即失去了可擴展性。

我不會在MVC項目中放置任何與客戶端上的數據呈現或編輯沒有直接關係的東西。

想想有一個服務層負責溝通數據庫。 想想描述你的實體的領域層。然後,您可以從域實體構建您的視圖模型,這些模型通過您的服務層進行檢索。

這是一個非常基礎的架構。如果您的數據庫中有4個表格,那麼有4個域名實體(模型或您想要調用它們的任何類型),4個EF配置文件和4個視圖模型來顯示頁面上的數據。如果您決定在數據庫中添加其他幾個表格,那麼您的MVC項目開始變得相當龐大,並且沒有提及處理CRUD操作的任何接口或服務。