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.
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:
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:
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.
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:
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.