ASP.NET Ajax Control Kit 与 JQuery 的比较

5
在过去的两年中,JQuery变得越来越流行。那么您认为现在是将JQuery优先于ASP.NET Ajax用于Ajax的ASP.NET项目的时候了吗?ASP.NET Ajax控件套件在ASP.NET世界中是否有未来?
5个回答

3

简短的回答:

如果您的页面/网站当前不依赖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。它们可以很好地协作。


2

jQuery 是更受欢迎的,主要因为它是跨平台的,但它本身也是一个很好的系统。

我认为对于那些在 Microsoft 平台上开发的人来说,ASP.NET AJAX 也没有什么问题。

我两个都用过,但现在我更倾向于 jQuery,主要是因为外部资源和示例更加丰富。

这是否意味着 MS 的提供将会被淘汰?还没有。只要有足够多的人在使用它,它就会存在,但我认为它永远会处于 jQuery 的次要地位。

如果你只是 ASP.NET 开发人员,请查看两者并使用最适合您的。如果您在不同的平台上开发,则选择 jQuery 可能更明智。

顺带一提,还有其他跨平台的 AJAX 框架可供选择...


1
在我看来,jQuery比Ajax Control Toolkit好得多。对我来说,主要原因是社区给予了它巨大的支持。不仅jQuery的文档更好,而且由于jQuery不是一个.NET为中心的框架,所以社区更大,这意味着从Ruby on Rails开发人员到PHP开发人员都可以像.NET开发人员一样帮助您编写代码,这显然更难找到。
除此之外,我发现它比Toolkit性能更好,并且更容易编写和自定义。你还会喜欢上jQuery UI
顺便说一句,在ASPX页面上启用ScriptManager只会加载一堆脚本,这会增加页面的额外负载。在混合使用jQuery和Toolkit之前,请记住这一点。

1
公平地说,仅向页面添加一个ScriptManager只会向页面添加一个脚本(其大小与jQuery核心本身大致相同)。 - Dave Ward
我的意思是添加jQuery脚本以及脚本管理器相当庞大。如果你只使用一个,那还好。 - rebelliard

1

我认为ASP.NET Ajax Toolkit在幕后使用了jQuery(这是错误的)。

你可以两者兼用。我想这取决于你个人的喜好,因为Ajax Toolkit提供了一些在服务器端使用的控件,而jQuery则始终只能在客户端使用。

所以你可能会同时使用这两个库:当Ajax Toolkit存在一个控件且需要一些服务器端属性/访问器等时,就使用它;如果你需要一些Toolkit没有提供的功能,则使用纯粹的jQuery

微软正在与jQuery社区合作,并向他们提交一些补丁。因此,我想他们将继续维护Toolkit。Ajax Toolkit仅是在纯粹的jQuery函数之上提供服务器端控件的一层封装。

更新:
来自this blog的有趣引用:

然而,随着 Visual Studio 2008 Service Pack 1 的推出,我们还增加了对越来越流行的 jQuery 库的支持。也就是说,您可以将 jQuery 与 ASP.NET 一起使用,并且在 Visual Studio 2008 中还会获得 jQuery 的智能感知功能。
对于在 ASP.NET 中实现 AJAX 的客户端编程,我们建议使用 jQuery,因为它将与 Visual Studio 一起提供,并提供智能感知功能。对于服务器端编程,您可以使用诸如 UpdatePanel 等服务器控件,以及目前拥有近 40 个控件的 AJAX 控件工具包。

我不认为它现在是jQuery,但我怀疑下一个版本会是... - PhilPursglove
它不是jQuery。事实上,“Atlas”直接被设计为竞争对手,但这一次,微软已经接受了jQuery的优势,并决定与之合作,而不是反对它。我没有读到下一个版本是基于jQuery构建的任何信息,但如果是这样的话,那将非常方便。 - CJM
你说得对,它不是基于jQuery的。我已经更正了。我之前犯了错误,因为Visual Studio通过包含库并提供Intellisense支持来支持jQuery。 - Julien N

1

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项目中,则工具包可能是最好的选择。


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