学习Asp.Net WebForms或Asp.Net MVC

11

这可能是一个重复的问题,但我找不到一个直接的答案。如果一个人打算开始学习基于 .Net 框架的 Web 开发,应该选择哪种技术?

  • Asp.Net WebForms
  • Asp.Net MVC

考虑以下三个方面:

  • 未来的前景
  • 复杂度
  • 功能特性

备注:已经使用 C# 做过一些 WinForms 编程。

谢谢!

4个回答

6

重要更新(2019年): 如果你仍在犹豫是否使用Web表单,答案是绝对不要。看看新的ASP.NET技术并坚持使用.NET Core。任何新项目都应该使用.NET Core和C#。


这可能会引起争议 :)

我的个人观点是:停止投资于WebForms(它是Web的破损模型),学习Asp.Net MVC,这样不仅可以制作出设计良好的Web应用程序,还可以在Web的其他地方使用您的知识。MVC让你了解HTTP、HTML和其他底层的“Web基础设施”,从而增加成功的机会。

因此,除非你想赚钱(再次强调,完全是个人观点,请谨慎对待),支持旧版的WebForms(有点像COBOL——等等,WebForms的粉丝们:)),我强烈建议使用Asp.Net MVC ;)。当然,我不知道WebForms的最新发展情况(特别是4.0版本),所以您也可以等待那些。

编辑:如果你认为过去的winforms经验会成为使用webforms的优势或论点(我认为这是微软开发人员的主要卖点),那么你在一周内是正确的,但在其余时间里就是错误的。在WebForms和WinForms中,都有控件,但相似之处就到此为止了。事件模型完全不同,线程完全不同,甚至不能开始比较渲染等等。这实际上是WebForms的主要问题;试图在完全不同的架构上看起来像WinForms。


更不用说大多数其他的Web框架都是MVC,因此您对ASP.NET MVC的了解也可以转移到其他框架。 - Keith Rousseau

5
大多数人可能会说,这很大程度上取决于您想学习什么以及您希望采用的开发风格。如果您想要对页面标记具有很高的控制力,并打算使用大量的AJAX和CSS,则MVC是更好的选择,最大的取舍是您失去了Microsoft控件(如Gridview和其他拖放组件)。 MVC是非常强大和可扩展的框架,学习它还将使您学习MVC模式(如果您以后将技能多样化到其他开发平台中也会有用)。
但是,如果您正在创建许多需要快速交付的内部Web应用程序,则Webforms肯定是更好的选择,它文档完善且成熟,控件允许您免费构建强大的功能。虽然您可以获得基本的模板来操作MVC中的数据,但它不像在Webforms中构建应用程序那样快速。
我的个人建议是学习MVC(及其模式),因为它没有过多地依赖专有的Microsoft组件,并使您思考前端应用程序及其与后端的交互。
如果您想了解一个大型MVC网站的很好示例...您就在上面.. stackoverflow运行在ASP.NET MVC上。
希望这有所帮助,这是一个非常一般的观点,还有更多关于两种方法的内容。但是根据个人经验,我认为MVC从长远来看将教您更多可重用的标准Web技术。
再见
Jon

3

在寻找WebForms相关工作时会更容易,而MVC目前似乎并没有大量进入生产环境。今天,更复杂的应用程序可能会使用MVC,而较小的应用程序则很可能更喜欢WebForms,但请记住,较小的应用程序代表了就业市场的大多数。

无论如何,学习两者都不会有害,或者至少掌握WebForms并投资更多精力学习MVC(因为最终将迫使您学习通常与之相关的其他技术:nHibernate / Entity,DDD,TDD等)。此外,在MVC中可以使用许多控件,几乎不需要调整,尽管思维方式非常不同。


1

对于这个问题,没有一个明确的答案,但我可以通过突出两种技术的一些事实和关键点来帮助您做出决策。

Web Forms已经存在很长时间了,因此在按时完成任务方面,它们比MVC更成熟可靠!即使是Web Forms的知识库也比MVC更大。

Web Forms功能丰富,让您更加掌控您想要的内容以及如何实现。而MVC则有其轻量级应用程序开发平台的优美之处。

如果您是新手,我建议您首先选择Web Forms,并同时开始查看MVC。

stackoverflow.com是使用asp.net mvc平台构建的。


1
我非常不同意你的观点。MVC是Web框架的一种经过验证的模式(大多数都是MVC)。关于这个模式,以及特别是ASP.NET MVC框架,已经有了大量的知识。现在我要说一个有争议的观点:大多数最好的.NET开发人员已经转向了MVC框架(不一定是ASP.NET MVC),因为他们认识到这是一种更优越的模式。 - Keith Rousseau
Web表单功能更加丰富,可以更好地控制您想要的内容。但我不太理解这一点。大多数教程/书籍都建议使用MVC比WebForms提供更多的灵活性和控制,以便更好地决定应用程序的功能和操作方式! - Asad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接