1) Output Cache Extensible
ASP.Net 1.0 introduced the concept of Output Caching, which enable developers to store generated output of pages/controller (MVC)/HTTP response in an in-memory cache.
So on subsequent request, ASP.Net retrieves the output from the cache instead of regenerating from scratch. This dramatically improved the performance of the application.
ASP.Net output caching is flexible enough to enable cache different version of content based on query string/form-post parameters.
Also enable to cache different version based on browser type or user-language. Like to have different versions of page for mobile.
Limitation:- From ASP.Net1.0 to 3.5 is that cache store is not extensible i.e. always have to be stored in an in-memory.
Solution:- ASP.Net 4 Output Cache Extensible.
Now enables developers to configure more custom output-cache providers like local/remote disk, database, cloud etc.
To create custom output-cache provider,
1) a class which derived from System.Web.Caching.OutputCacheProvider has to be created, whic involve overriding 4 public methods to provide implementation for adding/removing/retrieving/updating.
2) Also the output-cache provider has to be configured in web.config.
2) Session State Compressor