domingo, 5 de octubre de 2008




La nueva versión de Delphi incorpora una nueva actualización de IntraWeb. En un primer vistazo, el gran cambio en la nueva versión es el soporte de librerías Ajax externas.


 Empezando por  jQuery  que es una librería de código abierto JavaScript muy ligera que lleva poderosas herramientas para manipular elementos Dom, y realizar llamadas Ajax. Tiene cierta similitud con Prototype, que algo más veterana inicio la escuela de librerías JavaScript orientadas a objeto con potentes elementos de manipulación de listas DOM y llamadas asincronas controladas y bien encapsuladas. Pero con el tiempo, jQuery se ha ganado un espacio propio. Si bien tiene desarrollado algunos componentes de interface de usuario UI, aun  parece faltarle más componentes para crear una "aplicación" completa. jQuery gana adeptos, por cierto, Microsoft también ha tomado jQuery como elemento a incluir en su Visual Studio.



La nueva IW también añade soporte para Silverligth. Se ha discutido acerca de que si lo incorpora en realidad o no, ya que Silverligth esta expresamente diseñado para .Net, pero parece ser que pueden usarse algunos controles "compilados" dentro de la pagina IntraWeb.


También prometen integrarse con Dojo y quizás otras librerías.  De momento han incluido nuevas formas de "incluir" código o ficheros JavaScript a través de nuevas propiedades y eventos de los formularios. Ya se habla de una nueva "familia" de componentes TIWJQueryWidget ,TIWDojoWidget que su propio nombre ilustra la función que realizan.



Hadi hariri, habla de algunos de estos temas en  http://www.hadihariri.com/Blogs/Delphi/20080117.aspx En el articulo,  Hadi  pone un ejemplo de combinar un control IntraWeb, con un elemento UI de jQuery, pero salta a la vista que esta relación está un poco "tomada por los pelos", y desde luego seria difícil aplicarlo a otros controles más especializados o a otros más complejos como los Grid. 

Que nadie se ofenda si digo que falta un poco madurar a estas nuevas conexiones. Sigo creyendo que a IntraWeb le hace falta algo más de "flexibilidad" en cuanto a procesar comandos realizados por controles "externos" . La librería proporciona componentes perfectamente "encapsulados" que realizan muchas funciones de forma autónoma, pero tiene relativa dificultad en procesar otros comandos que puedan ser realizados por las librerías Ajax externas.



En este sentido siempre  he echado en falta una forma de responder un comando html, de forma sencilla, desde nuestro form. La alternativa es crear un componente explicito que responda a estas llamadas. Esto no es demasiado complicado haciéndolo bajo las "reglas" de Intraweb.
Pero las herramientas Ajax llevan normalmente su propia "filosofía" a la hora de gestionar y generar preguntas y respuestas al servidor: Esto suele chocar con la rígida forma de "interrogar" a nuestra aplicación IntraWeb. Como comentamos en el articulo
Ajax en IntraWeb no es fácil, pero desde luego no es imposible comunicar con nuestra Aplicación IntraWeb.
También ocurre, que las librerías Ajax, suelen crear su propia "Capa" de acceso a elementos Dom, que en nada coincide con la  forma de entenderlos por IntraWeb, eso hace difícil comunicar componentes "tradicionales" de IW con widgets externos.


    Un componente muy normal y usado en cualquier programa es la tabla o grid de datos. Todas las librerías Ajax que he revisado tienen algún componente para visualizar tablas de datos, y generalmente, ofrecen buen aspecto y opciones automáticas para ordenar columnas , moverlas o cambiar el tamaño. También ofrecen la posibilidad de editar los campos o configurar el editor del campo de cada columna. Este tipo de componentes aun son dificiles de integrar con IntraWeb, y algo me hace pensar que le va a resultar difícil durante algún tiempo aún.






    Este asunto de las tablas es un buen paradigma  para entender lo que necesitamos. La forma preferida de intercambiar datos de una librería Ajax, es a través de XML, con lo que un componente que maneje "Grids" debe sobre todo responder a diferentes comandos que le envía el widget del navegador, con cadenas de carácteres en formato XML, y esto aún no es cómodo de hacer.

    
    En fin, sirva esta pequeña introducción para justificar la existencia del componente "InterAjax", que es una alternativa para integrar diferentes librerías Ajax en la aplicación IntraWeb.
De momento tiene soporte para YUI, ExtJs, Dojo y Zapatec.



 


No hay comentarios: