Cache parcial
Una aplicación web es muy rica en elementos, las páginas son bastante complejas como para pensar que una sola solución de cache puede servir para todos los casos en toda la aplicación; existe un caso como por ejemplo el home de nuestra aplicación, si bien es posible que muchas partes no cambian frecuentemente, lo que si lo hace es la sección de usuarios registrados.
Debido a esto no podemos utilizar un cache de salida completo, ya que podríamos terminar o con miles de versiones cacheadas del home o mostrando un solo nombre de usuario para miles de usuarios que se han autenticado.
En esta sección veremos a fondo el concepto de cache parcial y cómo podemos utilizarlo en nuestras aplicaciones hechas con ASP.NET MVC.
El concepto
El cache parcial es un tipo de cache en el lado del servidor que como habíamos adelantado nos permite cachear la página a excepción de ciertas partes, las cuales nos pueden servir para mostrar datos que cambian rápidamente sin perder la ayuda que le da a nuestra aplicación el no tener que cargar las secciones menos cambiantes.
Se le dice que es el cache tipo dona, ya que deja huecos como el popular postre, en los cuales podemos mantener contenido dinámico, es así como podemos cargar todos los elementos de una cabecera al cache y dejar la sección del nombre de usuario de forma dinámica.
La aplicación del cache
ASP.NET MVC no tiene soporte nativo para este tipo de cache, sin embargo, el componente Web Forms nos ofrece la instrucción Substitution con la cual podemos crear las secciones o huecos dinámicos donde podremos colocar nuestro contenido para aprovechar las ventajas de este tipo de cache. Veamos en el siguiente código como podemos aplicar esto:
Lo que hace el elemento Substitution es crear un callback al servidor donde podremos ejecutar algún método estático que nos permita traer la sección que afecta sin tener que recargar toda la página, veamos cómo quedaría nuestro controlador en este caso:
Vemos entonces como podemos extraer la información requerida con el controlador que hemos mostrado a través del método estático.
La mejora
Lo mostrado acá ha sido solo para ilustrar el concepto, podemos obtener un complemento que realmente se ajuste para dar el máximo de rendimiento al buscar en el manejador de paquetes NuGet de ASP.NET MVC, en específico el complemento MvcDonutCaching, con ello añadiremos un soporte mayor a nuestra aplicación y podremos implementar soluciones que estén listas para ser utilizadas en un entorno de producción.
Hemos aprendido un nuevo concepto que nos ayudará a mejorar la forma en la cual optimizamos nuestra aplicación para entornos de producción, con lo cual podremos llegar a reducir el consumo de recursos y aumentar la velocidad y rapidez de carga de nuestro proyecto