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

Cache de la aplicación



Una de las cosas que hace que las aplicaciones sean más lentas o que consuman más recursos es tener que mover grandes cantidades de datos, por ejemplo si vamos a mostrar un listado de productos tenemos que enviar a cada petición las imágenes y el texto correspondiente.

Si bien esto es lo esperado, hay formas en las cuales podemos disminuir la carga al servidor de esto, ya que si necesitamos por ejemplo enviar el listado, y este no ha cambiado no vale la pena consultar la base de datos por cada petición idéntica.

¿Cómo resolver esto?
Para solventar este problema existe el cache, que no es más que una forma en la cual podemos almacenar resultados para evitar volverlos a consultar mientras no hayan cambiado, con ello podemos por ejemplo guardar el texto fuera de la base de datos y servirlo de forma estática, reduciendo el esfuerzo que tiene que hacer el servidor.


En esta sección veremos a fondo que significa el cache y las opciones que tenemos para implementar una solución de este estilo en nuestras aplicaciones ASP.NET MVC.

¿Qué es el cache?


asp_cache_aplicacion.jpg


Primero vamos a definir un poco más a fondo este concepto, el cache no es más que el almacenamiento de datos para poder ser consumidos luego, de esta forma reutilizamos la información para todas las peticiones que se hagan sobre ella.

Validez del cache
El cache tiene una validez, es decir, un tiempo o una condición de expiración, garantizando así que no se sirva contenido des-actualizado, para ello se sirve de APIs y herramientas que permiten alcanzar estos objetivos. Sin embargo estas condiciones de expiración no corresponden a la API determinada, es ahí donde entra el papel del desarrollador de la aplicación de establecer los parámetros correctos para que la aplicación gane en rendimiento y no tenga problemas.


ASP.NET MVC tiene compatibilidad con varias herramientas que nos permiten manejar el cache de la aplicación de forma adecuada, por ello es importante dominar estos conceptos.

Tipos de Cache


Según la forma en la que implementemos el cache tenemos dos tipos o categorías, la primera categoría la responsabilidad recae sobre el servidor y la segunda categoría la responsabilidad recae sobre el cliente.

Ambas categorías tienen el mismo objetivo de disminuir el esfuerzo del servidor al almacenar los datos, la diferencia es que como sus nombres indican una lo hace directo en el servidor y otra lo hace en el cliente.

Cache en el servidor


El objetivo principal del cache en el servidor es disminuir la carga sobre el CPU y mejorar la respuesta de las peticiones hechas, con esto logramos tener más recursos disponibles para atender más peticiones, generalmente en esta categoría es que cae el cache de Base de Datos y de generación de documentos.

La disminución de la carga ocurre al disminuir la cantidad de llamados a consulta de datos tanto en la base de datos como en los procesos que la generan, ya que es más fácil servir contenido estático que dinámico, por supuesto esto también depende de la buena configuración de nuestro servidor.

Cache en el cliente


El cache en el lado cliente implica una dimensión diferente, ya que aquí lo que se busca es disminuir el consumo de ancho de banda de la aplicación, es decir, buscamos descargar la menor cantidad de datos desde el servidor.

Es posible utilizarlo gracias a las nuevas implementaciones de los navegadores que nos permiten almacenar contenido en el equipo cliente. Generalmente se utiliza para guardar archivos estáticos, como por ejemplo imágenes, hojas de estilos, archivos de Javascript.

En equipo es mejor
El hecho que sean dos categorías diferentes no significa que no puedan trabajar en conjunto o que se excluyan mutuamente, la idea es aplicar técnicas para ambas partes de forma que podamos optimizar al máximo los recursos que tenemos disponibles y que nuestra aplicación sea más rápida. Cada categoría tiene un ámbito y queda de parte de cada desarrollador poder explotar cada uno de la mejor forma posible.



¿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