【问题标题】:How to decide on WebForms vs ASP.NET MVC 3 for new project? [duplicate]如何为新项目决定 WebForms 与 ASP.NET MVC 3? [复制]
【发布时间】:2011-08-21 07:18:51
【问题描述】:

可能重复:
MVC versus WebForms
ASP.NET MVC Performance

我将在接下来的几周内开始一个新的网络项目。这是一个面向公众的网站,供一个有点著名的人使用。我有 2 个选择:使用旧的 ASP.NET 4 或带有 Razor 的新 ASP.NET MVC 3。

我确实计划进行任何类型的单元测试。这是一个相当简单的网站,主要由 javascript、html 和 css 组成。

我需要建立一个管理面板来创建/删除/编辑页面;添加/删除图片到投资组合画廊。这可能就是我从管理面板中需要的全部内容。没什么复杂的。

免责声明除了从 Pluralsight 培训和 ASP.NET 官方教程中学到的知识外,我在 Webforms 或 MVC 方面没有太多经验。我确实有 css 和 html 的中级知识;没有使用 javascript 的经验。但鉴于 javascript 与其他 OOP 语言如此相似,如果我不得不使用 JS,我并不担心。

  • 在开发速度方面,哪个会更快:WebForms还是MVC
  • 两者之间的开箱即用性能如何?
  • 从长远来看,哪个更容易维护?

如果您建议不要从头开始一个 Web 项目,也许您可​​以推荐一个轻量级的 ASP.NET CMS?

【问题讨论】:

  • 您在这里问至少三个问题,通过将它们结合起来,您几乎使这个问题(如果不是完全的话)过于本地化。但是,已经提出并回答了关键的个别问题,如果您愿意四处寻找...被问到了。
  • 我真的很讨厌当我进行谷歌搜索却发现答案是“四处寻找他们”。

标签: asp.net asp.net-mvc design-decisions


【解决方案1】:

在开发速度方面,哪个会更快:webforms 还是 mvc?

这取决于许多因素,但假设您将 eqal 技术与 webforms 和 mvc 一起使用,那么 mvc 应该更快。 Webforms 有一些开销,因为事情的实际工作方式(例如,http 是无状态的)与编写代码时假设的内容(您正在像应用程序是有状态的一样进行编程)之间不匹配

从长远来看,哪个更容易维护?

IMO MVC 更易于维护,因为它更容易更改裸 html/js 代码,模型 (MVC) 定义明确,这使得新人了解一切如何工作时不那么痛苦。

我需要建立一个管理面板来创建/删除/编辑页面;添加/删除图片到投资组合画廊。

这是 MVC 擅长的事情 - 定义实体并快速创建 List/Details/Create/Edit/Delete 操作和视图。

PS> 我并不是说普通的旧 ASP.NET Webforms 不好,只是它有时变得过于复杂,您需要为此付出代价。我认为开源电子商务解决方案——NopCommerce 就是一个很好的例子。它设计得很好,写得很好,但是由于 Web 表单所需的开销,它真的很慢。

【讨论】:

  • 我同意,MVC 将更容易维护。它也将是一个更快的网站,不要忘记...没有 ViewState :-)
  • 如果开发时间也是一个因素怎么办?我的意思是我不知道 MVC,但是我在开发项目时有时间限制。我应该选择 MVC 还是 Web 表单。 (我知道网络表单模型)。
  • 这个决定完全取决于你。我只能说,MVC 真的很容易学习,而且几乎不会导致一些奇怪的错误。然而,ASP.NET Web 窗体最近得到了发展,现在比以前好多了。
【解决方案2】:

在开发速度方面,哪个会更快:webforms还是mvc

WebForms 的开发速度可能会稍微快一些,因为它需要大量 R.A.D.发展。但是,从长远来看,您会后悔没有将您的关注点分开。保持关注点分离可能需要更长的时间,但事后维护起来会容易得多。

两者之间的开箱即用性能如何?

MVC 会表现得更好,因为控制器和视图之间没有传递“额外”。你只传递必要的东西(IE:没有 ViewState)

从长远来看,哪个更容易维护?

回到我上面提到的。保持关注点分离可能需要更长的时间,但事后维护起来会容易得多。

【讨论】:

    【解决方案3】:

    Web 表单和 MVC 各有利弊。但你不必选择。您可以使用 nuget 包将 MVC 添加到 Web 表单应用程序。您只需从 Web 表单开始,然后它将包含 MVC。这样一来,您就可以根据自己的需求,两全其美。

    Here is the link 来自 Scott Hanselman 的那个 nuget 包。

    如果您只是想做一个 CMS,那么您绝对应该使用 Orchard

    【讨论】:

    • 由于这是一个新项目,我不会将 WebForms 和 MVC 混合作为“选择”。维护将是一场噩梦 (IMO)
    【解决方案4】:

    在开发速度方面,哪个会更快:webforms 还是 mvc?

    有些人会争论 Web 表单,因为“现成的”服务器控件基本上可以做任何你想做的事情。虽然这在 MVC 的初始版本中可能是正确的,但现在我们处于 v3 并且社区正在积极参与 - 您将能够找到一个 MVC 端口(例如自定义 HTML 帮助程序)来为您做这些事情.

    更不用说 MVC 工具中大量的脚手架改进将使您的“CRUD”生活快得多。

    因此很难对“开发”进行分类,但就基于后端数据库运行完整页面而言,我会说 MVC 更快。

    两者之间的开箱即用性能如何?

    这很难回答。任何有性能的东西都是。我在某处读到 Razor 视图引擎比 Web 窗体所基于的 ASPX 视图引擎稍快。加上 ViewState 之类的东西,我不得不说(没有任何支持的“事实”)MVC 会更快。但不要指望技术能够拥有性能良好的应用程序,而是要依靠自己使用手头的技术编写最佳代码。

    从长远来看,哪个更容易维护?

    Definetely MVC - 毫无疑问。 SoC(关注点分离)是 MVC 的一个巨大推动点,不仅是 M-V-C 分离,还有 MVC 核心的“convention over configuration”方法。 EditorTemplates 和 DisplayTemplates 就是一个很好的例子——它们不符合约定(传递给它的模型类型)。因此,您可以创建多个模板并浏览不同的模型类型,而无需更改任何后端代码。

    话虽如此 - 没有什么能阻止您拥有一个良好分离和布局的 Web 表单应用程序 - 但只有到目前为止,您才能在不遇到技术本身的障碍的情况下进行 - 例如“模型背后的代码”,这是不可能的避免。

    总体 - MVC FTW

    【讨论】:

      【解决方案5】:

      Orchard 是值得注意的 MVC cms。

      如果您要选择预构建的 CMS,请根据 CMS 的优点进行选择。如果您知道要构建什么,那么 MVC 与 Web 表单在这里可能无关紧要。

      如果您打算自己构建它并且您熟悉 Html、Css 和 Javascript,那么您可能想要执行 MVC3。假设您具备一些基本的 Web 技能,MVC3 确实消除了 Web 表单的大部分潜在生产力优势。

      【讨论】:

        【解决方案6】:

        Umbraco 是一款免费的 CMS,非常棒且基于 .NET。

        http://umbraco.com/

        【讨论】:

        • 是的,但是为什么通过 Web 应用程序或 MVC 方法使用它?
        猜你喜欢
        • 2010-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-07
        • 1970-01-01
        • 1970-01-01
        • 2011-07-12
        • 1970-01-01
        相关资源
        最近更新 更多