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

本文关键字:NET Webforms 应用程序 是什么 ASP 创建 官方 技术 | 更新日期: 2023-09-27 18:01:35

TLDR: UpdatePanels or PageMethods?


在我看来,有三种方法来构建ASP。. NET Web Forms应用程序:

  1. 整页同步回发
  2. 使用UpdatePanels的部分异步回发
  3. PageMethods(和web service methods)和手动JavaScript
  4. (我知道有ASP。. NET MVC,但它不是Web Forms家族的一部分)

我想现在每个人都同意选项1不再提供令人满意的用户体验。(它可能工作了一段时间,但SmartNavigation在很久以前就被弃用了,只支持IE,从来没有像它应该的那样稳定。)

问题是选项2和3并不能真正一起工作:一旦您尝试用PageMethods做一些重要的事情(比如用条目填充列表),视图状态就会中断,从而破坏现有的"基于updateppanel"的代码。目前,还没有简单的方法来解决这个问题。

由于UpdatePanels和PageMethods似乎彼此不兼容,是否有一些官方建议在新项目中使用哪一个?

为了防止这个问题变成一个主观的问题,我想把这个问题限制在微软的官方声明和微软员工的(半)官方声明中。

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

我相信您可以想象到,这个问题的答案在很大程度上是"视情况而定"。既然你已经通过要求微软官方的认可来回避这样一个问题的主观性,那么,看看这个来自微软官方来源的前微软员工的视频怎么样?视频的总结做得很好(这很好,因为它是一个总结):

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

主观,非官方位:

就个人而言,我会避免使用UpdatePanels几乎所有的时间;与许多WebForms特性一样,它们剥夺了你的控制权,并引入了许多讨厌的标记和多余的(通常是内联的)JavaScript,当你拥有一个现代的、功能丰富的web应用程序时,这会导致各种意想不到的行为。PageMethods可以让您根据自己的开发实践来控制这些。

如果它们不能一起工作,那么,正如我所看到的,它归结为一个问题,"我能确定UpdatePanels会给我所需要的一切吗?"如果不是,那就决定了。

据我所知,这两种方法都没有被官方弃用或"建议反对"。