2011-02-25 106 views
5

我剛開始使用MVC並試圖理解設計應用程序背後的最佳實踐。在WebForms世界中,我通常只創建了一個Classes文件夾,用於存儲所有* .cs文件。但是,由於MVC使用文件夾結構創建不同的命名空間的方式,我不確定這是否是正確的做法。我似乎無法從微軟那裏找到任何關於此主題的指導,所以我希望這裏有人能夠讓我朝着正確的方向前進。我應該在哪裏存儲ASP.NET MVC項目中的類文件?

有沒有正確的方式來組織文件在MVC應用程序?而且,更普遍的是,有沒有一個權威的地方去尋找這種最佳實踐指導?

回答

2

MVC命名空間並不決定你的類應該放在哪裏。但是,如果按照其類別將它們存儲在適當的位置,則會很有意義。例如如果它是控制器類,則將其存儲在Controllers文件夾中。如果它是一個ViewModel,你可以將它存儲在ViewModel文件夾中。

話雖如此,我相信您所說的類是您用於您的業務邏輯的實體。如果是這種情況,如果您的應用程序足夠大,並且您正在手動創建普通舊CLR對象(PO​​CO),則可能需要將它們存儲在單獨的類庫中。這與您在webforms世界中所做的相同。

如果它不是一個很大的應用程序,或者您正在使用由LINQ或實體框架生成的那些ORM生成的實體,並且沒有明確創建它們,您可能需要包含.DBML(LINQ)或.EDMX(實體框架)模型文件夾中的文件。這些實體將位於Model文件夾中的自動生成的設計器文件中。

希望這會有所幫助。

4

下面是一個示例文件夾結構:

  • 控制器
  • 模型
  • 的ViewModels
  • 映射器
  • 查看
  • 服務
  • Valida職責範圍
  • ...

顯然,這些層可以在不同組件之間進行分割。

你也可以看看我寫的sample MVC project structure

+0

這有點令人困惑,因爲默認生成的MVC應用程序將創建一個Models目錄並將一些視圖模型放入其中。 – 2014-12-02 03:58:16

0

Mvc中唯一的特殊文件夾是Views文件夾(也是Areas文件夾,但這是一個高級主題),框架查找視圖文件。您的源代碼文件可以進入任意位置。然而,Darin列出的結構是一個有用的慣例,可幫助在同一項目上工作的不同開發人員快速找到他們正在尋找的東西

您也可以使用Empty項目模板(它實際上不是空的)開始一個新項目,它會爲您創建基本的建議文件夾結構。

相關問題