Cargando



Manejo de cache a fondo con ASP.NET MVC

En este tutorial veremos los distintos tipos de cache en una aplicación y las diferentes técnicas que tenemos disponible para su aplicación en el servidor y en ASP.NEt MVC.


ago 29 2014 05:13
Avanzado
sep 19 2014 05:28

Técnicas de cache en el servidor



Una de las cosas más interesantes cuando decidimos aplicar un sistema o una funcionalidad de cache en nuestras aplicaciones, es que tenemos muchas opciones y formas, estas las clasificamos por técnicas, pero dentro de cada técnica podemos hacer diferentes implementaciones que se acerquen al estado óptimo ideal de nuestras aplicaciones.

En este caso vamos a profundizar un poco de las diferentes técnicas que podemos aplicar en el lado del servidor en nuestras aplicaciones ASP.NET MVC, con ello podremos tener una panorámica de todo lo que podemos hacer y también encontrar tal vez puntos de vista que no hayamos visto.

En esta sección veremos las principales técnicas de cache en el servidor que se pueden aplicar en ASP.NET MVC.

Cache en la petición


En esta técnica el cache se aplica en el ámbito de la petición, esto es posible debido a que cada petición de una aplicación de ASP.NET MVC crea una instancia de System.Web.HttpContext lo que hace que tengamos que interactuar con este componente como una columna central.

Propiedad Items
Dentro de todas las propiedades de HttpContext nos interesa una llamada Items, con ella podemos tener acceso a un diccionario de datos donde podremos almacenar datos temporales que solo son pertinentes para la conexión establecida por la petición.


Debido a esta gran accesibilidad podemos intercambiar datos entre componentes en la aplicación de una forma sencilla. Veamos en el siguiente ejemplo como podemos establecer un elemento de ese componente:






asp_tecnicas_cache.jpg


Cache en el usuario


En esta técnica utilizamos las sesiones, con ello podemos mantener valores entre peticiones para un mismo usuario, almacenando así todo lo que pueda necesitar que consideremos importante y que no tenga la aplicación que consultarlo de forma recurrente dese la base de datos o procesándolo.

Como esto puede ser almacenado por nuestro servidor debemos establecer un tiempo de vencimiento, con ello nos garantizaremos que no utilizaremos recursos de forma innecesaria. Para poder emplear esta técnica tenemos disponible el componente Session del objeto HttpContext, de esta forma podemos almacenar diferentes valores en él y luego acceder a ellos en nuestra aplicación como podemos ver en el siguiente ejemplo:

asp_tecnicas_cache2.jpg


Otra de las cosas más interesantes de esta técnica es que ASP.NET MVC nos permite almacenar en diferentes sitios las sesiones, podemos elegir entre la memoria, una base de datos o hacer la conexión con algún proveedor externo.

Cache de la aplicación


Esta técnica es similar a la anterior, sin embargo el ámbito que maneja es la aplicación, por lo que es posible compartir datos entre usuarios, sesiones o peticiones, se utiliza cuando necesitamos mantener en un nivel más cercano algunos datos.

HttpContext.Application
Para emplear esta técnica nos podemos valer del componente HttpContext.Application, sin embargo la vida del almacenamiento de este componente está atado al servidor, por lo que es responsabilidad del IIS y si esté falla la data es limpiada.


Por ello este tipo de cache se debe utilizar cuando sabemos que la información no cambia o cambia de forma esporádica, y se utiliza para ahorrar consultas excesivas a base de datos. Para implementarlo podemos verlo en la siguiente imagen de ejemplo:

asp_tecnicas_cache3.jpg


Finalizando este tutorial hemos aprendido a utilizar algunas formas de cache en los diferentes ámbitos del servidor que podemos afectar en nuestras aplicaciones desarrolladas con ASP.NET MVC.


¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X