ASP.NET 5 Caching

Continuamos nuestras entregas de ASP.NET 5 con algo de uso habitual y que como el resto de servicios y funcionalidades también ha cambiado  de arriba a abajo. La cache es, sin temor a equivocarme, uno de los aspectos fundamentales en la web, no hace falta que explique el porqué, y por lo tanto uno de los elementos a los que debemos de prestar una atención especial, por eso, nos pararemos en esta entrada en los elementos fundamentales para la nueva generación de aplicaciones web.

 Todo el código aquí mostrado se basa en el proyecto Caching que como el resto de código relacionado con ASP.NET 5 Microsoft tiene alojado en GitHub y sobre el que podemos contribuir.

Abstractions

Este proyecto concentra los elementos fundamentales de nuestro sistema de cache, desde la definición de una cache en memoria hasta los conceptos fundamentales de entradas hasta los de expiración y desahucio.

Memory

En este proyecto encontramos una implementación de las entradas anteriores basado en colecciones en memoria, su uso, como vemos a continuación es tan sencillo como se ve en el siguiente código.

[snippet id=”229″]

Distributed

Este es en realidad el paquete que tendremos agregado por defecto en nuestras aplicaciones MVC y redefine una nueva interface IDistributedCache que es la base del código de MVC que hace uso de esta funcionalidad.

[snippet id=”230″]

A mayores de definir un nuevo contrato, este paquete contiene una implementación en memoria de cache y un método extensor que nos permite registrarla sin problemas con nuestro método AddCaching.

[snippet id=”231″]

Redis

Como implementaciones alternativas a una cache en memoria, que en realidad es lo que tenemos out of box, el proyecto contiene una implementación de una cache basada en Redis, utilizando los drivers de StackExchange. Por ahora, no hay métodos extensores en  este proyecto para hacer el registro de esta dependencia, pero crearlo sería tan fácil y sencillo como el anterior.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *