初学者到asp.net ..我应该选择webforms还是mvc?

时间:2010-04-28 03:29:11

标签: asp.net asp.net-mvc webforms

  

可能重复:
  Advice on using ASP.net WebForms or MVC
  How to decide which is right, WebForms or MVC when doing ASP.NET

我是网络开发和asp.net的新手......我正在浏览asp.net网站,并在stackoverflow中关于Webforms or MVC的'n'问题....但仍然作为初学者可以不知道该选择什么?

  • 我应该选择webforms还是mvc?
  • 如果是MVC,在开始之前我应该​​知道什么?
  • 如果是网络形式,在开始之前我应该​​知道什么?

4 个答案:

答案 0 :(得分:9)

就考虑新项目的Web表单的具体原因而言:

1)如果您使用的是SharePoint。今天,SharePoint网站更自然地将Web窗体Web部件/页面集成到其中。 SharePoint团队希望将来能够添加MVC支持 - 但如果您的站点/解决方案今天与SharePoint集成,或者新版本即将发布,您将更容易找到Web表单。

2)如果您正在构建一个应用程序,其中现有的服务器控件或一组服务器控件可以帮助提供许多功能。对于许多报告方案(可以利用图表控件)以及涉及网格的数据编辑方案(可以利用数据控件),都是如此。还有一组丰富的服务器端控件,其中封装了AJAX功能,许多开发人员认为这些控件对常见场景非常有用。

3)在构建应用程序(通常是基于Intranet)的地方,您需要支持旧浏览器或具有排除现代JavaScript框架的严格可访问性要求,因此必须在服务器上放置大量UI逻辑。如果您不关心SEO(因为它是一个Intranet应用程序)并且不关心完全控制您的HTML,那么使用具有内置功能的控件可以提高工作效率。

就考虑MVC用于新项目的具体原因而言:

1)如果您正在构建面向公众的网站,其中SEO,语义URL / HTML以及对HTML的完全控制非常重要。虽然ASP.NET 4确实为Web Forms提供了许多新功能来实现这一点 - 但MVC仍然提供更多的完全控制。

2)如果您使用TDD工作流程和/或轻松单元测试您的应用程序。虽然您可以将MVP模式与Web窗体一起使用,但MVC提供了一种自然支持此功能的核心方法。

3)如果你想构建一个沉重的AJAX客户端应用程序,对MVC提供的HTML / URL的完全控制可能是一个优势。您仍然可以使用Web表单(特别是使用ASP.NET 4)来实现这一点 - 但是如果您想要总体客户端JS控制MVC可能是一个更具吸引力的选项。

4)如果您希望能够自定义/扩展Web框架的几乎每一层,ASP.NET MVC提供了必要的钩子。想要一个不同的视图引擎,集成一个IOC容器等 - 然后MVC提供了一些很好的钩子。

来自评论部分:

http://weblogs.asp.net/scottgu/archive/2010/01/24/about-technical-debates-both-in-general-and-regarding-asp-net-web-forms-and-asp-net-mvc-in-particular.aspx

答案 1 :(得分:6)

答案 2 :(得分:0)

如果您正在构建一个包含大量数据编辑的Intranet站点,那么Web窗体可能是更好的选择。

http://www.asp.net/web-forms/

如果要构建一个主要关注HTML,性能和可伸缩性的测试驱动Internet站点,ASP.NET MVC可能是更好的选择。

http://www.asp.net/mvc/

答案 3 :(得分:-1)

这两件事都适合开发,但这取决于你的场景你正在开发的东西。如果您通过快速开发开发新想法,我建议使用MVC。在MVC中,您的代码是可管理和可配置的。 MVC是可扩展的,没有性能问题。

我更喜欢MVC作为理想的开发方法/模式。