MVC命名空间组织

时间:2009-02-05 11:28:51

标签: model-view-controller coding-style namespace-organisation

希望SO社区可以帮助解决办公室的辩论。目前我们的结论是'它取决于'!

在MVC中,您如何组织命名空间?

选项A

您是否遵循具有模型,控制器和视图命名空间的MS ASP.NET MVC路线?

选项B

或者你将每个MVC三元组分成它的逻辑“函数”,例如:

功能A

  • FeatureAModel
  • FeatureAController
  • 类型
    • IFeatureAView(接口 - 以便控制器不会引用具体视图)
  • 查看
    • FeatureAView(具体)

我们可以看到两者的关键。我更喜欢选项B,因为它可以更好地在工作室中构建我的项目 - 一眼就能看出所有内容都按照功能分组。但是,如果我们希望将来将所有模型移出到服务层,则选项A为我们提供了更简单的缩放选项。

欢迎所有的想法!

2 个答案:

答案 0 :(得分:1)

我更喜欢层次结构中两者的组合。您的选项A是我的顶级水平,并且在该功能内部。

答案 1 :(得分:0)

我个人倾向于支持将所有控制器保留在同一名称空间内的想法,这完全是因为默认情况下路由不是名称空间感知。

这意味着如果我尝试将控制器命名为相同的名称,我会得到编译器时间错误,而不是关于路由的奇怪的运行时错误。

无论如何,有很多博客文章可以在google上搜索更多相关信息。

所以我会说

选项A