微软Ajax控件工具包与jQuery的比较

8
我们目前正在开发几个自定义的asp.net服务器控件。现在我们想要为其中一些添加一些Ajax支持。基本上有两个选择:
1. Microsoft Ajax和Microsoft Ajax Control Toolkit 2. jQuery
我已经使用过Control Toolkit,编写了一个完整的Extender,一旦你理解了背后的故事,它就非常直观。但我也喜欢jQuery的简单性。
所以我想听听你们中的一些人会选择哪一个(每个选项的优缺点),同时考虑到我们主要处理微软技术。你会更倾向于工具包还是jQuery,还是两者兼备?
编辑: 我刚刚进行了一些测试,必须承认,目前我认为工具包更好,因为它更加集成化。我的目的主要是在服务器控件上使用它,因此使用工具包,在服务器端我可以使用相应的类来执行某些操作。
CalendarExtender toolkitCalendarExtender = new CalendarExtender();
toolkitCalendarExtender.TargetControlID....
...

this.Controls.Add(toolkitCalendarExtender);

这样做非常好,因为我不必处理在自定义服务器控件内以某种方式构造的预定义JavaScript的呈现。使用jQuery,我必须这样做(除了 Nicolas提到的工具包外,但是在专业环境中使用它的支持太弱了)。
非常感谢。

你的目标是什么?控件的用户群体? - Perpetualcoder
11个回答

5

尽管以下内容可能不是重点,但我会试着解释一下。jQuery没有 UpdatePanel - 这是一件好事。您的 jQuery 技能可以很容易地转移到其他堆栈,如 ASP.NET MVC、Django 或 Rails。我已经有一段时间没看过微软的 Ajax 文档了,但 jQuery 的文档对我来说是一个 巨大 的优势 - 它非常出色。

我听说有些开发人员同时使用这两个库,这也许值得研究一下。


1
嗯...我宁愿避免使用UpdatePanel。它可能会导致严重的性能问题。同时使用两者也是一个选项,是的.. - Juri
2
更新面板(Update Panel)是新手开发人员的玩具。一旦你使用ajax,就不会回头了。 - The Muffin Man

4
  1. jQuery的文档比Microsoft ajax的文档更多。
  2. jQuery的用户群体更庞大。
  3. jQuery有很多插件可供选择。
  4. 额外加分项:jQuery的名字很酷 :-)

3

我有时会同时使用两种工具。有时候,MS AJAX Toolkit 对于某些事情非常方便,但有时却很混乱。jQuery 对于很多事情都非常好用,但有时可能会受到一定的限制。

然而,我更倾向于使用 jQuery,因为无论你使用哪个平台,jQuery 都是适用的,因为它完全是基于客户端的。而 MS AJAX Toolkit 的技能并不能帮助你,如果你决定尝试另一个服务器端平台。


3

对于我来说,只有在没有jQuery插件时才会使用AjaxControlToolkit。此外,使用jQuery控件工具包,您可以将jQuery与服务器控件一起使用。请在codeplex上查看。


谢谢你的提示。我还没有听说过jQuery工具包。谢谢。 - Juri
第一次听说这个 jQuery 服务器控件,谢谢 :) - Amr Elgarhy

3

JQuery API 相对于 AjaxControlToolkit 的优势:

  1. 当另一个开发者接手项目时,不会遇到“DLL Hell”问题
  2. 可扩展到其他服务器端技术
  3. 文档更加详细(与 ACT 相比,JQuery 更好)
  4. 无需担心服务器和开发者使用的 .NET framework 版本是否与特定版本兼容
  5. 所有源代码都在单个 .JS 文件中维护,因此不会有关于部署内容的疑问
  6. 不需要在服务器上即时编译额外的代码库
  7. 功能更加精细,可以制作更多类型的界面
    1. 也就是说,虽然你可以使用任一框架制作手风琴控件,但你可以更容易地扩展 JQuery 控件,例如同时打开两个窗格、在页面上执行其他操作、根据客户端操作删除某些部分(如果找不到已经完成该操作的控件!)
    2. 你还可以确切了解站点后台代码的工作原理,而且站点的行为没有“黑匣子魔法”
  8. 不需要后台提交就可以执行许多操作
  9. 与 Forms 或 MVC 都能很好地配合使用
  10. 自定义控件库比 ACT 更加广泛且受支持

2

我认为最重要的第一点是这两个工具的用户群。

我认为相比于Microsoft Ajax,jQuery拥有广泛的用户群体。因此,对于jQuery的支持会更多。


2

如果您正在使用WebForms(服务器控件),那么您应该使用扩展程序来组织脚本并为其提供服务器端存在。鉴于已经存在一个完整的工具包(Ajax Toolkit),这是最好的选择,但如果您真的想使用JQuery,请编写自己的扩展程序来调用JQuery。 然而,如果您正在使用MVC,则只需使用裸的JQuery;它默认包含在这些应用程序中,并且没有需要与之对应的服务器端控件。


1
JQuery让你的应用程序摆脱了ASP.NET版本的限制。我们曾经使用MS AJAX工具包,不得不担心它的版本是否与ASP.NET 2.0兼容等问题。 我们开始使用JQuery控件,发现我们的应用程序速度更快,控件可以独立于.NET版本进行演进。我们甚至可以放弃.NET,转而使用基于Web服务的PHP。因此,在表示方面,您可以使用带有JQuery的纯HTML页面,大多数其他内容可以实现为Web服务。

1

我从来没有对ajax工具包感到兴奋。它看起来笨重而臃肿。

当我偶然发现jQuery时,我再也没有回头......


0

如果你主要在MS商店中使用Visual Studio进行编码,那么工具包就是最好的选择。你仍然需要了解一些javascript来完成某些任务,但在这种情况下,工具包可以快速开发,并为某些控件提供代码支持。话虽如此,学习两者都不会有害,工具包非常直观,因此学习曲线很小,而且在很大程度上取决于你对javascript的了解程度,jquery也是如此。现在我看到的大多数应用程序都同时使用两者,效果非常好,一旦你足够了解每个工具,你就能够决定在哪里使用它们...基本上,两者都构建了一个更大的工具箱,而拥有一个大工具箱总是一件好事。


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