Grupo Linuxero del Bajío

Contenido

Linux Mono ASP.Net client callbacks

jacob israel cervantes luevano

Después de un sin fin de ocupaciones por fin les presento mi articulo, y un enlace a un archivo PDF con el ejemplo completo, siguiendo la propuesta de ceyusa, así que los demás que no han enviado sus documentos por favor envíenlos.

En el modelo de las páginas ASP.NET por omisión el usuario interactúa con una página haciendo clic en un botón o ejecutar alguna otra acción que genere un “postback”, entonces la página y sus controles son recreados, el código de la página se ejecuta en el servidor y una nueva versión de la página es renderizada en el navegador. Entonces …

¿Qué es un postback? Sin más ni mas: “ir y volver al servidor con datos”.

En algunas ocasiones sirve de mucho ejecutar código de servidor desde el cliente sin ejecutar un postback , si el script cliente en la página mantiene algún estado de la información que esta manipulando, postear la página y generar una nueva copia al hacer el postback destruye el estado, adicionalmente a esto el postback en la página decrementa el rendimiento en la página y forzar al usuario a esperar que la página nuevamente sea procesada y recreada.

Para evitar la perdida del estado del cliente y no incurrir excesivamente en viajes al servidor, podemos codificar una página ASP.NET en Mono y XSP que ejecute “client callbacks”. En un callback cliente un script cliente manda una petición a una página ASP.NET. la página ejecuta una versión modificada de su ciclo de vida normal esto significa que la página es iniciada y sus controles y otros miembros son creados y un especial método es invocado, el método se ejecuta y regresa un valor al navegador que puede ser leído por otra función en un script del lado del cliente, en todo este proceso la página permanece viva en el navegador web.

-Componentes Codifica lo siguiente: ● Implementar la interfaz ICallbackEventHandler. ● Proveer una implementación para el método RaiseCallbackEvent. Este método sera invocado para ejecutar el callback en el servidor. ● Proveer una implementación para el método GetCallbackResult. Este método regresara el resultado del callback al cliente.

El porque tienes que implementar los métodos RaiseCallbackEvent y GetCallbackResult es porque se está implementando la interfaz IcallbackEventHandler en una clase de CSharp y esta interfaz está definida en el archivo: mono-x.y.z/mcs/class/System.Web/System.Web.UI/ICallbackEventHandler.cs

if NET_2_0 using System; namespace System.Web.UI { public interface

ICallbackEventHandler { string GetCallbackResult (); void RaiseCallbackEvent (string eventArgs); } } #endif

Adicionalmente la página debe contener 3 funciones cliente: ● Una función que llama un método de ayuda el cual ejecuta la petición al servidor. En esta función se puede mandar un argumento de tipo cadena al manejador de evento del callback del lado del servidor. ● Otra función que reciba el resultado del código de servidor que es procesado por el evento del callback el cual acepta una cadena que representa el resultado. Esto se llama la función client callback. ● Una tercer función que ayuda ejecutar la petición al servidor la cual es generada por ASP.NET cuando generas una referencia a esta función usando el método “GetCallbackEventReference”.

Para ver el código completo de la aplicación y como ponerlo en marcha haz clic en este enlace http://www.ministeriosjm.com/area51/~jacob/docs/articles/clientcallbacks.pdf

Nota: en la próxima reunión podria platicarles como usar el código anterior realizando un ejemplo práctico y sencillo.