Ho bisogno di compilare alcuni box dropdown da alcuni dati di riferimento. Elenco delle città, Elenco dei paesi, ecc. Devo riempirlo in varie forme web. Penso che dovremmo memorizzare nella cache questi dati nella nostra applicazione in modo tale da non colpire il database su ogni modulo. Sono nuovo al caching e ASP.Net. Per favore suggeriscimi come fare questo.Caching dei dati in ASP.Net
risposta
Aggiungo sempre la classe seguente a tutti i miei progetti che mi consentono di accedere facilmente all'oggetto Cache. L'implementazione di questo, seguendo la risposta di Hasan Khan sarebbe un buon modo per andare.
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;
}
}
Da un'altra tua domanda ho letto che stai usando un'architettura a 3 livelli con livelli dal, business e presentazione.
Quindi presumo che tu abbia qualche classe di accesso ai dati. La cosa ideale da fare sarebbe avere un'implementazione memorizzata nella cache della stessa classe e fare il caching in questo.
Esempio: Se avete un IUserRepository un'interfaccia allora classe UserRepository sarebbe implementarla e aggiungere/eliminare le voci/aggiornamento su db tramite metodi allora si può anche avere CachedUserRepository che conterrà istanza di oggetto UserRepository e ottenere metodi cercherà prima nella cache contro qualche chiave (derivata dai parametri del metodo) e se l'oggetto viene trovato, lo restituirà altrimenti chiamerai il metodo sull'oggetto interno; ottenere i dati; aggiungere alla cache e quindi restituirlo.
Anche il tuo CachedUserRepository avrà un'istanza di oggetto cache ovviamente. È possibile consultare http://msdn.microsoft.com/en-us/library/18c1wd61(v=vs.85).aspx per i dettagli su come utilizzare l'oggetto Cache.
... e solo per cultura generale/vocabolario, questo è chiamato il modello "Decoratore". Cioè, "decorerai" il repository iniziale con un functionaility aggiuntivo che implementa il caching. – tsimbalar
- 1. Asp.net MVC 2 caching
- 2. caching dei dati per ogni richiesta in applicazione Owin
- 3. Pro/Contro di diverse opzioni di caching ASP.NET
- 4. Come si prende in giro l'oggetto caching in asp.net mvc?
- 5. Rilevamento/gestione dei dati modificati in ASP.NET MVC/jQuery/JS
- 6. Salvataggio dei dati Viewmodel nel database in ASP.NET MVC
- 7. qual è l'approccio comune per il caching dei dati in angular.js
- 8. La caching Donut è disponibile in ASP.NET MVC 3
- 9. parziale page caching e VaryByParam in ASP.NET MVC 3
- 10. Annotazioni dei dati in Swagger
- 11. Asp.net - Caching vs variabile statica per memorizzare un dizionario
- 12. Memorizzazione nella cache fino alla modifica dei dati in ASP.NET MVC ed Entity Framework 4.1
- 13. Best Practice quando caching dei file in Android
- 14. Come implementare caching dei frammenti (W3TC) in Wordpress
- 15. Abilita il caching dei file css e js in Apache
- 16. ASP.NET MVC: la convalida dell'annotazione dei dati è sufficiente?
- 17. ASP.NET MVC Passaggio dei dati dalla vista al controller
- 18. Caching connessioni MongoDB in Django
- 19. Caching in JDBC
- 20. interi caching in Java
- 21. Caching in JavaFX WebView
- 22. Passaggio dei dati di sessione tra le applicazioni ASP.NET
- 23. Utilizzo dell'annotazione dei dati MVC ASP.Net all'esterno di MVC
- 24. Descrizione del comando di annotazione dei dati MVC di ASP.NET
- 25. ASP.Net caching - proprietà CacheDuration sembra non avere alcun effetto
- 26. ASP.Net Esporta dati in Excel
- 27. bidirezionale associazione dati in ASP.NET
- 28. is .net caching dati sensibili saranno pericolosi in termini di sicurezza o problemi di sicurezza?
- 29. Accesso ai dati dei dati dei moduli
- 30. Framework di caching per .NET
Nice coding ... upvoted –