Recolectamos algunos consejos para evaluar el uso apropiado de global.asax.¿Cuáles son los pros y los contras de usar Global.asax?
Respuesta
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.
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í.
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.
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.
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.
- Inicializando ASP.NET MVC. :)
- Autenticación de usuario personalizada.
- Inyección de dependencia, como la extensión de la aplicación Http de Ninject.
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.
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.
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.
El evento Session_Start
en Global.asax es un buen lugar para inicializar las variables de la sesión.
- 1. ¿Cuáles son los pros y los contras de la UCI?
- 2. Objeto de solicitud, ¿cuáles son los pros y los contras?
- 3. ¿Cuáles son los pros y los contras de TreeSet
- 4. ¿Cuáles son los pros y los contras de Solr & ElasticSearch?
- 5. ¿Cuáles son los pros y los contras de usar una plantilla de motor como Jade?
- 6. ¿Cuáles son los pros y los contras de usar un correo electrónico como nombre de usuario?
- 7. ¿Cuáles son los pros y los contras de usar una enumeración de banderas?
- 8. ¿Cuáles son los pros y los contras de los submódulos de git y Repo?
- 9. ¿Cuáles son los pros y los contras de usar git-svn?
- 10. ¿Cuáles son los pros y los contras para usar un contenedor de IOC?
- 11. ¿Cuáles son los pros y los contras de usar una Mac para el desarrollo web?
- 12. ¿Cuáles son los pros y los contras de usar una DLL?
- 13. ¿Cuáles son los pros y los contras de usar Castle Active Record vs Straight NHibernate?
- 14. ¿Cuáles son los pros y los contras de usar configChanges = "orientation" para dispositivos Android?
- 15. Cuándo usar actores en libgdx? ¿Cuáles son los contras y los pros?
- 16. ¿Cuáles son los pros/contras de 64 bit .NET?
- 17. ¿Cuáles son los pros y los contras de los procedimientos de llamada en VB.NET?
- 18. ¿Cuáles son los pros y los contras de las bases de datos de objetos?
- 19. ¿Qué implementación de matriz haskell usar? ¿Cuáles son los pros y contras de cada
- 20. ¿Cuáles son los pros y los contras de asset_packager y Jammit?
- 21. ¿Cuáles son los pros y los contras de la eliminación y las actualizaciones en cascada?
- 22. ¿Cuáles son los pros y los contras de ejecutar un trabajo en Hadoop usando varios idiomas?
- 23. ¿Cuáles son los pros y los contras del uso de d-punteros?
- 24. ¿Cuáles son los pros y los contras de la autentificación HTTP básica
- 25. ¿Cuáles son los pros y los contras de OleDB versus SQLClient?
- 26. cuáles son los pros y los contras del uso del parámetro
- 27. ¿ARC o no a ARC? ¿Cuáles son los pros y los contras?
- 28. ¿Cuáles son los pros y los contras de almacenar archivos en una base de datos?
- 29. ¿Cuáles son los pros y los contras de la entrada delimitada general de Ruby? (sintaxis porcentual)
- 30. ¿Cuáles son los pros y los contras de las diversas implementaciones de Python?
Personalmente, no creo que se necesite una etiqueta global.asax ... –
Bastante, eliminaré ese comentario también – Larsenal