你如何在asp.net webform和mvc应用程序之间进行选择?

时间:2009-03-25 22:41:06

标签: asp.net-mvc webforms

这是一个难以回答的问题,因为它的范围很广。

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

e.g。 TDD是这个项目的重要组成部分吗? (如果是,MVC为1,WebForms为0)

4 个答案:

答案 0 :(得分:2)

我有一个单一的问题测试(免责声明:它远非完美,但是在使您倾向于使用每种技术时需要花费大量时间):

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

另一件事:这两个并不是唯一的范例。在MVC时代之前,我已经通过构建HTTP处理程序完成了几个项目,这些处理程序执行路由以及MVC所做的其他工作。你也可以剥离ASP.NET的Web表单部分,只使用非服务器表单的Web控件(当你在标准的Web表单项目中执行它时,我几乎不能称这种样式的ASP.NET Web表单。) / p>

答案 1 :(得分:2)

我会考虑以下事项:

  1. 团队的当前技能组合。如果你有一个庞大的团队,他们不会快速获得MVC,但对Web Forms感到满意,我会坚持使用Web Forms

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

  3. 您需要第三方集成吗? MVC没有很多第三方控制支持,但是对于webforms有很多支持。在webforms中获得一个漂亮的网格很简单,但是你会在MVC中编写很多自己的代码来解决这个问题

  4. 如你所说,TDD是否可取?

  5. 网络表单中的状态管理更容易

答案 2 :(得分:2)

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

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

是的,IMO TDD非常重要,并且给MVC提供了超过1分。

答案 3 :(得分:1)

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

使用它们后,我现在决定的方法是:我是否需要使用服务器控件?如果我没有,那么我默认为MVC。

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