Domanda

Ho un'applicazione ASP.net che utilizza un oggetto di business comuni che abbiamo creato. Questi oggetti di business sono utilizzati anche in alcuni altri servizi di Windows o applicazioni di console.

Il problema che sto funzionando in è che se ho una classe di "pippo" e un "bar" di classe e ognuno ha una funzione loadClient (), se chiamo foo.loadClient () e bar.loadClient (), ogni richiesta colpirà il database. Immagino attuare una sorta di cache di ridurrebbero viaggi di andata e inutili al DB.

Ecco la cattura. Voglio che la cache per essere specifici per ogni richiesta HTTP che arriva sul ASP.net App. Cioè, una nuova richiesta ottiene una nuova cache. La cache può esistere per tutta la durata delle altre applicazioni console in quanto il 90% di loro sono programmi di utilità.

So che posso usare System.Web.Cache ma non voglio che il mio middleware legata alle librerie System.Web.

La speranza che lo spiega. Qualcuno mi può punto nella giusta direzione? Grazie!

È stato utile?

Soluzione

Stai riutilizzando gli oggetti durante la vita di una richiesta? In caso contrario, allora il modello si dispone suggerisce che ogni postback creerà anche una nuova serie di oggetti in vigore ovviando alla necessità di una cache. Tipicamente una cache ha valore quando gli oggetti sono condivisi tra le richieste

Per quanto riguarda utilizzando una soluzione di caching specifica non web ho trovato della Microsoft Caching Application Block molto robusto e facile da usare.

Altri suggerimenti

Credo che si può prendere un bottino al progetto di Velocity.

http://msdn.microsoft.com/en-us/data /cc655792.aspx - c'è un breve articolo

Se siete alla ricerca di interprocesso caching allora thats difficile.

Ma se non volete il vostro middleware legato a System.Web allora si può scrivere una libreria di interfaccia che servirà come ponte tra il middleware e system.web.

In futuro, se si vuole legare ad altro gestore della cache, allora si può semplicemente riscrivere la libreria di interfaccia bridge mantenere il middleware assolutamente indipendente cache manager vero e proprio.

Lo System.Runtime.Caching.MemoryCache è consigliato da Microsoft al posto di System.Web.Caching. Può essere utilizzato nel contesto della MS Caching Application Block suggerito da Abhijeet Patel.

See:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top