The ASP.Net platform brought forth many new features and enhancements over the former ASP platform. One of the more significant to be introduced was caching. Previously managed by third-party components, ASP.Net came packed with rich caching options, out of the box. Regardless of whether or not your application is already built and running, it can only benefit from the proper use of caching. This article will explain the various options we have, which will in turn lead to faster applications, and therefore more satisfied users, which can only be a good thing!
How Caching Means More Ca-ching, Part 1 (Page 1 of 4 )
This is the story of Jack the Programmer. Jack's company identifies a problem space. Jack architects an application to provide the solution to the problem. Jack spends weeks building the application in ASP.Net which has recently learned. He even spends time on the UI, good for Jack! Demo day comes. Standing before a small audience, laptop hooked up to projector, Jack begins the demonstration. It's a little slow, but bearable. Jack is a little embarrassed. People begin using the application. It becomes slower, and slower. Poor Jack.
It's ok though, don't feel too bad for Jack. This situation can be resolved, as can any similar situation we ourselves are in. Either prior to application build, or preferably post-build, we can implement simple and advanced caching into our application. Caching is the means by which we stored commonly accessed pieces of information in memory for much faster access. Enormous performance gains can be made with the well thought-out use of caching.
With ASP.Net, we have three flavors of caching available at our disposal. 'Only three?!' you say! Oh, but you will see, these three will cover most of our needs, both basic and advanced. This is much better than the absolutely no real caching options prior ASP versions. And really, the only reason I say that it covers most of our needs, is that the next iteration of ASP.Net, code-named 'Whidbey', has identified additional areas where the caching model can be improved. But for now let's stick with the three currently afforded us: Output caching: the old-school, seldom useful 'entire page' caching Fragment caching: the caching of individual user controls Data caching: very granular, caching at object level
Let's look at each in some detail, shall we? The first two are less advanced and can be covered in one article, the third will come later.