Asp.net mvc ASP.NET MVC与WebForms:速度和体系结构比较

Asp.net mvc ASP.NET MVC与WebForms:速度和体系结构比较,asp.net-mvc,architecture,webforms,comparison,performance,Asp.net Mvc,Architecture,Webforms,Comparison,Performance,我和我的一个朋友发生了一场争论,他是一家相当大的互联网公司的架构师。基本上,他是说ASP.NET MVC不适用于大型企业应用程序,它不如WebForms灵活,MVC应用程序将比web forms应用程序慢 根据我自己使用MVC的经验,我可以说它更灵活,重量更轻,因为没有页面生命周期、视图状态等。。因此,它至少应该加载得更快。据我所知,MVC是为中大规模流量而设计的 你们觉得怎么样?有人比较过速度和性能吗?对于大型应用程序,ASP.NET MVC是否比ASP.NET WebForms更好 简而言之

我和我的一个朋友发生了一场争论,他是一家相当大的互联网公司的架构师。基本上,他是说ASP.NET MVC不适用于大型企业应用程序,它不如WebForms灵活,MVC应用程序将比web forms应用程序慢

根据我自己使用MVC的经验,我可以说它更灵活,重量更轻,因为没有页面生命周期、视图状态等。。因此,它至少应该加载得更快。据我所知,MVC是为中大规模流量而设计的

你们觉得怎么样?有人比较过速度和性能吗?对于大型应用程序,ASP.NET MVC是否比ASP.NET WebForms更好


简而言之,在这两种选择中,您会选择哪一种用于大型企业应用程序?

我认为MVC是一种更轻的框架,而且性能更高,因为它没有WebForms框架现成的功能,例如viewstate。我认为说MVC不适用于更大规模的应用程序是不公平的,因为它在性能方面可能比WebForms扩展得更好。就开箱即用的特性而言,WebForms为您做的更多,因为它通过viewstate等为您处理帖子之间的状态

我没有任何与我进行性能比较的链接,但如果没有任何链接,我会非常惊讶。甚至微软也可能有一些。

  • 开发速度:WebForms
  • 性能速度:MVC
  • 易用性:WebForms(通常)
  • 单元测试:MVC(通常)

此网站是ASP.net MVC性能和可扩展性的最佳示例

我认为企业所必需的一些特性以及MVC提供的一些特性是

  • 单元测试-尽管最初需要时间来实现,但它在将来会节省大量时间

  • 关注点分离-这确实提高了开发和修改速度

  • 性能-由于MVC和Webforms都使用相同的ASP.net作为核心框架,而且MVC更轻,并且兼容HTTP,因此它为您提供了更好的性能


  • groupthink和cargocult编程在这方面非常强大。您的架构师朋友是对的(可能是因为错误的原因),同时也是错的

    它没有WebForms那么灵活

    这太傻了。你可以用任何东西做任何事。它们都非常灵活。在灵活性方面,MVC很可能是这里的赢家,因为您可以使用ActionFilters轻松实现面向方面的编程(AOP)。MVC在这里可能获胜的另一个原因是MVC考虑了依赖注入。您可以在WebForms中使用控制反转和依赖项注入,但它需要涉及模型-视图-呈现者模式的复杂实现

    MVC应用程序将比web表单应用程序慢

    这是无效的索赔,如书面所示。任何应用程序的编写速度都可能相对较慢,因为它是一个复杂的过程,涉及到许多方面才能达到最终产品。然而,就原始速度而言Webforms的速度大大加快

    它重量更轻,因为没有页面生命周期、视图状态等。。因此,它至少应该加载得更快

    这也是一个无效的声明。页面生命周期在所有方面都是不相关的,因为MVC中有关于控制器和动作过滤器的必然生命周期。视图状态很有趣。。。如果您选择将100KB和1000KB的数据填充到视图状态,要求每次回发到服务器时都有1MB-5MB的请求,那么显然,以不同的方式进行操作会更快。这不是webforms的错,但是webforms允许您使用viewstate很容易陷入失败的深渊

    对于大型应用程序,ASP.NET MVC是否比ASP.NET WebForms更好

    不。但是这个问题的答案是“ASP.NET WebForms比ASP.NET WebForms更适合大规模应用吗?”答案也是否。答案是否定的,因为答案总是这取决于。每个框架都有其优缺点,您需要衡量这些优缺点,并没有明确的答案

    如果你正在构建一个内容驱动的网站,那么你的工作就是尽可能快地加载页面,比如说,你很可能会选择webforms

    对于大型企业应用程序,您会选择哪一种

    首先,你很可能没有这个问题。如果您真的有责任设计一个大型企业应用程序,那么您就不会提出这个问题。(或者招聘过程实际上并不需要大规模的开发经验)


    对于大型应用程序而言,您选择的框架几乎毫无意义。大规模应用程序建立在排队的基础上。他们将直接或通过服务总线(如:大众交通、Azure服务总线或NServiceBus)利用MSMQ等工具。只有通过排队,你才能像亚马逊、Ebay和其他主要玩家那样,达到处理数百万请求的规模

    我想你想修改你的最后一句话,因为MVC和WebForms都是ASP.NET。更重要的是:你的意思是“ASP.NET MVC比ASP.NET WebForms更好吗?”哦,好吧,现在应该更好了——我希望你不介意,我清理了一些打字错误和其他东西,使问题更具可读性。易用性是主观的。我见过一些人认为webforms很容易,而那些人认为MVC更容易。随着asp.net MVC变得更加成熟和受支持,我认为随着时间的推移,开发速度将趋于稳定。如果正确创建web窗体应用程序,并适当分离关注点,您可以像MVC应用程序一样轻松地对其进行单元测试。我们不需要引入MVC来教学