Azure Cache Manager and Redis Cache Manager
CodeFluent Entities allows to cache request results by using the Cache sub-producer:
CodeFluent entities provides out of the box three types of Cache implementations:
- Simple Cache Manager, based on the ASP .NET cache (that can be used outside of ASP.NET) (CodeFluent.Runtime.Caching.SimpleCacheManager, CodeFluent.Runtime)
- Simple Localized Cache Manager, a sub-class of the Simple Cache Manager that can manage localized keys (CodeFluent.Runtime.Caching.LocaleCacheManager, CodeFluent.Runtime)
- Enterprise Library Cache Management, you must install the Enterprise Library in order to use it (CodeFluent.Runtime.Caching.EnterpriseLibraryCacheManager, CodeFluent.Runtime)
You can specify the type of cache you want to use on the “Runtime Cache Type Name” attribute (the full type name). You can use a different cache systems by scope (entity, method).
Azure Cache is a family of distributed, in-memory, scalable solutions that enables you to build highly scalable and responsive applications by providing you super-fast access to your data. We offer the following types of Azure Cache:
- Azure Redis Cache: Built on the open source Redis cache. This is a dedicated service, currently in Preview.
- Managed Cache Service: Built on App Fabric Cache. This is a dedicated service, currently in General Availability.
- In-Role Cache: Built on App Fabric Cache. This is a self-hosted cache, available via the Azure SDK.
CodeFluent Entities already provide support some Azure features such as Azure Table and Azure Blob Storage, and we decided to continue our efforts to help our customers to use Microsoft Azure. This is why we release two new cache managers:
- Redis Cache Manager
- Azure Cache Manager
How to use Azure Redis Cache?
Now you can change the cache producer configuration:
Then build the model.
Finally you have to configure the cache manager with the configuration file (app.config or web.config) to use your Redis server:
<appSettings> <add key="SoftFluent.Samples.RedisCache.Caching.RedisCacheManager.Configuration" value="sample.redis.cache.windows.net,allowAdmin=true,ssl=true,password=password" /> <add key="SoftFluent.Samples.RedisCache.Caching.LocaleRedisCacheManager.Configuration" value="sample.redis.cache.windows.net,allowAdmin=true,ssl=true,password=password" /> </appSettings>
Note: if you use the Localization Aspect, you have to use SoftFluent.Samples.AzureCache.Caching.LocaleRedisCacheManager.
How to use Azure Cache Service and In-RoleCache?
Managed Cache Service and In-Role Cache use the same API, so you can use the same cache manager.
Download the CacheManager from GitHub and add it to your project. You also need to add the following NuGet package: Microsoft.WindowsAzure.Caching. Now you can change the cache producer configuration:
Then build the model.
Finally you have to configure the azure cache client: http://msdn.microsoft.com/en-us/library/azure/gg278346.aspx.
If you are not using the “default” cache, you can set the client name and cache name in the configuration file (app.config or web.config):
<appSettings> <add key="SoftFluent.Samples.AzureCache.Caching.AzureCacheManager.ClientName" value="default"/> <add key="SoftFluent.Samples.AzureCache.Caching.LocaleAzureCacheManager.CacheName" value="default"/> </appSettings>
Note: if you use the Localization Aspect, you have to use SoftFluent.Samples.AzureCache.Caching.LocaleAzureCacheManager.
If you think we can add some useful functionalities to CodeFluent Entities, please share your idea on the forum.
The R&D Team