mercoledì 8 ottobre 2014

EVENTO STARTUP DI UNA WEB APPLICATION - DOTNET

Molto spesso può capitare di dover eseguire del codice all'avvio di una applicazione web, ancor prima della prima visualizzazione da parte dell'utente. Vediamo come farlo in ambiente Microsoft ASP.Net.



Eventi di sessione, eventi di applicazione

Prima di procedere è necessario effettuare una introduzione riguardo i due contesti in cui le applicazioni web vengono eseguite.

Il livello di sessione è legato univocamente all'utente dal primo momento di connessione alla disconnessione, il livello di applicazione invece prescinde dalla sessione utente ed inizia il su ciclo di vita all'avvio del servizio IIS o comunque dall'application server utilizzato.

Dato che il livello di sessione è strettamente legato alla esperienza dell'utente, non è possibile inserire codice sincronizzato con l'avvio di una sessione. Paradossalmente questo codice non verrebbe mai eseguito fino al primo accesso alla applicazione web da parte dell'utente.

Global.asax

Il file che ci permette di gestire gli eventi a livello di applicazione sono esposti dal file "Global.asax", per inserire il file all'interno del progetto Visual Studio è sufficiente seguire la seguente procedura:
  1. tasto destro sul progetto > Add > New Item
  2. nella casella di ricerca inserire la parola chiave "global"
  3. mantenere il nome Global.asax quindi editare il contenuto.
Una rapida occhiata al contenuto del file Global.asax fa capire che siamo già giunti alla soluzione. Ecco come si presenta il sorgente:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;

namespace ProgrammazioneApplicata
{
    public class Global : System.Web.HttpApplication
    {

        protected void Application_Start(object sender, EventArgs e)
        {

        }

        protected void Session_Start(object sender, EventArgs e)
        {

        }

        protected void Application_BeginRequest(object sender, EventArgs e)
        {

        }

        protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {

        }

        protected void Application_Error(object sender, EventArgs e)
        {

        }

        protected void Session_End(object sender, EventArgs e)
        {

        }

        protected void Application_End(object sender, EventArgs e)
        {

        }
    }
}


Il codice che viene inserito all'interno del metodo Application_Start() verrà eseguito esclusivamente all'avvio della applicazione web.

Conclusione

In attesa della controparte in linguaggio Java, vi invito a lasciare le vostre impressioni tramite un commento oppure tramite la pagina ufficiale Facebook.

Nessun commento:

Posta un commento