2008-09-25 15 views

risposta

3

È semplice da utilizzare se il codice di inizializzazione della sessione e dell'applicazione è molto piccolo e specifico dell'applicazione. L'utilizzo di un HttpModule è più utile se si desidera riutilizzare il codice, ad esempio l'impostazione di regole per la riscrittura degli URL, i reindirizzamenti o l'autenticazione. Un HttpModule può coprire tutto ciò che può fare un file Global.asax. Possono anche essere rimossi e aggiunti facilmente usando il tuo .config.

3

L'ho usato prima per rilevare errori a livello di applicazione e per fare qualcosa quando scade la sessione di un utente.

Tendo anche a usarlo molto per fornire proprietà statiche che leggono valori da web.config.

Penso che vada bene per cose del genere, anche se non metterei molto più di quello lì dentro.

0

Global.asax può ereditare dalla propria classe che eredita l'httpapplication. Ti dà più opzioni e mette la maggior parte del codice che potresti avere in una biblioteca di classi.

MODIFICA: la classe HttpApplication (genitore globale.asax) in una libreria di classi separata può anche promuovere la riusabilità. Anche se sono d'accordo sul fatto che l'uso di HttpModules è più adatto per molte attività, ma questo ha ancora molti usi, per uno, un codice più pulito.

0

Non ho mai utilizzato Global.asax. L'ho usato sempre nel classico ASP, ma questo era dovuto principalmente a determinate configurazioni come le stringhe di connessione al database e così via. La configurazione in .net rende molte di queste cose molto più semplici.

Ma se si desidera implementare eventi a livello di applicazione e di sessione, è qui che è necessario andare.

1

È un bel posto per prendere l'avvio della sessione e persino richiedere l'avvio. Altri hanno menzionato l'aspetto della gestione degli errori, sebbene si faccia attenzione alle eccezioni generate da thread non-asp.net (ad esempio threadpool o thread personalizzati) poiché ignoreranno il gestore global.asax. Personalmente ne ho sempre uno, lo considero semplicemente parte dell'impianto idraulico.

2
  • Inizializzazione di ASP.NET MVC. :)
  • Autenticazione utente personalizzata.
  • Iniezione delle dipendenze, come l'estensione dell'HttpApplication Ninject.
1

Usavo Global.asax per cose come la gestione degli errori, ecc. Tuttavia, da allora ho utilizzato HttpModules per rimpiazzarlo poiché posso copiarlo da un progetto a un altro senza modificare global.asax.

2

È un drink rigido, fai solo attenzione a non bere troppo e starai bene.

Lo utilizzo per la gestione globale degli errori e la configurazione di percorsi in mvc. Tuttavia, non si vuole scrivere codice globale page_init.

Se vi attenete agli eventi a livello di applicazione e fate in modo che la maggior parte della logica viva effettivamente nelle classi appena richiamate durante questi eventi, non avrete alcun problema a utilizzare i costrutti globali.

1

Con l'utilizzo di Global.asax rispetto a un HttpModule: sarete tentati di scrivere codice che è difficile da riutilizzare perché sarà troppo legato a quella particolare applicazione.

0

L'evento Session_Start in Global.asax è un buon posto per inizializzare le variabili di sessione.

Problemi correlati