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.