【问题标题】:Should MVC Controller be in separate DLL?MVC 控制器应该在单独的 DLL 中吗?
【发布时间】:2010-10-03 05:12:06
【问题描述】:
我创建了一个 .NET winforms MVC。控制器和视图在同一个 EXE 中。模型位于一组被多个组使用的 DLL 中。 MVC 非常明确。模型对控制器一无所知,控制器对视图一无所知。我正在考虑将控制器放在自己的 DLL 中,以便对其进行单元测试。非常不像有人会重用控制器。单元测试是我拥有进入 DLL 的唯一原因。
从概念上讲,控制器是否应该始终与视图位于同一个程序集中?有什么理由支持/反对将它们放在一起?
【问题讨论】:
标签:
.net
winforms
model-view-controller
design-patterns
【解决方案1】:
控制器和视图的分离是一个抽象概念。没有严格的规则要求您在物理上将它们分开(就像三层应用程序中的层一样)。不过,这两种方法都可能有一些优势。
分离程序集有以下好处:
- 减少了将视图意外耦合到控制器并破坏分离的可能性。
- 无需重新编译控制器即可更轻松地编辑视图(从部署的角度来看这非常棒)。
- 构建视图和控制器是分开的,因此您可以测试其中一个,即使另一个根本没有构建。
但是,对于小型项目,这可能是不可行的。对于非常小的项目,您可能希望发布一个可执行文件,而不是其他任何东西。此外,您可能不想创建 3 个单独的项目。
嘿,你可能根本不想对它进行单元测试;)哎呀,我的头受伤了,这块大砖是从哪里来的? :))