我读了几个理由转而使用asp.net MVC,但是没有一个是imho,他们不得不花费成本回到原点,扔掉所有你学到的关于webforms的东西:如何处理回发,viewstate,页面生命周期和所有其余的。
MVC想要解决的主要问题 - 回发 - 已经可以使用jQuery和webmethods通过webforms解决。
或者我错过了这一点,我的(很少,说实话)关于asp.net webforms的知识很快就会过时了?
答案 0 :(得分:3)
我不同意回发是MVC希望解决的主要问题。虽然这肯定是一个好处,但MVC主要是关注分离。这是逻辑上分离和组织业务逻辑,模型,HTML模板等的好方法。如果您确实需要/想要使用webforms,MVC可以让您将它们混合在一起。
答案 1 :(得分:3)
WebForms的目标是轻松构建对Web技术(HTTP,HTML,CSS,JavaScript等)知之甚少的交互式网站。但这带来了成本,你必须学习WebForms。我花了两年时间研究和使用WebForms,然后意识到理解Web技术要容易得多。
像ASP.NET MVC这样的服务器端框架使得处理请求变得非常容易,像jQuery这样的客户端框架使得操作HTML和发出AJAX请求变得非常容易。当WebForms出现在场景中时,这些事情很难做到,但今天很容易。
我知道你害怕放弃自己的技能,但你应该专注于学习核心网络技术。
答案 2 :(得分:2)
ASP.NET MVC不是关于避免回发,而是关注问题的分离,单元可测试性,以及与Web和原始HTML的无状态特性的密切配合,而不是ASP.NET Web表单的抽象。
您对ASP.NET Web表单的了解并未过时。 ASP.NET MVC目前几乎没有市场份额,将ASP.NET Web表单应用程序迁移到ASP.NET MVC并不是一项简单的任务。在可预见的未来,这两个框架将会很好地共存。
答案 3 :(得分:1)
Web Forms已经存在并将成为Web应用程序开发的替代方案。 MVC也是Web应用程序开发的替代方案。每个都有自己的优势和不同的用途。与任何工具一样,使用适当的工具。
我喜欢MVC,因为它的设计考虑了可测试性和可插拔性。 Web表单对我来说有点过于严格,并且不容易进行测试。
我也更喜欢完全控制HTML,虽然.NET 4引入了一些使这更好的更改,但我仍然不喜欢服务器控件编写潜在的狡猾标记。
WebForms是一个HTTP和HTML的抽象层,旨在让人们通常从非Web背景(如VB6)快速启动和运行Web应用程序。
MVC回归基础,并没有假装HTTP和HTML不存在,而是利用它们,并让您作为开发人员更多地控制它们的使用方式。
答案 4 :(得分:0)
如果您已经在使用jQuery + webmethods方法,那么MVC开发应该相当容易学习。
您不必丢弃所有关于webforms的知识。构建优秀代码的许多相同原则仍然适用。