asp.net - 何时使用 ASP.NET MVC 与 ASP.NET Web 窗体?

标签 asp.net asp.net-mvc webforms

有关 ASP.NET MVC 的常见问题之一是为什么应该在 ASP.NET Web 窗体上使用它?答案通常包括 ViewState 和干净的 URL 等。最后,您会发现有关使用正确的工具来完成工作以及它们具有不同目的的简介。然而,我不相信我曾经见过这些目的是什么。那么,您什么时候会真正选择 ASP.NET MVC 而不是 ASP.NET Web 窗体,或者 ASP.NET Web 窗体而不是 ASP.NET MVC?

最佳答案

您不会选择 ASP.Net MVC 而不是 ASP.Net,因为 ASP.Net MVC 仍然是 ASP.Net。您确实选择 ASP.Net MVC 或 ASP.Net Web 窗体,并且有很多充分的理由这样做:

  • 更轻松地控制 HTML
  • 更容易进行单元测试
  • 很少有“陷阱”

另一方面,Web 表单确实有一些优点:

  • 轻松快速地将简单的 CRUD/业务应用程序组合在一起
  • 本地 LAN 环境中 ViewState 的性能难以匹敌
  • 易于学习的形式范式

结果是,如果您在企业 LAN 环境中构建业务应用程序(老实说,大多数 Web 开发人员仍然是这样),Web Forms 确实很棒。从这个意义上说,微软确实了解他们的市场。但是,如果您正在为公共(public)互联网构建应用程序,您可能需要 MVC,以便您可以进行彻底的测试,并确保您的页面不会因为不必要的 ViewState 或 JavaScript 数据而变得臃肿。

此外,过去几年发生的变化是,甚至许多企业 Intranet 应用程序现在也需要支持家庭/远程使用,这使得 MVC 比以前对这些人群更具吸引力。

关于asp.net - 何时使用 ASP.NET MVC 与 ASP.NET Web 窗体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1144153/

相关文章:

asp.net-mvc - ModelBindingContext 模型名称

c# - 序列不包含任何元素服务器端

asp.net-mvc - 更新多个数据库 MVC 5

c# - 如何使用服务器端代码从 http post headers 获取表单数据

ASP.NET 服务器不异步处理页面

asp.net - 是否可以在ASP.NET WEBFORM业务对象类中为MVC使用数据注释?

javascript - 需要 DIV 的客户端拼写检查器

asp.net - IIS 7 中虚拟目录 ASP.NET 网站的配置错误

c# - MVC 4 @HTML.HiddenFor 没有在回发时更新

c# - 委托(delegate)和方法组的性能