Por el momento estoy trabajando en una aplicación de administración de proyectos en C# 3.5 en ASP.net. Para reducir las visitas a la base de datos, estoy almacenando en caché mucha información usando variables estáticas. Por ejemplo, una lista de usuarios se mantiene en la memoria en una clase estática. La clase lee toda la información de la base de datos al inicio y actualiza la base de datos cada vez que se realizan cambios, pero nunca necesita leer desde la base de datos.¿Está bien usar variables estáticas para almacenar información en caché en ASP.net?
La clase hace ping a otros servidores web (si existen) con información actualizada al mismo tiempo que escribe en la base de datos. El mecanismo de ping es un servicio de Windows al que el objeto de caché se registra utilizando un puerto aleatorio disponible. Se usa para otras cosas también.
La cantidad de datos no es tan buena. En este momento lo estoy usando solo para almacenar en caché a los usuarios (hashes de contraseñas, permisos, nombre, correo electrónico, etc.). Simplemente guarda un montón de llamadas realizadas en la base de datos.
Me preguntaba si hay algún inconveniente para este método y/o si hay mejores formas de almacenar en caché los datos.
¿De cuántos datos está hablando? – sectrean
He respondido su comentario editando la pregunta. –
¿Podría elaborar sobre la solución "pinging"? ¿Cómo se maneja el caso de más de un proceso de solicitud (w3wp) en el mismo servidor? –