【发布时间】:2013-01-11 14:20:38
【问题描述】:
我正在整理一个 MVC 4 项目,该项目可能会在未来几年内广泛发展。有了从头开始的奢侈和挑战,我正在尝试找出路由和组织我的控制器和视图的最佳实践。
MvcCodeRouting NuGet 包很有吸引力,我打算使用它。但是,我不确定使用 MVC 区域是否也是明智的。如果使用 MvcCodeRouting,似乎 MVC 区域是多余的,但我不确定区域提供的额外代码组织是否仍然可取。
为了说明我的意思,让我们以这个虚构的评分应用程序为例。它具有以下高级领域:
- 公共门户
- 经过身份验证的学生门户
- 认证教师门户
- 经过身份验证的管理员门户
假设每个门户最终都会有 100 个不同的视图(让我们雄心勃勃!)。如果实现了这种规模,MVC 区域似乎是划分代码的好方法,在每个区域中使用 MvcCodeRouting。或者也许我们应该按照我们喜欢的方式组织代码,让 MvcCodeRouting 完成繁重的工作。
因此,Areas 加上 MvcCodeRouting 设计看起来像这样(文件夹结构):
- MvcWebProject
- 区域
- 管理员
- 控制器
- 型号
- 观看次数
- 公开
- 控制器
- 型号
- 观看次数
- 学生
- 控制器
- 型号
- 观看次数
- 老师
- 控制器
- 型号
- 观看次数
- 管理员
- 内容
- 控制器
- 脚本
- 观看次数
- 区域
没有区域的 MvcCodeRouting 设计看起来像这样(文件夹结构):
- MvcWebProject
- 内容
- 控制器
- 管理员
- 公开
- 学生
- 老师
- 型号
- 管理员
- 公开
- 学生
- 老师
- 脚本
- 查看次数
- 管理员
- 公开
- 学生
- 老师
在这些设计中隐含的是,MvcCodeRouting 将用于通过命名空间进一步组织类。
在这些设计中,哪种方法更好?为什么?还有另一种更好的方法吗?在一种设计或另一种设计中,在门户之间共享资源是更容易还是更困难?
请注意,这只是整个代码解决方案的前端,因此其背后的整个服务/域/数据库都有自己的特定架构。对于这个问题,我只是对如何在 MVC 中构建这些不同的应用程序领域感兴趣。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-areas