Necesito rellenar algunos cuadros desplegables de algunos datos de referencia. es decir, Lista de ciudades, Lista de países, etc. Necesito completarla en varios formularios web. Creo que deberíamos almacenar estos datos en caché en nuestra aplicación para que no golpeemos la base de datos en todos los formularios. Soy nuevo en el almacenamiento en caché y ASP.Net. Por favor sugiereme cómo hacer esto.Caché de datos en ASP.Net
Respuesta
Siempre agrego la siguiente clase a todos mis proyectos que me dan fácil acceso al objeto Cache. Implementar esto, siguiendo la respuesta de Hasan Khan sería un buen camino a seguir.
public static class CacheHelper
{
/// <summary>
/// Insert value into the cache using
/// appropriate name/value pairs
/// </summary>
/// <typeparam name="T">Type of cached item</typeparam>
/// <param name="o">Item to be cached</param>
/// <param name="key">Name of item</param>
public static void Add<T>(T o, string key, double Timeout)
{
HttpContext.Current.Cache.Insert(
key,
o,
null,
DateTime.Now.AddMinutes(Timeout),
System.Web.Caching.Cache.NoSlidingExpiration);
}
/// <summary>
/// Remove item from cache
/// </summary>
/// <param name="key">Name of cached item</param>
public static void Clear(string key)
{
HttpContext.Current.Cache.Remove(key);
}
/// <summary>
/// Check for item in cache
/// </summary>
/// <param name="key">Name of cached item</param>
/// <returns></returns>
public static bool Exists(string key)
{
return HttpContext.Current.Cache[key] != null;
}
/// <summary>
/// Retrieve cached item
/// </summary>
/// <typeparam name="T">Type of cached item</typeparam>
/// <param name="key">Name of cached item</param>
/// <param name="value">Cached value. Default(T) if item doesn't exist.</param>
/// <returns>Cached item as type</returns>
public static bool Get<T>(string key, out T value)
{
try
{
if (!Exists(key))
{
value = default(T);
return false;
}
value = (T)HttpContext.Current.Cache[key];
}
catch
{
value = default(T);
return false;
}
return true;
}
}
Por otra cuestión suya, leí que está utilizando arquitectura de 3 capas con dal, negocio y capa de presentación.
Así que supongo que tiene alguna clase de acceso a datos. Lo ideal sería tener una implementación en caché de la misma clase y almacenarla en caché.
Por ejemplo: si tiene una interfaz IUserRepository entonces la clase UserRepository lo implementaría y agregará/eliminará/actualizará las entradas en db a través de los métodos, también puede tener CachedUserRepository que contendrá la instancia del objeto UserRepository y en los métodos get primero verá en la memoria caché contra alguna clave (derivada de los parámetros del método) y si se encuentra el elemento, lo devolverá; de lo contrario, se llama al método en el objeto interno; obtener los datos; agregar a la caché y luego devolverlo.
Su CachedUserRepository también tendrá una instancia de objeto de caché obviamente. Puede mirar http://msdn.microsoft.com/en-us/library/18c1wd61(v=vs.85).aspx para obtener detalles sobre cómo usar el objeto Cache.
... y solo para cultura general/vocabulario, esto se llama el patrón "Decorador". Es decir, "decora" el repositorio inicial con una funcionalidad adicional que implementa el almacenamiento en caché. – tsimbalar
- 1. Almacenamiento de datos en caché en ASP.NET MVC 3
- 2. Caché de datos frente a objeto de sesión en ASP.Net
- 3. ASP.Net Almacenamiento en memoria caché
- 4. Deshabilitar Caché de ASP.net
- 5. Patrones de almacenamiento en caché en ASP.NET
- 6. caché asp.net dentro de httpcontext
- 7. Escenario de almacenamiento en caché ASP.NET MVC
- 8. 'Caché' de una tabla grande en ASP.NET
- 9. ¿Alguna caché de datos asp.net admite la población de fondo de las entradas de caché?
- 10. asp.net mvc - almacenamiento en caché
- 11. Almacenamiento en caché en asp.net-mvc
- 12. Mejor manera de almacenar datos en caché
- 13. Asp.net MVC 2 almacenamiento en caché
- 14. Caché ASP.NET tamaño máximo
- 15. Deshabilitar caché asp.net
- 16. Estrategia de almacenamiento en caché, Caché de resultados frente a caché de datos o ambos?
- 17. Encabezados de control de caché en ASP.NET
- 18. asp.net mvc deshabilitar caché ajax
- 19. Caché de buñuelos ASP.NET MVC2
- 20. Compensación caché de página en ASP.NET
- 21. $ .getJSON devolviendo datos en caché en IE8
- 22. MVC3 técnicas de caché de datos
- 23. IE8 getJSON datos en caché
- 24. Datos de almacenamiento en caché en grails
- 25. ¿Cómo funciona el caché ASP.NET?
- 26. ASP.NET MVC - compresión + almacenamiento en caché
- 27. ASP.Net MVC Menú basado en la base de datos con almacenamiento en caché
- 28. Almacenamiento en caché hasta que los cambios de datos en ASP.NET MVC y Entity Framework 4.1
- 29. Extensión de caché de datos ASP.NET para ser compartida en la granja de servidores web
- 30. Almacenamiento en memoria caché de todos los usuarios en ASP.NET
Nice coding ... upvoted –