当Jeremy和Chad发布他们的FubuMvc项目时,他们提到了一个不同的特点,即他们的“Thunderdome原则”:
他们采用“一个ViewModel(或零)”的方法有什么优势?“Thunderdome原则” - 所有控制器方法都接收一个ViewModel对象(在某些情况下为零个对象),并返回一个单独的ViewModel对象(一个对象进入,一个对象离开)。控制器类永远不会直接暴露给任何与HttpContext相关的内容。看到人们试图编写模拟或存根新的IHttpContextWrapper接口的测试会让我哭泣。同样,控制器方法不返回ViewResult对象,并且通常与所有MVC基础设施解耦。我们早期采用这种策略作为使控制器测试在机械上更简单的方式。它肯定实现了这个目标,但也使控制器代码非常简洁和易于阅读。我们将在KaizenConf上解释这是如何工作的。