MVC控制器应该在单独的DLL中吗?

时间:2009-01-23 19:34:38

标签: .net winforms model-view-controller design-patterns

我创建了一个.NET winforms MVC。 Controller和View属于同一个EXE。模型位于一组由几个组使用的DLL中。 MVC非常明确。模型对控制器一无所知,控制器对View一无所知。我正在考虑将Controller放在自己的DLL中,以便它可以进行单元测试。非常不像有人会重用控制器。单元测试是进入DLL的唯一原因。

从概念上讲,控制器是否应始终与View处于同一个程序集中?是什么原因/反对将它们保持在一起?

1 个答案:

答案 0 :(得分:5)

控制器和视图的分离是一个抽象概念。没有严格的规则,您应该将它们分开(就像三层应用程序中的层)。然而,这两种方法都可能有一些优势。

分离装配具有以下好处:

  • 减少意外地将视图耦合到控制器并破坏分离的可能性。
  • 可以更轻松地编辑视图而无需重新编译控制器(从部署角度来看,这很棒)。
  • 构建视图和控制器变得分离,因此即使另一个构建视图和控制器根本不构建,也可以测试其中一个。

但是,小型项目可能不可行。对于非常小的项目,您可能希望发送单个可执行文件,而不是其他任何内容。此外,您可能不想创建3个单独的项目。

嘿,你可能根本不想对它进行单元测试;)哎呀,我的脑袋受伤了,这块大砖从哪里来? :))