Posted by: carloslone | August 3, 2007

Web Developer Helper para ASP.NET AJAX

Recientemente tuve la oportunidad de hacer dos presentaciones de ASP.NET AJAX, una en la Comunidad de Desarrolladores de .Net de Guatemala y la otra para el grupo Balam Kat de la Universidad de San Carlos de Guatemala. Una de las herramientas que llamo mucho la atención en mis presentaciones fue el uso del Web Developer Helper. Quiero Dedicar este post a explicar con un poco más de detalle como utilizar esta herramienta.

El Web Developer Helper fue desarrollado por Nikhil Kothari de Microsoft, realmente este personaje tiene mucha experiencia y conocimiento de Web Client Development y para muestra la herramienta desarrollada por el mismo. El Web Developer Helper nos permite poder tener acceso a diferentes utilitarios para poder realizar las siguientes actividades:

  • Inspección del DOM (Document Object Model)
  • Inspección a los POST y GETS que hace una pagina
  • Capacidad de poder interpretar la notación JSON (Java Script object Notation)

Para poder utilizar la herramienta deben de instalarla en sus máquinas, seguir el siguiente vinculo para descargar la ultima version:

http://projects.nikhilk.net/Binaries/WebDevHelper.zip

Una vez instalada la aplicación, debemos ir al menu de herramientas del Internet Explorer y ubicar la opción Web Development Helper, esto les habilitara una ventana dentro del navegador para poder utilizarla.

Click para Ver Imagen

Una de las utilidades más interesantes que podemos encontrar en esta herramienta es el DOM Inspector, con el cual podemos ver toda la estructura de una pagina web, como por ejemplo su codigo HTML, los estilos aplicados a los elementos y los atributo de un tag de HTML.

Click Para ampliar la imagen

La utilidad que más soporte nos va a brindar para poder ver lo que estamos enviando y recibiendo a traves del protocolo HTTP es “Http Logging” cuando habilitamos esta opción en la herramienta podremos ver las acciones “Get” o “Post” que se generen desde una pagina al servidor, asi como tambien podremos ver el Response del servidor:

Click para ampliar la imagen

Una característica interesante del HTTP Log Viewer es que puede identificar objetos que se esten enviando desde el servidor en notacion JSON (Java Script Object Notation).

Click para ampliar Imagen

 

Si de pueden dar cuenta la herramienta Web Developer helper tiene muy buenas caracteristicas y sobre todo es un aplicación con la cual debemos contar en nuestro kit de desarrollo. Algo bien importante es que a traves de esta herramienta ustedes pueden debugear y observar lo que sucede cuando tienen aplicaciones que hacen uso del ASP.NET AJAX.

Espero que esta breve introducción les sirva para que puedan hacer uso del Web Developer Helper. Hasta la Proxima !!!

Saludos

Carlos A. Lone 

del.icio.us Tags: , , ,

Technorati Tags: , , ,


Responses

  1. Que tal Carlos, hace algún tiempo te pedí el link del web developer helper y por cierto creo que no te pude agradecer pero muchas gracias.
    Ahora me he encontrado con una situación que no puedo resolver y entonces te la planteo para ver si me podes sugerir algo ó alguno de tus lectores.

    Bueno pues he desarrollado una aplicación en punto net usando ajax extensions y también he incluido controles del control toolkit , la aplicación es consecuentemente .net 2005, pues mientras la desarrollaba en mi máquina todo funciona muy bien, el problema es que cuando la publique, cada vez que quería cargar alguna página me enviaba un error de servidor con código 500. la primera vez que eso me ocurrio, lo resolví con la ayuda del WDH pues pude ver que el problema era el juego de caracteres, pero esta vez lo extraño es que no habían caracateres extraños, dado el inconveniente busqué información pero el error http 1.1 código 500 parece que se devuelve por múltiples razones así que empece con a Debeguear el asunto hasta que me encontre con que el problema era que no podía hacer una conexión a la base de datos por que entre una página y otra pase el usuario por una variable de sessión y esta se pierde, pero no entiendo por que las variables de sesión se estan perdiendo pues la página tiene un flujo totalmente normal pero al parecer por alguna razón como que hiciera un doble postback ó por el contrario como que sólo hiciera una llamada a la página que tiene en caché y se pierden las variables, el asunto es que la aplicación es muy grande y ha llevado mucho tiempo desarrollarla como para no gastar tiempo en corregir este problema cuya causa aún no conozco y por consiguiente la solución que he implementado es parcial pues lo único que he podido hacer es colocar en el unload de cada página una nueva asignación de los valores a las variables de sessión, pero esto no resuelve completamente el problema, entonces si alguien se ha encontrado con este problema y conoce la solución agredeceré mucho su colaboración.

  2. Estimado Christian,

    Que bueno saber que el post te ha sido de ayuda. Respecto a tu pregunta las causas pueden ser muchas, sin embargo te doy algunas posibilidades con las que puedes comenzar a probar para ver que es lo que esta sucediendo.

    1. En primer lugar te sugiero que trates de poner algo en los Eventos SessionStart y SessionEnd del archivo Globalasa y debugees para ver en que momento se esta terminando la sesion. Esto te puede dar un mejor entendimiento de cuando sucede esta situación.

    2. Otra posible razón, es que utilices el modo estándar de las sessiones “InProc”, que quiere decir que guarda la session en el worker process de asp.net, pero el problema se da si tienes muy cargada tu maquina y ésta se queda sin memoria, entonces por la liberación de recursos se pueden tambien perder las variables de sesion.

    3. Es probable que por la forma en que se manejen los postback desde el IE, como realmente funciona con un objeto que se crea en memoria y éste es el que crea el callback como por cada peticion es un objeto nuevo entonces para el servidor se maneje como una variable nueva. Leyendo un poco encontre una forma de referenciar sessiones desde ajax, te copio el ejemplo:

    [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)]
    public string getMySessionVariable()
    {
    string strVar = (string)Session[“somevariable”];
    return strVar;

    }

    personalmente no lo he probado, pero al parecer ésta ha sido solución para otros.

    Espero que estos tips te puedan ayudar a resolver tu problema.

  3. Gracia por tu ayuda, en realidad la función de c# que colocas ahí pues no exáctamente lo que he hecho pero lógicamente es la misma solución que ya implemente, el problema es que no funciona bien simpre, por ejemplo, cuando carga la página, bajamos las variables de sesión así como lo haría esta función a un string y cuando sale de la página las vuelve a subir al pasar al evento unload, pero como algoritmo es algo así
    evento load
    lblUsuario.text=Session(“usuario”)
    evento unload
    Session(“usuario”)=lblUsuario.text
    entonces luego de que la página pasa por el unload y se dirige a la siguiente página parece que algo sucede y cuando llega a la siguiente página de nuevo Session(“variable”) is nothing se hace true. lo extraño es que mientras lo debugueo desde .net todo funciona maravillosamente bien, pero cuando lo publico en iis de mi máquina ya no funciona y cuando lo publico en el servidor de producción tampoco funciona, entonces no me ha sido útil debuguearlo, no se que más podría hacer.

    gracias por tu ayuda nuevamente.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

%d bloggers like this: