简短的回答:
如果您的页面/网站当前不依赖UpdatePanel或ACT控件,绝对可以在任何新工作中使用jQuery和jQuery UI。这甚至是微软自己的建议。
长话短说:
在处理此主题时,术语明确很重要。
ASP.NET AJAX部分在客户端,也部分在服务器端。System.Web.Extensions来自Atlas,并最终集成到ASP.NET 3.5中。即使您不使用ScriptManager或MicrosoftAjax.js,ASP.NET AJAX的服务器端部分仍非常有用,可用于创建基于JSON的服务器端端点(这些端点可直接从jQuery调用,无需ScriptManager)。
jQuery和MicrosoftAjax.js有些相似,但它们都会做一些另一个不会做的事情。严格来说,它们并不竞争;它们有不同的目标。如果您的应用程序有任何UpdatePanels,则必须包括MicrosoftAjax.js(ScriptManager会自动添加)。尽管如此,jQuery和MicrosoftAjax.js仍然可以很好地协作,因此如果必须,您仍然可以在UpdatePanels中使用jQuery的更强大的选择器、遍历和动画。
AJAX Control Toolkit(ACT)是一个不同的项目,完全独立于ASP.NET AJAX。它最直接地与jQuery UI相比,而不是jQuery核心本身。展望未来,我认为我们将看到大多数仅在客户端上的AJAX Control Toolkit控件被重构为jQuery插件(去年底已经发生了这种情况,但它们已被撤销)。
最终,如果两者都存在等效解决方案,则最好支持jQuery或jQuery UI而非MicrosoftAjax.js或ACT。但是,如果您受到UpdatePanels或其他现有代码的约束,则不要害怕将jQuery与其混合并逐渐过渡到jQuery。它们可以很好地协作。
jQuery 是更受欢迎的,主要因为它是跨平台的,但它本身也是一个很好的系统。
我认为对于那些在 Microsoft 平台上开发的人来说,ASP.NET AJAX 也没有什么问题。
我两个都用过,但现在我更倾向于 jQuery,主要是因为外部资源和示例更加丰富。
这是否意味着 MS 的提供将会被淘汰?还没有。只要有足够多的人在使用它,它就会存在,但我认为它永远会处于 jQuery 的次要地位。
如果你只是 ASP.NET 开发人员,请查看两者并使用最适合您的。如果您在不同的平台上开发,则选择 jQuery 可能更明智。
顺带一提,还有其他跨平台的 AJAX 框架可供选择...
我认为(这是错误的)。ASP.NET Ajax Toolkit
在幕后使用了jQuery
。
你可以两者兼用。我想这取决于你个人的喜好,因为Ajax Toolkit
提供了一些在服务器端使用的控件,而jQuery
则始终只能在客户端使用。
所以你可能会同时使用这两个库:当Ajax Toolkit
存在一个控件且需要一些服务器端属性/访问器等时,就使用它;如果你需要一些Toolkit没有提供的功能,则使用纯粹的jQuery
。
微软正在与jQuery
社区合作,并向他们提交一些补丁。因此,我想他们将继续维护Toolkit。Ajax Toolkit
仅是在纯粹的jQuery
函数之上提供服务器端控件的一层封装。
更新:
来自this blog的有趣引用:
ASP.NET Ajax和ASP.NET Ajax工具包是两个不同的东西。 工具包是一组ASP.NET控件(以及其他一些内容)。 它是服务器端代码和一些JavaScript。 ASP.NET Ajax是一个应用程序框架,您可以使用它来创建和管理客户端控件; 它是JavaScript。 ASP.NET Ajax工具包基于此框架。
jQuery和ASP.NET Ajax在功能上有一些重叠,但它们绝不是互斥的。 jQuery主要面向更新和操作标记。 ASP.NET Ajax旨在提供应用程序框架。
Microsoft最近决定不与jQuery竞争,而是投资于它,因为jQuery和ASP.NET Ajax可以很好地配合并相互补充。实际上,JQuery 随Visual Studio一起发布。
因此,回答您的第一个问题,您应该使用最适合工作的JavaScript库,无论是jQuery还是ASP.NET Ajax。
是否要使用工具包取决于您喜欢多少与ASP.NET控件搏斗。 如果您喜欢像ASP>NET MVC这样的精简编码,我会像热土豆一样放弃它。 如果您在传统的WebForms项目中,则工具包可能是最好的选择。