2011-02-25 107 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项目模板(它实际上不是空的)开始一个新项目,它会为您创建基本的建议文件夹结构。

相关问题