【问题标题】:How do you choose between an asp.net webform and mvc application?您如何在 asp.net webform 和 mvc 应用程序之间进行选择?
【发布时间】:2009-03-25 22:41:05
【问题描述】:

这是一个很难问的问题,因为它涉及的范围非常广泛。

有没有人知道在项目开始时有助于在 WebForms 和 MVC 应用程序之间进行选择的问题评分系统?

例如TDD 是这个项目的重要组成部分吗? (如果是,则 MVC 得分 1,WebForms 得分 0)

【问题讨论】:

标签: asp.net-mvc webforms


【解决方案1】:

我会考虑以下几点:

  1. 团队的当前技能组合。如果您有一个大型团队,他们不会很快掌握 MVC,但对 Web 表单很满意,我会坚持使用 Web 表单

  2. 您需要什么级别的控制? MVC 为您提供了更多控制权,但这也意味着您将自己做很多额外的事情。 WebForms 给你的控制少了很多,但盒子里有很多东西。如果能够控制 HTML 输出对您来说比 MVC 更重要的话。

  3. 您需要第三方集成吗?对 MVC 的 3rd 方控件支持并不多,但是对 webforms 有大量的支持。在 web 表单中获得漂亮的网格很简单,但是您将在 MVC 中编写大量自己的代码来解决这个问题

  4. 如您所述,TDD 是否可取?

  5. Web 表单中的状态管理要容易得多

【讨论】:

    【解决方案2】:

    我有一个单一的问题测试(免责声明:它远非完美,但在使您倾向于每种技术方面花费了很多时间):

    您的应用程序是更面向表单(例如 Intranet 的东西或其他东西)还是您正在构建一个面向 Internet 的网站(例如 StackOverflow)。在第一种情况下,我可能会使用 Web 表单。 ASP.NET MVC 可能更好地满足后一种情况。

    另一件事:这两个并不是唯一的范例。在 MVC 时代之前,我通过构建 HTTP 处理程序完成了几个项目,这些处理程序执行 MVC 所做的路由和其他事情。您还可以剥离 ASP.NET 的 Web 表单部分,只使用非服务器表单 Web 控件(虽然您会在标准 Web 表单项目中这样做,但我几乎不能将这种样式称为 ASP.NET Web 表单)。

    【讨论】:

      【解决方案3】:

      除非您正在开发一个非常以数据为中心的应用程序并且需要具有数据绑定和视图状态的服务器控件,否则我会选择 MVC。

      自从 MVC 预览版 2 以来,我没有在 Web 表单上做任何严肃的事情。MVC 在设计模式和最佳实践方面要好得多。

      是的,IMO TDD 非常重要,它给 MVC 的分数不止 1 分。

      【讨论】:

        【解决方案4】:

        通常,使用 WebForms 或 MVC 的决定归结为控件。如果您要使用大量服务器端控件,那么 WebForms 适合您。如果你没有这个负担,那么至少在我看来,MVC 会更干净,更可测试。

        在使用它们之后,我现在决定的方式是:我需要使用服务器控件吗?如果我不这样做,那么我默认使用 MVC。

        如果您因某种原因被 WebForms 卡住了,那么您可以实现 MVP (Model-View-Presenter) 模式以将视图与逻辑分开,并希望对代码隐藏进行单元测试。

        【讨论】:

          猜你喜欢
          • 2014-04-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-02-22
          • 1970-01-01
          • 2012-04-10
          相关资源
          最近更新 更多