Aspectos fundamentales de la programación ASP.NET (parte 5)

Quinta y ultima parte del bloque que hablo de Aspectos fundamentales de la programación ASP.NET. Primero sería bueno leer la primer parte,la segunda, la tercera y la cuarta.

Ejecución de una página ASP.NET

Parte fundamental para entender como funciona ASP.NET y como puede afectar esto a tu forma de programar tus aplicaciones web. Ya he dicho antes que ASP.NET se planteó que la programación fuera “Event driven” que significa que cada página genera eventos.

Entender cual es el orden de generación de los eventos es esen-cial para programar correctamente.

Para verlo hablamos del ciclo de vida de la página. Aquí vas a encontrar un resumen del ciclo. Cuando llega una petición :

Construir el árbol de controles

Verás que las páginas en ASP.NET utilizan controles de servidor y esos controles están ordenados en forma de árbol tal y como ya pasa en las aplicaciones Winforms.

Evento Init

El primer evento que se ejecuta en una página es el Init. Tienes creados los controles pero estos aún no tienen los valores.

Cargar el estado y los datos recibidos

Aquí es donde se guardan los datos en los controles. En el caso que la petición sea un submit de un formulario previamente enviado también se guardaran estos valores nuevos.

Evento Load

El evento más comúnmente utilizado. Es donde tienes acceso a los valores en los controles. Aquí es importante no hacer inicializaciones sin antes comprobar que no se está realizando una petición Postback. Postback es la forma que tenemos para llamar las peticiones que envían información al servidor. Es decir, las llamadas creadas mediante una acción del usuario. No son Postback cuando la petición es directa mediante la barra de navegación del explorador o mediante un link simple (etiqueta a) de la página.

Evento acción del usuario / evento cambios en controles

Si se trata de una petición Postback quiere decir que el usuario ha realizado una acción, como por ejemplo el clic de un botón, esta acción es un evento que se debe tratar. También pueden ocurrir otros eventos que no tienen por que ser acciones de botones. Pueden ser eventos producidos por el cambio en una lista, el cambio en un texto. Este tipo de eventos también se tratan.

Evento LoadComplete

El evento anterior a procesar la página para su entrega al cliente.

Guardar el estado

Una de las características del ASP.NET es la utilización en cada página de una variable de estado denominada ViewState que permite recuperar el estado en que se ha enviado inicialmente la página. Fíjate que sin el ViewState no podrías saber que eventos de modificación se han producido.

Renderizar los controles

Otra característica de ASP.NET es la utilización de controles de servidor. Estos controles se caracterizan por empezar en “asp:”, tener un ID y un runat=”server”. Estos controles no pueden ser interpretados por ningún navegador ya que ellos solo interpretan Html. Por eso antes de enviar necesitas transformar los controles de servidor en Html.

Evento Unload

Ultimo evento en el ciclo. Se pueden liberar recursos ocupados en el proceso.

La siguiente tabla tienes todos los eventos que se generan en el ciclo de ejecución de una página. Al lado tienes los que se generan en cada uno de los controles.

aspnet cycle

Más cosas de los eventos

Los eventos producidos por cambios en los controles siempre se ejecutan cuando hay un Postback. Recuerda que un Postback es cuando llega una solicitud al servidor producido por una acción del cliente. Esta acción puede ser la pulsación de un botón como también la selección de otro elemento de una lista.

Algunos controles tienen una propiedad AutoPostBack que poniéndola a cierto provocas que cualquier cambio produzca esta acción.

Puedes tener varios controles en una misma página que generen eventos de modificación. El orden en el servidor no esta establecido y por tanto es aleatorio.

Como ya te he dicho antes sin el ViewState no se pueden generar eventos de modificación. El ViewState en los controles se puede deshabilitar. Páginas que sean demasiado pesadas puedes quitarle este peso deshabilitando el ViewState de algunos controles o incluso de toda la página.

Advertisements

Deixa un comentari

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

WordPress.com Logo

Esteu comentant fent servir el compte WordPress.com. Log Out / Canvia )

Twitter picture

Esteu comentant fent servir el compte Twitter. Log Out / Canvia )

Facebook photo

Esteu comentant fent servir el compte Facebook. Log Out / Canvia )

Google+ photo

Esteu comentant fent servir el compte Google+. Log Out / Canvia )

Connecting to %s