ASP.NET网络版是否在地毯上扫地为mvc腾出空间?

时间:2008-10-14 07:29:07

标签: asp.net-mvc webforms

我已经阅读了所有关于mvc和webforms如何互补的营销说明......

然而,似乎所有博客都谈论的是mvc,唯一的消息是关于mvc。

微软是否会继续改进网络形式作为一等公民,还是只是一种受支持的技术,因为随着时间的推移,他们将所有真正的努力,开发人员和资源转移到mvc上?

有没有真正的证据表明在不久的将来会有任何新的令人兴奋的改进?

5 个答案:

答案 0 :(得分:6)

你可能会比从11月份看看Phil Haak的帖子更糟糕:

  

The Future of WebForms and ASP.NET MVC

他指出去年在PDC下发布的5个关键内容:

  1. 核心基础设施,包括规模和效果
  2. Web表单,包括客户ID,ViewState,CSS使用等问题
  3. AJAX
  4. 数据和动态数据
  5. MVC
  6. 与此同时,有些东西已经被构建为ASP.NET MVC的一部分,这些东西已经被发布用于像路由模块这样的webform,这对我的一些项目来说会有很大的帮助,即使不使用MVC也是如此。

    除此之外,VS2010还有一些变化,可以帮助Web开发人员使用WebForms或MVC,这很好。

    博客倾向于谈论什么是闪亮的和“新的”,这就是事情的发展方向 - 你必然会看到很多关于它的文字,尽管MVC不是一个新的设计模式 - 它走了回来至少30年。

    WPF / Silverlight也是如此 - 他们是WinForms / WebForms杀手吗?不是。它们是替代产品,与早期的做法相比有一些好处,但也有一些差异/缺点。

答案 1 :(得分:5)

我参加了一个会议(Remix 08),Scott Gu说他们肯定会继续支持这两种方法,并且MVC不适合每个应用程序。斯科特说,网络表单模型有很多未来的改进(虽然没有说明它们是什么)。

网络表单模型不会消失,因为:
Web表单模型对于某些类型的应用程序更好,例如小应用程序,那些需要使用视图状态有用的长进程的应用程序 许多应用程序正在使用它 为它开发了许多第三方组件 ASP.net实现还不成熟(虽然到目前为止看起来确实不错)

微软可能会在几周内宣布PDC中的一些新功能。

答案 2 :(得分:5)

微软终于接受了一个基本的开发事实。您无法为任何问题提供最终解决方案。这就是MVC正在开发的原因,Scott Guthrie明确表示MVC适用于更大,更多企业网站。 Web表单将继续存在,并作为一种简单的基于RAD的Web开发方法开发。

如果您退后一步并查看Microsoft堆栈的所有最新改进和添加内容,您可以很容易地在这两个类之间对它们进行分类。例如:

  • 数据访问:LINQ-to-SQL vs EntityFramework
  • 远程处理:WCF与WebServices
  • LiveID:LiveID(网络)身份验证与RPS身份验证
  • ...

我只希望微软能够随着时间的推移使这一区别更加清晰,因为开发人员似乎对于应该为哪个任务选择什么工具存在很多困惑。

总之,我认为微软将继续开发两者,因为它们迎合了不同的开发者档案。微软显然对尽可能多地发展其开发人员基础并使.NET堆栈尽可能有用感兴趣。

答案 3 :(得分:5)

我将在这里走出困境,并且不同意MVC是这里的“企业”框架或者两者中更好的一般观点。

MVC很棒!但只要看看这个名字。它代表“模型,视图,控制器”......在那里看到“视图”?

现在看一下比赛,“Web Forms”......看到那个“形式”吗?

MVC在“视图”类型的情况下做得很好。对于发布内容的站点(信息的“视图”),MVC可能具有优势,特别是对于需要大量测试和支持智能视图切换的正式设计的大型系统。

对于通过表单(数据收集和数据输入繁重的应用程序)与用户进行大量交互的应用程序,由于表单帖子作为主要机制的固有用途,Web表单具有优势。

虽然您可以使用Web表单查看视图,并且可以使用MVC执行表单,但每个表单都需要权衡。在MVC的当前状态下,我发现编写大量数据条目“视图”比使用Web表单更加困难和痛苦......我并不是说一点点。

在未来,我确实希望看到MVC在处理数据输入方案时变得更好,但与使用Web表单相比,这些方案可能会付出相当高的代价。

据我所知,两者都没有比其他更“企业”级别......我最感兴趣的是混合应用程序,它们使用MVC进行显示和发布业务结束,而Web表单则是更自然地用于繁重的数据输入结束......所有这些都在同一个网站项目中...我当然希望我们能看到类似的内容。

答案 4 :(得分:0)

在MVC框架开始传播之前,我们花了很多时间在我的公司开发我们自己的.NET MVC框架。

这是因为我们不希望受到WebForms抽象限制的约束 - 我们希望避免WebForms似乎对最严重的自定义应用程序施加的'笨重'感觉和用户界面妥协。此外,我们想要友好的URI,我们希望比WebForms(我们选择XML / XSLT架构)更好地分离前端和后端开发。

在我看来,WebForms实际上提供了一种更糟糕的与用户交互的方法,特别是由于使用了ViewState,PostBacks等等,它们从开发人员那里抽象出了HTTP的实际机制 - 这使得他们在如何使用它们允许用户与系统交互。典型的例子是因为WebForms页面几乎总是POST的结果,如果用户试图刷新页面,用户会从浏览器中收到一条令人讨厌的警告消息。传统Web开发领域中用于处理此问题的模式一直是在HTTP响应中包含302 Redirect指令,因此坚持使用GET进行检索数据的原始HTTP范例,以及用于发送数据的POST。存在类似的其他问题,例如无法在页面上有两个表单(例如,登录表单到不同服务器上的网站)。

那就是说,对于RAD来说,WebForms很棒。我正在为我们使用自定义MVC框架开发的webapp开发管理应用程序,我正在飞行,因为我只需要显示一堆数据库表的内容,并在某些情况下允许用户以各种不同的方式编辑它们。

我认为,如果我们需要说服自己MS将继续支持WebForms - 只需考虑所有前Windows开发人员。这些是WebForms最初开发的人,他们不会离开。如果您是WebForms的粉丝,企业开发人员将成为您的救星。