ASP.NET Webforms应用程序的官方推荐技术是什么?

3
TLDR: UpdatePanels还是PageMethods?
据我所见,有三种方法可以构建ASP.NET Web Forms应用程序:
  1. 完整页面同步提交
  2. 使用UpdatePanels进行部分异步提交
  3. PageMethods(和Web服务方法)和手动JavaScript
  4. (我知道还有ASP.NET MVC,但那不是Web Forms家族的一部分。)
我认为现在每个人都同意选项1不再提供令人满意的用户体验。(它可能有一段时间可以工作,但SmartNavigation已经很久以前被弃用了,只支持IE,并且从未像应该的稳定。)
问题在于选项2和3不能很好地配合使用:一旦您尝试使用PageMethods进行某些非平凡的操作(例如填充条目列表),视图状态会中断,从而破坏现有的“UpdatePanel-based”代码。目前,没有简单的方法来解决这个问题
由于UpdatePanels和PageMethods似乎相互不兼容,是否有官方建议用哪一个来进行新项目? 为了防止这成为主观问题,我想限制这个问题只涉及微软的官方声明和(半)官方声明。
1个回答

0

正如你所想象的那样,对于这个问题的答案非常“因情况而异”。但既然你通过询问微软官方认可来回避了这种主观性的问题,那么不妨看看这个this video,它是由一位前微软员工从官方微软渠道发布的。视频摘要做得相当好(这很好,因为它是一个摘要):

第一种方法是使用UpdatePanel,在客户端和服务器端都不需要编写额外的代码。使用UpdatePanel的好处是一切都可以自动完成。缺点是在客户端需要在AJAX请求和响应中包含大量数据,在服务器端需要执行完整的页面生命周期。第二种方法是使用网络回调,在客户端和服务器端都需要编写额外的代码。使用网络回调的好处是在客户端只需要在AJAX请求和响应中包含很少的数据,在服务器端只需要执行被调用的服务方法。缺点是编写必要代码所需的时间和精力。

主观、非官方意见:

个人而言,我几乎总是避免使用 UpdatePanels;就像许多 WebForms 功能一样,它们会夺走你的控制权,并引入大量令人讨厌的标记和过多(通常是内联)JavaScript,在拥有现代化、功能丰富的 Web 应用程序时可能会导致各种意外行为。PageMethods 让你自己控制这一点,符合你自己的开发实践。

如果它们不能一起工作,那么问题就变成了:“我能确定 UpdatePanels 能给我所有需要的东西吗?” 如果不能,你的决定就做出了。

据我所知,这两种方法都没有被正式弃用或“不建议使用”。


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