22

Ya se procuró en el core del DNN solventar esta situación con la posibilidad de cargar en la memoria el ViewState de las páginas, pero ésto siempre que lo he probado me ha provocado malfuncionamiento en las páginas que envían datos al servidor (formularios, cesta de la compra, cambios en configuraciones...) y más si se anda escaso de memoria RAM en el servidor, por lo que al final siempre he terminando optando por descartar esta configuración y abandoné hace tiempo la idea de quitar esta información de mis sobrecargadas páginas.

Pero, afortunadamente, hace unos días descubrí un módulo gratuito que permite la correcta gestión del ViewState almacenándolo en archivos XML en el servidor, si bien ofrece otras dos opciones de almacenamiento, creo que esta es la más adecuada para mi perfil de sitio. Sin más rodeos, os presento al nuevo fichaje de mi selección de módulos: Open-ViewState. Lo que sigue es una traducción libre, con algún que otro añadido, de la página oficial del módulo.

Open-ViewSate anula el comportamiento por defecto de ASP.Net de enviar la información de estado de la página al navegador del cliente. En lugar de ello, la información queda almacena en el servidor, reduciendo así el tiempo de carga  de la página y el tiempo de postback ,  incrementando también la seguridad de las páginas . Aspx.

 


Cómo funciona?

Open-ViewSate es un módulo HTTP, que no requiere cambios ni recompilación del código fuente, Cuando una respuesta contiene información de estado, esta se elimina y se coloca en la carpeta del servidor configurada para el almacenamiento de los archivos de estado. En lugar de todo el bloque de ViewState, al cliente se le sirve una clave oculta, que permita la recuperación de los datos de estado almacenados en su próxima solicitud.
En la siguiente petición, la información ViewState previamente almacenada se recupera estando disponibles para su uso y la modificación de la aplicación como de costumbre.
Justo antes de que el HTML resultante se envíe de vuelta al cliente en la respuesta, es, una vez más, almacenado en el servidor .


Opciones de Almacenamiento

Debido a que implementa el Plan de proveedores, usted tiene a su disposición dos formas de almacenar ViewState (serán más en el futuro):

Guardar en caché: guardar ViewState en caché, en el servidor .
Guardar en XML:  almacena el ViewState en un archivo XML en el servidor .
Guardar en Servidor SQL: almacena la información en el servidor de datos.


La opción de almacenamiento que elija, dependerá de sus necesidades, así como las limitaciones de su entorno de hosting.

Salvar en caché:
Se recomienda para las situaciones en que usted tiene un moderado volumen de visitantes. Las páginas serán enviadas más rápido (ya que solo hay que acceder a la memoria para recuperar la información). Esta sería equivalente al modo "Memoria" de la configuración del Host en el Core del DNN.
ESta Chache se recicla automáticamente por el servidor cuando léste require la  memoria , es importante conocer los límites de memoria que ofrece el proveedor de alojamiento,  y qué volumen de usuarios se pueden esperar en un momento dado.
La configuración en caché, le permite especificar el número de minutos que desea que el viewstate se mantenga en memoria antes de ser reciclados.
En caso de que se produzca el reciclado antes de que el usuario finalice su tarea, la página no fallará, pero será redirigida a sí mismo,  instanciando un nuevo ciclo de caché y perdiendo el usuario todo el nuevo contenido que introdujo. Un ejemplo de esta situación sería cuando estamos escribiendo un texto largo de respueta en un foro, nos demoramos más de la cuenta y a la hora de enviar el mensaje, la caché de estado ha caducado y nuestro texto ha desaparecido mostrandonos la página de envío del mensaje con el cuadro de texto vacío.

Guardar en XML:
Se recomienda para los sitios de alto volumen. Las páginas son servidas rapidamente,  y el viewstate almacenado y recuperado de archivos XML guardados en el directorio de tu elección.
Habrá un archivo para cada usuario, y los archivos serán eliminados en un intervalo de tiempo configurable. Puesto que pueden haber múltiples ViewState en cualquier archivo (por ejemplo, si un usuario abre un pop-up), puede especificar el número de minutos que cualquier entrada ViewState puede ser inactivada antes de ser suprimida. Si tiene un montón de ventanas emergentes en su sitio ésta propiedad debe configurarse en pocos minutos.

Concluyendo, el módulo funciona muy bien, las páginas cargan bastante más rápido que sin él, lo único a tener en cuenta es darle un tiempo de vida al archivo de ViewState suficiente para que el usuario pueda realizar sus tareas sin sufrir el molesto reciclado que en las páginas que almacenan su propia información de estado no ocurre. Yo he considerado que darle 30 minutos de vida (el mismo que tiene la sesión de usuario en mi server) es lo más oportuno, y todas las pruebas que he realizado han sido óptimas.

Para conseguir éste módulo y consultar la oferta de otros módulos del desarrollador visita: http://www.opendnn.com/DNNModules/OpenViewState/tabid/110/Default.aspx

Que lo disfruten!

Valoraciones

Comentarios

No hay comentarios actualmente para este artículo, sea el primero en publicar uno.

Enviar Comentario

Nombre (obligatorio)

Email (obligatorio)

Sitio web

Imagen CAPTCHA
Escriba el código mostrado más arriba: