8

我很惊讶在我们使用 ASP.NET MVC 的项目中找不到更多关于真正困扰我的问题的讨论。

如何处理具有多个项目的 Visual Studio 解决方案?MVC 框架在主项目中有 Models/Views/Controllers 文件夹。但是,如果您想将您的解决方案沿逻辑分组分解为多个项目,并将模型/视图/控制器连同它一起使用,该怎么办?当我提前考虑到项目结束时,每个文件夹中都会有很多类。它不会绘制一个有助于维护的整洁有序的结构。我们想要一种将类移动到与它们相关的项目的方法,或者至少使用文件夹结构来帮助组织。

我假设一个选项是在所有其他项目中使用与主项目相同的命名空间,但我不是这种方法的忠实粉丝 b/c 这不是我们通常使用的方法在定义我们的命名空间时采取。

我想我们至少可以在 M/V/C 文件夹中创建子文件夹,而不是将文件夹名称传递到命名空间。我假设可以找到这些类?

我们项目的一些背景:这是一个面向公众的网站,有许多用户可以执行的业务交易(大约 50-60 次)。每笔交易都有一系列网页供用户浏览,以完成网站提供的不同服务。我们为每个事务使用一个控制器(关于我们是否应该为每个事务定义一个控制器,或者我们是否应该使用更高级别的分组并因此减少控制器的数量,我们已经讨论了很长时间,但是我们已经了解了一些信息)在网络上遇到的(http://codebetter.com/blogs/ian_cooper/archive/2008/12/03/the-fat-controller.aspx)让我们做出了这个决定。)

有哪些建议?其他人是否以他们满意的方式解决了这个问题?

谢谢乔恩。

4

3 回答 3

3

Asp.Net MVC2 支持区域。

Scott Gu 在这里有一篇关于区域支持的博客。

从他的帖子。

每个区域都可以实现为一个单独的 ASP.NET MVC 项目,然后可以由主应用程序引用。这有助于在构建大型应用程序时管理复杂性,并促进多个团队一起在单个应用程序上工作

于 2009-10-20T18:27:25.643 回答
3

看看领域

区域是从 MonoRail 借来的概念,它将控制器组织到逻辑文件夹中。

http://haacked.com/archive/2008/11/04/areas-in-aspnetmvc.aspx

于 2009-10-20T17:28:26.980 回答
0

我总是删除“模型”文件夹并引用代表我的业务逻辑层和数据访问层的单独类库。我也有一些解决方案,我的控制器与我的视图保存在不同的项目中。我同意在更大的应用程序中,单一项目模型是不合适的。即使在较小的应用程序中,尤其是在模型代码必须与其他应用程序共享的情况下,将模型类放在实际的 MVC 项目中也是一个坏主意。

于 2009-10-20T17:38:24.603 回答