Hola, mira.. en cuanto al cache las cosas son un poco distinas en Net.. por ejemplo. Desde hasta arriba de tu pagina puedes ocupar la siguiente directiva.
<% OutputCache Duration="periodo" Location="lugar" %>
Puedes checar este link
Cache
ó tambien aqui
Cache
Esto provoca que la salida se almacene en cache, en el lugar que se especifique el parámetro lugar por la cantidad de segundos inidicada en el parámetro periodo.
Location puede tomar lo siguientes valores
Cita: Any Valor predeterminado
Client El cache de salida estará ubicado en el cliente
Downstream El cache será almacenado en el servidor adyacente al que originalmente procesó la petición.
None Estará inhabilitado el almacenamiento de salida en cache.
Server El cache estará ubicado en el servidor que procesó la petición.
Aunque tambien lo puedes guardar en algun resultado en específico..
Por ejemplo en un dataset:
dim ds as New DataSet
obj.Fill (ds,"usuarios")
Cache("dsUsuarios") = ds
O tambien puedes ocuparlas con
Cache.Add Cache.Insert
Donde a cada uno le puedes dar cuanto quieres que dure un determinado objeto en cache hasta dependencias le puedes dar...
Sería cosa de que buscaras algo de info al respecto porque la verdad hay muchas maneras de utilizarlo y con ello tambien te des cuenta de todas las ventajas que se pueden tener.
Suerte...

y cualquier cosa por aqui andamos. . .