[ASPNET] Exécutez du code au pré-démarrage d’une application

April 10, 2013 -

Depuis ASP.NET 4, il existe une fonctionnalité assez intéressante : la possibilité d’exécuter du code au chargement de l’app domain dans lequel s’exécute votre application, c’est à dire avant même que le code de votre application soit chargé.

On parle du “pré-démarrage” de l’application. Ce mécanisme est très simple à mettre en place et peut être réalisé dans n’importe quel assembly chargé dans l’app domain de votre application :

  • Création d’une classe statique PreApplicationStart (par exemple)
  • Création d’une méthode statique OnStart (par exemple)
  • Ajout d’un attribut d’assembly pour indiquer l’emplacement de cette classe

Cela peut être très utile, notamment pour enregistrer des modules http, par exemple !

Vous obtenez donc un code de ce genre là :

public static class PreApplicationStart
{
    public static void OnStart()
    {
        //code de pré-démarrage
    }
}

Ensuite, il suffit de pointer cette classe depuis le fichier Assembly.cs du projet dans lequel elle est définie :

[assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "OnStart")]

Il ne reste qu’à référencer la librairie dans le projet web, et la méthode OnStart sera automatiquement appelée lors du pré-démarrage.

Enjoy Winking smile

Julien

Comments

Share

Tags


Twitter


Check out our open source software projects at #Build 2015! - http://t.co/OLbZOAeTdp #oss

April 26, 2015 11:37

Mary Poppendieck Discusses Containers, Microservices and Contract Tests - http://t.co/T6MnuY3wWP

April 26, 2015 09:21

Les démos de ma session archi distribuée avec #Azure #WebApp #WebJob et #Service bus dispo ici http://t.co/SWdwi6A7Nu #GlobalAzure #Paris

April 26, 2015 08:01

RT @NeowinFeed: Visual Studio 2015 RC page goes live, announcement likely coming next week http://t.co/dJ68unKrGt http://t.co/5qAFVSJrMF

April 26, 2015 07:57

@preguntoncabron Hey, the full source code of my demos is here https://t.co/4BofHBqJ1o #GlobalAzure

April 26, 2015 07:35

Les slides de ma session archi distribuée avec #Azure #WebApp #WebJob et #Service bus dispo ici: http://t.co/f92ecBa2HP #GlobalAzure #Paris

April 25, 2015 20:28

The Best Of #Microsoft + #OpenSource: #Java On #Azure - http://t.co/A7g1P8DIDz #OSS

April 25, 2015 19:16

RT @ZeCloud: Ca bosse fort la @jcorioland le lab racing Game au #globalazure bootcamp Paris http://t.co/uorLHP7D9V

April 25, 2015 15:12

GAB Racing Game lab for #Paris: http://t.co/XpHvrdOcnD #globalazure

April 25, 2015 14:46

La télémétrie et la supervision dans #Azure c'est simple, avec #AppInsights ! #GlobalAzure #Paris @michelhubert http://t.co/zCfhJuUusN

April 25, 2015 13:01

RT @MCKLMT: Cloud computing et scalabilité dans le monde eCommerce par @MichelHubert au #GlobalAzure Bootcamp #Paris http://t.co/SHprFaqBnD

April 25, 2015 12:28

@aymericw fait monter la température au #GlobalAzure bootcamp ! #IoT #EventHub http://t.co/Aao77WXIEY

April 25, 2015 11:55

@JeanLucBoucho nous parle de #KeyVault, le service de stockage de données sécurisé en preview ! #GlobalAzure http://t.co/3TSj9FMbgD

April 25, 2015 09:38

RT @Azure_France: Scalabilité avec #Azure #DocumentDB et #SQLDatabase #ElasticScale par @JeanLucBoucho au #GlobalAzure bootcamp

April 25, 2015 09:14

#Azure #SQLDatabase v12, c'est 99,99% de SLA mensuel ! Ça envoie du steak non ? #GlobalAzure

April 25, 2015 09:13