La version del Ajax Control Toolkit de Setiembre 2013 permite construir nuevos controles con jQuery.
Puedes descargarlo de aqui:http://AjaxControlToolkit.CodePlex.com o lo puedes instalar directamente desde dentro de Visual Studio con el siguiente comando NuGet:
PM> Install-Package AjaxControlToolkit
Nueva Clase Base jQuery
Esta versión del Ajax Control Toolkit introduce una nueba clase base jQueryExtender. Esta nueva clase base te permite crear controles Ajax Control Toolkit con jQuery en vez de la biblioteca Microsoft Ajax.
Actualmente solo un control en el Ajax Control Toolkit ha sido reescrito para utilizar esta nueva clase base jQueryExtender (sólo un control ha sido «jQuerizado» o jQueryized). Este control es el ToggleButton (botón de conmutación) y es el primer control en someterse a esta dramática transformación.
Todos los otros controles en el Ajax Control Toolkit han sido escritos usando la biblioteca Microsoft Ajax. Se espera que gradualmente estos controles sean reescritos a controles jQuery.
Aquí hay un ejemplo del nuevo botón de conmutación: http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/ToggleButton/ToggleButton.aspx
¿Por qué se están reescribiendo los controles? Hay muy pocos desarrolladores que están trabajando activamente con la biblioteca Microsoft Ajax mientras hay miles de desarrolladores que están trabajando activamente con jQuery.
Porque se quiere que desarrolladores talentosos en la comunidad continúen contribuyendo al Ajax Control Toolkit y porque todos los desarrolladores de JavaScript están familiarizados con jQuery, tiene sentido soportar jQuery con el Ajax Control Toolkit.
El Ajax Control Toolkit es un gran marco de desarrollo para desarrolladores que usan formularios web (web forms) quienes quieren construir controles ASP.NET que utilizan JavaScript. El Ajax Control Toolkit tiene grandes características tales como agrupación automática (automatic bundling), minificación, almacenamiento en caché y compresión. Se quiere facilitar a los desarrolladores de ASP.NET la creación de controles que tomen ventaja de estas características.
Instanciar Controles con Atributos data-*
En el pasado, agregar un Ajax Control Toolkit a una página resultaba en JavaScript en línea (inline) inyectado en la página. Por ejemplo, añadiendo el control ToggleButton a una página inyectaba el siguiente HTML y script:
<input id="ct100_SampleContent_CheckBox1" name="ct100$SampleContent$CheckBox1" type="checkbox" checked="checked" /> <script type="text/javascript"> //<![CDATA[ Sys.Application.add_init(function() { $create(Sys.Extended.UI.ToggleButtonBehavior, {"CheckedImageAlternateText":"Check", "CheckedImageUrl":"ToggleButton_Checked.gif", "ImageHeight":19, "ImageWidth":19, "UncheckedImageAlternateText":"UnCheck", "UncheckedImageUrl":"ToggleButton_Unchecked.gif", "id":"ctl00_SampleContent_ToggleButtonExtender1"}, null, null, $get("ctl00_SampleContent_CheckBox1")); }); //]]> </script>
Noten la llamada al método JavaScript $create() al final de la página. Cuando se usa la biblioteca Microsoft Ajax, esta llamada al método $create() es necesaria para crear el control Ajax Control Toolkit.
Este script en línea (inline) luce horrendo para un moderno desarrollador de JavaScript.
La versión jQuery del ToggleButton inyecta el siguiente HTML y script en la página:
<input id="ct100_SampleContent_CheckBox1" name="ct100$SampleContent$CheckBox1" type="checkbox" checked="checked" data-act-togglebuttonextender="imageWidth:19, imageHeight:19, uncheckedImageUrl:'ToggleButton_Unchecked.gif', checkedImageUrl:'ToggleButton_Checked.gif', uncheckedImageAlternateText:'I don't understand why you don't like ASP.NET', checkedImageAlternateText:'It's really nice to hear from you that you like ASP.NET'" /> />
¡Noten que no hay script! No hay llamada al método $create(). De hecho no hay JavaScript en línea (inline).
La versión jQuery del ToggleButton utiliza un atributo HTML5 data-* en vez de JavaScript en línea. Este control es instanciado con un atributo data-act-togglebuttonextender. Usando atributos data-* da como resultado un código mucho más limpio. (No hay necesidad de sentirse avergonzado cuando se selecciona Ver fuente en el navegador de internet)
Ajax Control Toolkit Versus jQuery
¿Por qué es necesario el Ajax Control Toolkit después de todo? ¿Por qué no sólo usar jQuery plugins en vez de Ajax Control Toolkit?
Por ejemplo, hay muchos plugins jQuery del tipo ToggleButton en Internet. ¿Por qué no sólo usar uno de esos plugins?
Los controles Ajax Control Toolkit corren en ambos, en el servidor y en el cliente.
Los plugins jQuery corren en el cliente. Un plugin jQuery no incluye ningún código en el servidor. Si necesitas hacer trabajo en el servidor, piensa en el control AjaxFileUpload, entonces no puedes utilizar una solución jQuery pura.
Los controles Ajax Control Toolkit proveen una mejor experiencia de Visual Studio
No obtienes ninguna experiencia en tiempo de diseño cuando usas plugins jQuery dentro de Visual Studio. Los controles Ajax Control Toolkit por otro lado están diseñados para trabajar con Visual Studio. Por ejemplo, puedes usar la ventana de propiedades en Visual Studio para establecer las propiedades del control Ajax Control Toolkit.
Los controles Ajax Control Toolkit te escudan de tener que trabajar con JavaScript
No a todos los desarrolladores les gusta JavaScript y algunos quieren tratar de evitar completamente tener que escribir código en JavaScript. El Ajax Control Toolkit te permite tomar ventaja de JavaScript (y de las últimas características de HTML5) en tus sitios web con ASP.NET Web Forms sin tener que escribir una línea de código en JavaScript.
Mejor Documentación del ToolkitScriptManager
Con esta versión se ha agregado documentación detallada para utilizar el ToolkitScriptManager. En particular se ha agregado documentación que describe cómo tomar ventaja de la nueva agrupacion (bundling), minificación, compresión y almacenamiento en caché que tiene el Ajax Control Toolkit.
Lo puedes leer aquí: http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/ToolkitScriptManager/ToolkitScriptManager.aspx
Otras correcciones
Esta versión del Ajax Control Toolkit incluye muchas correcciones de error (bug fixes). Por ejemplo, el control Ajax Control Toolkit Twitter ha sido completamente reescrito con esta versión.
Twitter está en proceso de retirar la primera versión de su API. Puedes leer sobre sus planes aquí: https://dev.twitter.com/blog/planning-for-api-v1-retirement
Se ha reescrito completamente el control Ajax Control Toolkit para usar la nueva API de Twitter. Para tomar ventaja de esta nueva API, debes obtener una llave (key) y token de acceso de Twitter y agregar la llave y el token a tu archivo web.config.
Instrucciones detalladas para usar esta nueva version puedes encontrarla aquí: http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/Twitter/Twitter.aspx
Conclusión
Se han hecho grandes cambios al Ajax Control Toolkit en las últimas 2 entregas para modernizar el toolkit. En la entrega anterior se actualizó el toolkit para hacer uso de una mejor agrupación, minificación, compresión y almacenamiento en caché. Con esta entrega ahora el Ajax Control Toolkit soporta jQuery. Se han hecho importantes correcciones de error.
Para leer la versión original en inglés: http://stephenwalther.com/archive/2013/09/30/ajax-control-toolkit-now-supports-jquery