Microsoft Ajax Control Toolkit与jQuery

时间:2009-08-25 07:41:28

标签: jquery asp.net-ajax ajaxcontroltoolkit

我们目前正在开发一些自定义的asp.net服务器控件。现在我们想为其中一些添加一些Ajax支持。现在基本上会有两个选项

  • Microsoft Ajax& Microsoft Ajax Control Toolkit
  • 的jQuery

我已经使用Control Toolkit工作,编写了一个完整的Extender,一旦你理解了背后的故事,它就非常直观。但我也喜欢jQuery的简单性。

所以我想听听你们中的一些人(他们每个人的优点/缺点),同时考虑到我们主要处理微软技术。你会更多地使用工具包或jQuery,或者两者兼而有之?

//编辑:
我刚做了一些测试,我不得不承认,由于集成,我现在发现Toolkit更好。我的目的主要是在服务器控件上使用它,所以使用工具包我在服务器端有相应的类,我可以做类似的事情

CalendarExtender toolkitCalendarExtender = new CalendarExtender();
toolkitCalendarExtender.TargetControlID....
...

this.Controls.Add(toolkitCalendarExtender);

这非常好,因为通过这种方式,我不必处理渲染预定义的JavaScript,我在自定义服务器控件中以某种方式构造为字符串。使用jQuery我必须这样做(除了提到的toolkit Nicolas,但是在专业环境中使用它的支持太弱了)

非常感谢。

11 个答案:

答案 0 :(得分:5)

虽然这些可能不是重点,但我会尝试。 jQuery没有UpdatePanel - 这是一件好事。你的jQuery技能很容易转移到另一个堆栈,如ASP.NET MVC,Django或Rails。我已经看过MS的Ajax文档已经有一段时间了,但jQuery的文档对我来说是一个巨大的因素 - 它非常棒。

我听说有些开发人员使用这两个库,也可能需要考虑一下。

答案 1 :(得分:4)

  1. 您有更多关于jQuery的文档,而不是Microsoft ajax。
  2. jQuery用户群更大
  3. 你有很多jQuery的插件
  4. 奖励:jQuery有一个很酷的名字: - )

答案 2 :(得分:3)

我偶尔会同时使用两者。有时MS AJAX Toolkit对于某些事情来说非常方便,有时候它只是一团糟。 jQuery很适合很多东西,但偶尔也会受到限制。

然而,我会在jQuery方面犯错误,因为无论你去哪个平台,jQuery总是适用,因为它完全基于客户端,而MS AJAX Toolkit技能对你决定不会有帮助尝试另一个服务器端平台。

答案 3 :(得分:3)

对我来说,只有当jQuery插件不存在时才会使用AjaxControlToolkit。此外,通过使用jQuery控件Toolkit,您可以将jQuery与服务器控件一起使用。在codeplex

上查看一下

答案 4 :(得分:3)

JQuery API优于AjaxControlToolkit的原因:

  1. 当另一位开发者选择项目时,“DLL Hell”没有问题
  2. 可扩展至其他服务器端技术
  3. 更好的文档(ACT vs JQuery
  4. 不必担心服务器和开发人员使用哪个版本的.NET框架来使用特定版本
  5. 所有来源都保存在一个.JS文件中,因此毫无疑问需要在何处进行部署
  6. 不需要在服务器上JIT编译其他代码库
  7. 更精细的功能,因此您可以制作更多种类的界面
    1. 也就是说,虽然您可以使用任一框架进行手风琴控制,但您可以更轻松地扩展JQuery一个,一次打开2个窗格,或者在页面上的其他位置执行另一个操作打开,或根据客户端操作删除其中一个部分(即,如果您找不到某人已经完成控件的控件!)
    2. 您也确切知道您网站背后的代码是如何运作的,并且网站的行为中没有“黑盒魔术”
  8. 不需要回复以执行任意数量的操作
  9. 适用于Forms或MVC
  10. 自定义控件库比ACT更广泛和支持

答案 5 :(得分:2)

我认为第一点也是最重要的一点是这两者的用户群。

我认为与Microsoft Ajax相比,jQuery拥有广泛的用户群。所以对jQuery的支持将会更多。

答案 6 :(得分:2)

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

答案 7 :(得分:1)

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

当我偶然发现jQuery时,我从未回头......

答案 8 :(得分:1)

JQuery使您的应用程序不受ASP.NET版本的影响。我们使用了MS AJAX工具包,我们不得不担心它的版本并看它是否与ASP.NET 2.0等兼容。 我们开始使用JQuery控件,发现我们的应用程序更快,我们的控件可以独立于.NET版本发展。我们甚至可以抛弃.NET而支持PHP,因为我们的大多数东西都是基于WebService的。因此,对于演示文稿,您可以使用带有JQuery的纯HTML页面,而大多数其他内容可以实现为WebServices。

答案 9 :(得分:0)

如果您主要使用Visual Studio在MS Shops中编码,那么工具包是要走的路,您仍然需要知道一些javascript来做一些事情,但在这种情况下,工具包允许真正的快速开发和一些代码背后支持某些控制。也就是说,学习两者都没有伤害,工具包真的是前沿,所以学习曲线很小,在某种程度上主要取决于你对javascript的了解,jquery也是如此。我现在看到的大多数应用程序都使用它们并且它运行得很好,一旦你学到了足够多的东西,你就可以决定在哪里使用...基本上它们都构建了一个更大的工具箱和大工具箱总是一件好事。有

答案 10 :(得分:0)

Web控件是否应该在一定程度上抽象客户端实现?如果是这样,MS是否有可能在某天使用jquery实现Ajax工具包?

Jquery很光滑,我喜欢玩它,但是对于Web控件也有一些非常持久的东西,因为它们的实现可以与客户端技术一起自动更新。