ASP.NET WebForms和MVC之间的主要区别是什么?

10

我知道什么是MVC并且我在使用webforms,但我不知道MVC会有多大的不同。我猜后台代码模型会不同。那么这就像是减去代码后台而改为控制器呢?

我看到有其他相关的帖子,但我不认为它们解决了这个问题。

5个回答

13

首先,MVC不使用控件,而倾向于使用老旧的标准等控件。因此,在ASP中,您不会像在后台代码中那样将“事件”附加到控件并执行。它依赖于标准的HTTP POST进行操作。

它不使用ViewState对象。

它允许更智能的URL映射,但现在Routing命名空间已被拆分出来了,我想知道它是否可用于WebForms?

它使得Web部件的自动化测试变得更加容易。

它允许更容易地将UI逻辑与“后端”组件分离。


ASP.NET 4.0现在支持路由。个人而言,我使用HttpModule来处理它,但现在它已经内置了。 - bbqchickenrobot
3
可能最重要的是MVC接受HTTP,而WebForms则很好地将其抽象化。 - Omar

8

文本太小了。为什么不直接复制到答案中呢? - Ross
我认为,对于从MVC转向WebForms的开发人员来说,需要进行大量的培训。这并不意味着MVC很难学。 - Pure Function
3
建议我们给予原作者应有的荣誉 -> 原文链接: http://forums.asp.net/t/1528396.aspx?MVC+vs+Web+Forms - Radu Gheorghiu

2

2

关于您的问题,有很多可以说的。

MVC允许干净地分离关注点,可测试性和测试驱动开发(TDD)。它支持干净的RESTful URL,并且非常可扩展...这意味着您可以交换查看引擎、路由机制和许多其他可能不喜欢的东西。

如需更多信息,建议阅读Dino Esposito的博客文章,标题为“ASP.NET MVC框架的架构视图”。在此帖子中,他比较了经典代码后台方法与MVC之间的许多区别。


0

Asp.Net Web Forms:

  1. Asp.Net Web Form 遵循传统的事件驱动开发模型。
  2. Asp.Net Web Form 拥有服务器控件。

Asp.Net MVC 模型:

  1. Asp.Net MVC 是一种基于 MVC(模型、视图和控制器)模式的轻量级开发模型。Asp.Net MVC 不支持视图状态。

查看更多..


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接