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