5

可能重复:
MVC 与 WebForms
ASP.NET MVC 性能

我将在接下来的几周内开始一个新的网络项目。这是一个面向公众的网站,供一个有点著名的人使用。我有 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?

4

6 回答 6

14

就开发速度而言,哪个会更快:webforms 还是 mvc?

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

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

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

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

这是 MVC 擅长的事情 - 定义实体并快速创建列表/详细信息/创建/编辑/删除操作和视图。

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

于 2011-05-08T22:31:33.820 回答
5

就开发速度而言,哪个更快:webforms还是mvc

WebForms 可以更快地开发,因为它是很多 RAD 开发。但是,从长远来看,您会后悔没有将您的关注点分开。保持关注点分离可能需要更长的时间,但事后更容易维护。

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

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

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

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

于 2011-05-08T22:56:52.350 回答
2

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

这是Scott Hanselman 的那个 nuget 包的链接。

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

于 2011-05-08T22:22:59.320 回答
2

就开发速度而言,哪个会更快:webforms 还是 mvc?

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

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

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

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

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

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

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

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

总体 - MVC FTW

于 2011-05-08T23:33:33.533 回答
1

Orchard是值得注意的 MVC cms。

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

如果您打算自己构建它并且您对 Html、Css 和 Javascript 感到满意,那么您可能想做 MVC3。假设您有一些基本的 Web 技能,MVC3 确实消除了 Web 表单的大部分潜在生产力优势。

于 2011-05-08T22:23:22.093 回答
-1

Umbraco 是一个免费的 CMS,很棒并且基于 .NET。

http://umbraco.com/

于 2011-05-08T22:16:48.400 回答