Sin dalle prime versioni di ASP.NET era possibile sfruttare la funzionalità di OutputCache che permette di persistere in memoria l'output generato dalle pagine e dai controlli ASP.NET in modo tale da consentire ad ASP.NET di rispondere più velocemente alle richieste utente nel momento in cui vengono inoltrare nuove richieste a pagine il cui risultato è già presente in memoria evitando quindi di rieseguirle.
Questo approccio sebbene interessante dal punto di vista delle prestazioni ha però un effetto collaterale di non poco conto, ovvero consuma memoria e in particolari condizioni questo può far soffrire l'applicazione fino al punto di impedirne una corretta esecuzione.
ASP.NET 4.0 migliora questa funzionalità introducendo la possibilità per lo sviluppatore di implementare uno o più custom output-cache provider che utilizzino storage diversi dalla memoria. àˆ possibile ora implementare, quindi, provider che memorizzano i dati dell'output-cache su dichi locali o remoti, su cloud o su motori di cache distribuita. Oltre a poter memorizzare i dati su storage diversi dalla memoria possiamo implementare anche logiche di caching del tutto personalizzate come ad esempio la memorizzazione in cache di solo le prime 10 pagine più utilizzate della nostra applicazione ASP.NET.
Implementare un provider custom non è molto complicato, è sufficiente infatti implementare una classe che erediti dalla classe base OutputCacheProvider e poi configurare il nuovo provider nel file web.config:
<caching> <outputCache defaultProvider="MyCustomCacheProvider"> <providers> <add name="MyCustomCacheProvider" type="Demo.CustomOutputCache.MyCustomOutputCacheProvider"/> </providers> </outputCache> </caching>