ASP.Net MVC与ASP.Net表单

标签 asp.net asp.net-mvc

您为什么考虑将ASP.Net MVC或标准ASP.Net与Web项目的表单和控件一起使用?除了个人喜好之外,这还会是什么原因?您发现哪种项目更适合MVC,哪些项目适合普通的ASP.Net?

您是否考虑将当前项目转移到另一个或另一个项目?

最佳答案

WebForms是对开发人员隐藏Web机制的抽象。它使桌面开发人员可以相对轻松地将其技能转移到Web上。尽管确实可以部分实现这一目标,但在实际情况下,通常通常不久就可以中断抽象,并且必须采用一些麻烦的解决方法。单元测试很困难,因为用于处理用户交互的逻辑与UI紧密耦合。典型的WebForms应用程序生成的HTML远非最佳。它通常是ated肿的,难以阅读,并且包含很多内容,这些内容的存在仅仅是为了使抽象起作用,例如, viewstate,这是一堆巨大的信息,可以帮助抽象给开发人员以错觉,即使网络是无状态的媒介也是如此。

但是,MVC包含Web的机制。 Web请求和响应中发生的基本操作以简单的抽象形式呈现给开发人员。 MVC有明确的关注点分离。该模型简单地表示了与系统有关的业务对象或实体,以及用于检索和存储这些对象的实例的方法。 Controller 接收一个Web请求,对模型执行操作,然后将模型移交给 View 。该 View 纯粹是渲染器,用于将模型呈现给用户并公开允许用户制定下一个要传递给 Controller ​​的请求的界面项。关注点的这种分离允许相对容易的单元测试。开发人员可以完全控制所生成的HTML,并且不需要其他任何工件(例如viewstate)。

我更喜欢MVC。在极少数情况下,使用Webforms可能会很有用,例如快速的原型(prototype)或演示,但否则我总是建议使用MVC。

至于将项目从Webforms转移到MVC,这显然是非常主观的,并且取决于应用程序本身和预算限制,但是总的来说,我认为这是朝着正确方向迈出的一步。

关于ASP.Net MVC与ASP.Net表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1552984/

相关文章:

css - 我已应用 Materialize CSS 但仍未显示图标

c# - 如何在 ASP.NET 中获取 session 状态对象的集合?

asp.net-mvc - Spark View 引擎和 MVC.NET 4

asp.net-mvc - 无法检索表单例份验证票证上的用户数据

asp.net-mvc - 如何在 razor 中为 .net core 2.0 mvc 映射路径?

php - 我什么时候应该使用 CMS 而不是从头开始创建网站?

c# - Ember.js 查找从 webapi Controller 返回的第一个数据属性的模型

c# - SagePay 直接支付集成 C#

.net - "active directory integration"在您的 .NET 应用程序中意味着什么?

如果提交有一些代码,Jquery 验证不适用于提交