这可能是一个重复的问题,但我找不到一个直接的答案。如果一个人打算开始学习基于 .Net 框架的 Web 开发,应该选择哪种技术?
- Asp.Net WebForms
- Asp.Net MVC
考虑以下三个方面:
- 未来的前景
- 复杂度
- 功能特性
备注:已经使用 C# 做过一些 WinForms 编程。
谢谢!
这可能是一个重复的问题,但我找不到一个直接的答案。如果一个人打算开始学习基于 .Net 框架的 Web 开发,应该选择哪种技术?
考虑以下三个方面:
备注:已经使用 C# 做过一些 WinForms 编程。
谢谢!
重要更新(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。
在寻找WebForms相关工作时会更容易,而MVC目前似乎并没有大量进入生产环境。今天,更复杂的应用程序可能会使用MVC,而较小的应用程序则很可能更喜欢WebForms,但请记住,较小的应用程序代表了就业市场的大多数。
无论如何,学习两者都不会有害,或者至少掌握WebForms并投资更多精力学习MVC(因为最终将迫使您学习通常与之相关的其他技术:nHibernate / Entity,DDD,TDD等)。此外,在MVC中可以使用许多控件,几乎不需要调整,尽管思维方式非常不同。
对于这个问题,没有一个明确的答案,但我可以通过突出两种技术的一些事实和关键点来帮助您做出决策。
Web Forms已经存在很长时间了,因此在按时完成任务方面,它们比MVC更成熟可靠!即使是Web Forms的知识库也比MVC更大。
Web Forms功能丰富,让您更加掌控您想要的内容以及如何实现。而MVC则有其轻量级应用程序开发平台的优美之处。
如果您是新手,我建议您首先选择Web Forms,并同时开始查看MVC。
stackoverflow.com是使用asp.net mvc平台构建的。