在新项目中分离控制器?这是一个很好的设计吗?

时间:2012-04-24 03:06:59

标签: asp.net-mvc controller

我的同事告诉我在一个单独的项目中将我的控制器分开,以使单元测试尽可能简单,他还告诉我为控制器项目和测试项目创建一个解决方案,以避免在执行单元时加载整个应用程序测试。在新项目中分离控制器是一种好方法吗?

4 个答案:

答案 0 :(得分:0)

我不确定这个问题是否有简单的是或否答案。我认为你的项目必须非常非常大才能对你的单元测试产生影响。我的个人观点是将控制器与视图和视图模型一起留在Web项目中。但是,我是将模型转移到单独项目的粉丝。我这样做的原因与更简单的单元测试无关,而是在其他应用程序中重用数据访问(模型)。

答案 1 :(得分:0)

在我看来,你应该总是至少将控制器与你的视图项目(通常是我的web项目)分开,因为这个想法是控制器应该可以用于任何视图(可能以后你决定使用例如,它们用于Windows Forms项目。它还使命名空间更加清晰。

答案 2 :(得分:0)

这一开始似乎是一个好主意。在中间创建一个prensentation层并保持MVC项目只包含视图,使其成为一个真正的UI项目。另一方面,您可能会失去对视图的工具支持。由于您必须忽略所有警告,因此必须确保所有视图都存在,并强烈键入对象。

我不理解在测试套件中引用MVC项目的问题,因为无论如何你可能会引入MVC命名空间。

答案 3 :(得分:0)

从我的角度来看,让你将控制器移出到一个单独的项目有两件事需要考虑,如果你这样做,那么它强制你思考如何解决低耦合问题和精确低耦合类可以比紧耦合类更容易测试。

另一方面,将控制器放在与视图相同的项目中是有道理的,因为控制器通常知道视图。

如果你想到可重用性,这里可能存在争议,因为通常控制器是“胶水”组件,这意味着它们中有很多接线。