Search code examples
asp.netjqueryajaxcontroltoolkit

Maintainability: jQuery or the Ajax Control Toolkit?


My team is currently working on a substantial update to an existing ASP.NET 3.5 application which uses the Ajax Control Toolkit on virtually every page. We've found that in many cases that its use is unwarranted (clearly a previous developer decided to "Ajaxafy" everything), and a richer - and simpler - experience can be found using jQuery.

We've also found that the AjaxControlToolkit can be a pain to work with frankly in terms of maintainability and performance when you have half a dozen developers working it. We're debating scrapping its use completely, and going with jQuery for the UI experience. We're fortunate to have enough time to do this safely, and every feature we use can be replicated without any problems (AutoComplete, Calendar Control, etc).

It seems Microsoft are siding with jQuery with its addition to Visual Studio lately, and the current Ajax Control Toolkit isn't in ASP MVC (client side files only). Therefore I'm personally siding with jQuery for the moment, as it seems to have a future, while the Control Toolkit's future is a little more cloudy.

However, from a maintainability perspective, how is jQuery to work with? It's essentially just Javascript, so no plugins required. Are updates stable, and do they often break existing functionality?


Solution

  • Don't give up on AJAX just yet. Both AJAX and jQuery are useful as long as you're using them to do what they're suited to. I really don't see too much of a difference in maintainability, it's all still code. You need to test new releases/updates before putting them into production; vet any 3rd party code you're integrating into your code base, and make sure that you're not using AJAX/jQuery to pound a square peg into a round hole.

    As to the pros/cons of AJAX vs jQuery:

    AJAX beats out jQuery when it comes to:

    • Server-Side integration
    • CLR Features and Feel
    • JSON and WCF

    jQuery beats out AJAX when it comes to:

    • Animations
    • Being Lightweight
    • DOM Selection
    • Attribute / CSS Manipulation