Gerardo Contijoch

Experiencias del día a día trabajando con .NET – ASP.NET, C#, ASP.NET MVC y demas…

Utilidad de la propiedad IsReusable de la interface IHttpHandler

Posted by Gerardo Contijoch en mayo 20, 2009

Una de las propiedades, a mi parecer, menos documentadas del .NET Framework es la propiedad IsReusable de la interface IHttpHandler. La documentación nos indica que el valor de esta propiedad determina si el handler en cuestión puede ser reutilizado por más de un request en una aplicación web, lo cual es correcto, pero en ningún lugar dice porque o porque no deberíamos reutilizar un handler, ni cuales son las consecuencias de hacerlo. En realidad no es muy difícil imaginar una interpretación el valor de esta propiedad. Puede indicarnos si nuestro handler es thread safe o no, es decir, puede ser ejecutado concurrentemente en más de un thread sin que ello afecte su funcionamiento. Otra interpretación (ver comentarios de este post) igual de válida para mi, es que esta propiedad determina si se hace pooling del handler o no. Esto significa que si el handler el reutilizable, el mismo no es destruido una vez finalizado su uso, sino que es guardado en algún lado a la espera de otro request, evitando de ese modo, la reinstanciación innecesaria de handlers de uso muy frecuente.

Yo me inclino por la primera (aunque ello no quita que la segunda pueda ser válida también).

Como regla general, si nuestro handler guarda información (en una propiedad o un campo) referente a un request en particular, entonces la propiedad debería devolver false ya que otro request podría estar siendo procesado con la información incorrecta. Acá se puede ver un ejemplo del problema este.

¡Nos vemos en el próximo post!

Publicado originalmente en https://gerardocontijoch.wordpress.com.

2 comentarios to “Utilidad de la propiedad IsReusable de la interface IHttpHandler”

  1. Carlos said

    Gerardo, tremendo blog! Sigue así!

  2. Gracias Carlos!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: