Asp.net mvc 什么时候我应该使用WebForms来提供我的用户想要的用户体验,而不是混乱的MVC?

Asp.net mvc 什么时候我应该使用WebForms来提供我的用户想要的用户体验,而不是混乱的MVC?,asp.net-mvc,model-view-controller,Asp.net Mvc,Model View Controller,我一直在使用MVC重新实现一个曾经使用WebForms构建的应用程序。我注意到的是: MVC对于简单页面非常有效,这些页面不需要在请求之间维护大量状态。如果页面需要复杂度,那么页面遵守MVC的纯粹性很快就会变成一个泄漏的抽象,并在视图实现和控制器之间创建一个非常紧密的耦合。我对MVC的理解是,有一个控制器应该能够处理给定模型的多个视图,并且两者之间的分离非常清晰 我看到的另一个摩擦点是,MVC意味着业务规则可以通过模型的设计来实施(我很喜欢)。然而,当我构建我的应用程序时,我很快发现验证也应该在

我一直在使用MVC重新实现一个曾经使用WebForms构建的应用程序。我注意到的是:

  • MVC对于简单页面非常有效,这些页面不需要在请求之间维护大量状态。如果页面需要复杂度,那么页面遵守MVC的纯粹性很快就会变成一个泄漏的抽象,并在视图实现和控制器之间创建一个非常紧密的耦合。我对MVC的理解是,有一个控制器应该能够处理给定模型的多个视图,并且两者之间的分离非常清晰

  • 我看到的另一个摩擦点是,MVC意味着业务规则可以通过模型的设计来实施(我很喜欢)。然而,当我构建我的应用程序时,我很快发现验证也应该在客户端进行(如果没有别的原因的话,那就是为了避免多次发布的用户体验)。对我来说,这似乎是设计模式的另一个掺假,因为我不仅在两个地方存储业务逻辑,而且在两种语言中存储业务逻辑

  • 我所面临的问题是,虽然WebForms几乎不能让我控制MVC中提供给我的UI呈现和标记,但我却不得不在视图中编写大量代码,以重新创建应用程序的WebForm版本,并提供类似的用户体验


    因此,在进行UI设计和实施解决方案时,我应该如何考虑解决与经典WebForms方法不同的问题?还有梅森·迪克森(Mason Dixon)的路线是什么(它是否存在),我应该简单地使用WebForms来提供我的用户希望的用户体验,而不必创建混乱的MVC应用程序?

    MVC可以像WebForms一样维护状态。如果您确实需要,您仍然可以使用会话或MVC TempData

    说你必须写国家管理的指标有点夸张。类似ViewState的实现实际上非常容易创建。ViewState的核心只是将状态信息序列化并加密到
    字段中。使用MVCs模型绑定概念,这非常容易实现

    你也应该考虑到MVC幻想,JavaScript的善良也变得更容易访问。事实上,在客户端浏览器上维护复杂的基于javascript的向导或类似页面要容易得多,您甚至不需要使用会话或临时数据

    所有新的MVC开发人员在学习时最终都会遇到“状态管理墙”。MVC只是采取了一种不同的方法,你需要调整你的WebForms心态来应对。在这方面,学习如何实现javascript/ajax的模式和有效使用将非常有帮助

    MVC对于WebForms开发人员来说只是异国情调和疯狂,但一旦你克服了一些学习障碍,你将真正开始像冠军一样飞翔和保持状态



    在何处实施验证是您的选择,而不是必需的。MVC帮助从元数据自动生成客户端验证,因此几乎没有重复。你还应该考虑在验证邮政编码和实际业务逻辑之间有很大的区别。

    < P>你对MVC只适用于简单的页面是正确的。如果您正在制作真实世界的应用程序,那么您将添加Web窗体已经提供的大量自定义代码。为了让MVC应用程序像Web表单应用程序一样工作,您无论如何都放弃了MVC的所谓好处,并且在Web表单中堆积了一些据说不好的东西。MVC只是吸引不同开发人员的另一种方式,但实际上并没有为开发社区添加任何有价值的东西。

    视图-控制器耦合没有错,视图是为控制器服务的。我将使用xVal进行客户端验证,而不是服务器端代码。