【发布时间】:2011-05-03 22:44:25
【问题描述】:
当我开始使用 .NET Webforms 时,我很容易找到要遵循的文件夹结构,因为 VS 为您提供了诸如“App_Code”之类的应用程序文件夹,并且大多数应用程序示例都在其中放置了“BLL”、“DAL”等等.
但是现在在 MVC 中,我检查的每个示例都使用不同的结构,就像这次没有标准一样,我还没有在 Google 或 SO 上找到好的解决方案。
所以,也许我们可以分享我们如何组织 MVC 项目,可以帮助其他人做出自己的想法。这是我使用的中小型项目的结构:
App_Data
Areas
Admin
Controllers
Models
Views
MyAccount
Controllers
Models
Views
Content
Images
Scripts
Styles
Controllers
HomeController.cs
Helpers
ExtensionMethods // I.e. based on HtmlHelper, use "helper" suffix
MenuHelper.cs // to be called as html.Menu()
Utilities.cs // Other generic (static) libraries, no suffix used
Models
ViewModels // for passing models to Views
RegisterViewModel.cs // use "ViewModel" suffix
Customer.cs // to extend models like adding Model Validation
Repositories
CustomerRepository.cs // use "Repository" suffix
Services
CustomerService.cs // use "Service" suffix, to move code away from controllers
Views
Home
Index.cshtml
Register.cshtml
Shared // Site Layouts (Master templates), also put partials here
SiteLayout.cshtml
你的呢?
【问题讨论】:
-
可能是菜鸟问题:虽然我已经使用 ASP.NET MVC 很长时间了,但我从未遇到过
.cshtml!那是什么? :) -
是的,就是剃刀,MVC3 上新的默认视图引擎,更干净,代码更易读,可以查看 Scott Gu 的博客:weblogs.asp.net/scottgu/archive/2010/07/02/…
-
看来这篇文章首先出现在搜索“mvc 4 文件夹结构”时,但问题和答案可能已经过时了。 Asp.Net MVC 通常需要非常严格的目录结构。有人知道理想树的任何更新吗?
-
你可能没有找到“理想树”的原因是我发布这个的原因:没有理想的树,所以我建议我们分享我们的。每个人迟早都会采用自己的一种。我认为更多的是在 MVC 对约定的需求(保留控制器、视图等文件夹)、采用普遍接受的标准(模型、服务的文件夹)以及添加自己的风格(我现在在项目中拆分解决方案,如MyApp.Core、MyApp.Web、MyApp.Localization)。
-
为什么my question 与此基本相同被关闭为“非建设性”,而这个没有?
标签: asp.net-mvc asp.net-mvc-2 asp.net-mvc-3 naming-conventions conventions