为什么MVC在ASP.NET中运作得很好,但在(.NET)WinForms中却不行? 微软没有提供WinForms的显式MVC。然而,我看到有人尝试使用它,但相比于ASP.NET MVC,它们有些混乱。
在我看来,这是因为浏览器请求与处理它的控制器之间存在一对一的关系,以及模型和呈现模型的后续视图之间存在一对一的关系。而在Windows Forms中,您没有这样的映射。您可以有多个触发事件的事物,并且可以在模型上拥有多个视图。因为没有像HTTP请求中那样的请求-响应管道(一个请求,一个响应),所以您必须处理诸如注册多个视图(在ASP.NET MVC中不需要这样做,只有一个由控制器指定的视图)以及指示控制器上相同输入的多种方式(再次强调,在ASP.NET MVC中仅有一种方式,即通过请求,尽管与第一点相比,这很小)。