2008-09-25 24 views

Respuesta

3

Es simple de usar si su sesión y el código de inicialización de la aplicación es muy pequeño y específico de la aplicación. Usar un HttpModule es más útil si desea reutilizar el código, como configurar reglas para la reescritura de URL, redireccionamientos o autenticación. Un HttpModule puede cubrir todo lo que un archivo Global.asax puede. También se pueden eliminar y agregar fácilmente con su .config.

3

Lo he usado antes para detectar errores a nivel de aplicación, y para hacer algo cuando la sesión de un usuario caduca.

También tiendo a usarlo mucho para proporcionar propiedades estáticas que leen los valores de web.config.

Creo que está bien para cosas como esa, aunque no pondría mucho más que eso allí.

0

Global.asax puede heredar de su propia clase que hereda httpapplication. Te brinda más opciones y también puedes colocar la mayor parte del código que puedas tener en global en una biblioteca de clases.

EDITAR: Tener su clase HttpApplication (padre global.asax) en una biblioteca de clases separada también puede promover la reutilización. Aunque estoy de acuerdo en que el uso de HttpModules es más adecuado para muchas tareas, pero esto todavía tiene muchos usos, por ejemplo, un código más limpio.

0

Realmente no he usado Global.asax. Usé su equivalente en ASP clásico todo el tiempo, pero eso tenía que ver principalmente con ciertas configuraciones como cadenas de conexión a bases de datos y cosas por el estilo. La configuración en .net hace que muchas de estas cosas sean mucho más fáciles.

Pero si desea implementar aplicaciones y eventos a nivel de sesión, aquí es donde debe ir.

1

Es un buen lugar para captar el inicio de la sesión e incluso solicitar la iniciación. Otros han mencionado el aspecto de entrega de errores, aunque tenga cuidado con las excepciones lanzadas desde hilos que no sean de pnas (por ejemplo, hilo de rosca o hilo personalizado) ya que pasarán por alto el controlador global.asax. Personalmente, siempre tengo uno, pienso que es simplemente parte de la fontanería.

2
  • Inicializando ASP.NET MVC. :)
  • Autenticación de usuario personalizada.
  • Inyección de dependencia, como la extensión de la aplicación Http de Ninject.
1

Solía ​​usar Global.asax para cosas tales como el manejo de errores, etc, sin embargo, desde entonces he ido a la utilización de HttpModules para reemplazar esto como puedo copiarlo de un proyecto a otro sin editar el Global.asax.

2

Es una bebida dura, solo ten cuidado de no beber demasiado y estarás bien.

Lo uso para el manejo global de errores y la configuración de rutas en mvc. Sin embargo, no querrás escribir el código global page_init allí.

Si se atiene a los eventos de nivel de aplicación, y hace que la mayoría de la lógica realmente viva en las clases que acaban de recibir llamadas durante esos eventos, no tendrá problemas haciendo uso de las construcciones globales.

1

Con el uso de Global.asax en comparación con un HttpModule: Tendrá la tentación de escribir código que sea difícil de reutilizar porque estará demasiado ligado a esa aplicación en particular.

0

El evento Session_Start en Global.asax es un buen lugar para inicializar las variables de la sesión.

Cuestiones relacionadas