首页 文章

ASP.NET MVC与WebForms:速度和架构比较[关闭]

提问于
浏览
28

我与我的一位朋友争吵,他是一家大型互联网公司的建筑师 . 基本上他说ASP.NET MVC不适用于大型企业应用程序,它不像WebForms那样灵活,而且MVC应用程序比Web表单应用程序慢 .

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

你们有什么感想?有没有人比较速度和性能? ASP.NET MVC比ASP.NET WebForms更适合大规模应用吗?

简而言之,在这两种选择之间,您会选择哪种选择用于大规模企业应用程序?

4 回答

  • 1
    • 开发速度:WebForms

    • 性能速度:MVC

    • 易用性:WebForms(通常)

    • 单元测试:MVC(通常)

  • 7

    该站点是ASP.net MVC性能和扩展的最佳示例

    我认为Enterprise和MVC提供的一些功能是必需的

    • Unit testing - 尽管最初实施此操作需要时间,但将来可以节省大量时间

    • Separation of Concerns - 这确实提高了开发和修改速度

    • Performance - 因为MVC和Webforms都使用相同的ASP.net作为核心框架,而MVC更轻且符合HTTP,它可以提供更好的性能

  • 29

    我认为MVC是一个更轻的框架,性能更高,因为它没有做很多WebForms框架开箱即用的东西,例如viewstate . 我认为MVC不适用于大规模应用程序是不公平的,因为它可能比WebForms在性能方面更好地扩展 . 就开箱即用的功能而言,WebForms为您提供更多功能,因为它可以为您,通过viewstate等处理帖子之间的状态 .

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

  • 4

    在这个主题中,groupthink和cargocult编程很强大 . 您的建筑师朋友是正确的(可能是出于错误的原因)并且同时也是错误的 .

    它没有WebForms那么灵活

    这太傻了 . 你可以做任何事情 . 它们都非常灵活 . 在灵活性方面,MVC可能是明显的赢家,因为您可以使用ActionFilters轻松实现面向方面编程(AOP) . MVC可能成为赢家的另一个原因是在MVC中考虑了依赖注入 . 您可以在WebForms中进行控制和依赖注入的反转,但它需要涉及Model-View-Presenter模式的复杂实现 .

    MVC应用程序将比Web表单应用程序慢 .

    如书面说明,这无效 . 任何应用程序都可以相对较慢地编写,因为它是涉及到达最终产品的许多方面的复杂过程 . 但是,就原始速度而言 . Webforms is substantially faster . https://stackoverflow.com/a/20253243/37055

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

    这也是一个无效的陈述 . 页面生命周期在所有方面都无关紧要,因为MVC中有关于控制器和动作过滤器的必然生命周期 . 查看状态很有意思......如果你选择将100和1000千字节的数据填充到视图状态,要求每次回发到服务器都有1MB-5MB的请求,是的,几乎任何不同的事情显然会更快 . 这不是webforms错误,但是webforms允许您使用viewstate轻松陷入失败的陷阱 .

    ASP.NET MVC比ASP.NET WebForms更适合大规模应用吗?

    没有 . 但这个问题的答案"is ASP.NET WebForms for large scale apps than ASP.NET WebForms ?"答案也是 No. 答案是否定的,因为答案总是 it depends . 每个框架都有利弊,你需要衡量这些,没有确定的答案 .

    如果're building a content driven site who'的工作是尽可能快地加载页面,例如www.microsoft.com那么你可能会选择webforms .

    您会选择用于大型企业应用程序?

    首先,你很可能没有这个问题 . 如果您真正负责 Build 大规模的工作,那么您就无法提出这个问题企业应用 . (或招聘过程实际上并不需要大规模的开发经验) .

    就大规模应用而言,您选择的框架几乎毫无意义 . 大规模应用程序 Build 在排队上 . 他们将直接或通过服务总线利用MSMQ等工具,例如:Mass Transit,Azure Service Bus或NServiceBus . 只有排队才能达到规模,以亚马逊,Ebay和其他所有主要玩家的方式处理数百万个请求 .

相关问题