在ASP.NET MVC中存储自定义类的位置?

时间:2010-09-18 02:24:28

标签: c# asp.net-mvc

有点愚蠢的问题,但如果我想创建一个不是控制器或模型的自定义类,我应该把它放在哪里。在WebForms中,我将所有类存储在App_Code文件夹中,但似乎类没有存储在MVC中。

甚至重要吗?

1 个答案:

答案 0 :(得分:10)

有很多选择。有些人只是在ASP.NET MVC项目中创建新文件夹。其他人(包括我自己)创造了全新的项目。

我很满意的一种方法是按目的分解你的项目......

  • MyApp.Core< - 所有业务逻辑,没有数据库/ Web内容
  • MyApp.Infrastructure< - DB / smtp / event log
  • MyApp.UI.Web< - ASP.NET MVC项目
  • MyApp.Tests

我也见过这些......

  • MyApp.ApplicationServices
  • MyApp.UI.Controllers

我建议在开源世界中查看所有各种ASP.NET MVC项目,看看他们如何安排他们的项目(Code Camp Server,Store Front,Sharp Architecture,Nerd Dinner 2,以及大量的其他)。我认为它将为您打开一个新的可能性世界(控制反转,存储库模式等)。也就是说,它具有挑战性,我将它等同于蓝色药丸/红色药丸的情景。

编辑:回答你的其他问题......

我认为这很重要但只是在将所有内容分解为多层的意义上可以帮助您实现松耦合。如果将所有内容保存在一个项目中,您将很容易模糊演示文稿,业务和数据库之间的界限。但是如果你把所有东西分开并且你认识到你的项目参考,那么耦合的缺乏将更加明显,你将更有可能实现关注点分离(SoC)。 SoC为单元测试和更轻松的维护打开了大门。