Mostefai Mohammed Amine

Software and Cloud Architect

Amine
  • Contact
Previous Post
Next Post
Jun 29, 2013 .NET ProgrammingDéveloppement webASP.NETWeb Development

Tutoriel 8.3 : Gestion de l’état

L’objectif de ce tutoriel (module 8) est d’apprendre à utiliser trois mécanismes de gestion de l’état : le cache, les cookies et l’état d’application.

Etape 1 : Création d’un compteur de visiteurs en utilisant l’état de l’application

L’objectif de cette étape est d’utiliser l’état de l’application pour implémenter un compteur de visiteurs. L’objectif est aussi de faire la différence entre l’état d’une application et l’état d’une session.

  • Ouvrez VS2012
  • Créez une application ASP.NET vide appelée « TestEtat »
  • Ajoutez une forme web appelée « Default.aspx »
  • Glissez deux composants de type « Literal » dans la page et séparez-les par une balise « <br/> »
  • Ajoutez une classe globale d’application appelée « Global.asax »
  • Dans l’évènement de démarrage « Application_Start », ajoutez le code suivant :
   1:  Application["visiteurs"] = 0;
  • Dans le code de démarrage d’une session « Session_Start », ajoutez le code suivant :
   1:  int visiteurs = (int)Application["visiteurs"];
   2:  ++visiteurs;
   3:  Application["visiteurs"] = visiteurs;
   4:  Session["code"] = new Random().Next();
  • Ouvrez la page « Default.aspx » en mode code behind
  • Ajoutez le code suivant dans l’évènement « Page_Load » :
int visiteurs = (int)Application["visiteurs"];
 ++visiteurs;
Application["visiteurs"] = visiteurs;
Session["code"] = new Random().Next();
  • Exécutez en appuyant sur « F5 »
  • Remarquez le code de la session et le nombre de visiteurs
  • Ouvrez l’application dans un autre navigateur
  • Remarquez le code de la session et le nombre de visiteurs
  • Revenez sur le navigateur où s’est exécutée l’application en premier
  • Rafraîchissez la page en appuyant sur « F5 »
  • Remarquez que le nombre de visiteurs a changé et que le code de la session est resté le même

 

    Etape 2 : Utilisation du cache

    L’objectif de cette étape est d’utiliser le cache avec expiration pour cacher une date. Une page simple récupère la date d’aujourd’hui qui est cachée pendant 30 secondes. On remarquera que grâce au cache, la date ne change que chaque 30 secondes.

    • Ajoutez une forme web appelée « CachePage.aspx »
    • Glissez un composant « Literal » sur la page
    • Ouvrez la page en mode code behind
    • Dans l’évènement « Page_Load » de la page, ajoutez ceci :
       1:  Literal1.Text = GetDate().ToString();
    • Dans la classe « CachePage », ajoutez la méthode suivante :
       1:  DateTime GetDate()
       2:          {
       3:              if (Cache["maintenant"] == null)                            
       4:              {
       5:                  Cache.Add("maintenant", DateTime.Now, null, DateTime.Now.AddSeconds(30), System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.Default, null);
       6:              }
       7:              return (DateTime)Cache["maintenant"];
       8:          }
    • Exécutez en appuyant sur « F5 »
    • Remarquez que la date affichée ne change qu’après 30 secondes en faisant des rafraichissements de la page dans le navigateur

    Etape 3 : Gestion des cookies

    L’objectif de cette étape est d’utiliser les cookies pour mémoriser la première visite d’un utilisateur. Ayant une expiration de 30 secondes, cette première visite est réinitialisée chaque 30 secondes.

    • Ajoutez une page appelée « CookiePage.aspx »
    • Glissez un composant de type « Literal » sur la page
    • Ouvrez la page en mode code behind
    • Insérez le code suivant dans l’évènement Page_Load
       1:  var cookie = Request.Cookies["visite"];
       2:              if (cookie != null)
       3:              {
       4:                  DateTime d = DateTime.Parse(cookie["visite"]);
       5:                  Literal1.Text = string.Format("Heure actuelle : {0}, première visite : {1}", DateTime.Now, d);
       6:              }
       7:              else
       8:              {
       9:                  Literal1.Text = "Bienvenue";
      10:                  var ck = new HttpCookie("visite");
      11:                  ck["visite"] = DateTime.Now.ToString();
      12:                  ck.Expires = DateTime.Now.AddSeconds(30);
      13:                  Response.Cookies.Add(ck);
      14:              }
    • Dans la première ligne on teste l’existence du cookie. Si il n’existe pas alors il est créé puis rattaché à la réponse.
    • Exécutez en appuyant sur « F5 »
    • Rafraîchissez plusieurs fois en appuyant sur « F5 » dans le navigateur
    • Vérifiez que ça se réinitialise après 30 secondes

    Pour télécharger le code, cliquez ici

    StateCacheCookies
    Share This Post

    Related posts

    • Tutoriel 8.3 : Gestion de l’état L’objectif de ce tutoriel (module 8) est d’apprendre à utiliser trois mécanismes de gestion de l’éta...
    • Tutoriel 8.2: Gestionnaires et Modules HTTP L’objectif de ce tutoriel (deuxième du module 8) est d’apprendre comment créer des handlers et des m...
    • Tutoriel 3.2 : Workflow Machine d’états–Partie 1   L’objectif de ce tutoriel est d’utiliser le workflow de machine d’états dans le but de simul

    Comments (2) -

    • Fabien
      20 Feb 2014 | Reply
      Bonjour Amine,

      je tenais à vous remercier pour vos tutoriaux.

      Une erreur de copier/coller c'est glissée dans celui ci:
      sur le Page_Load Default.aspx.cs,
      vous avez recoller l'incrémentation des visiteurs au lieu de l'affectation des Litteral1 et Litteral2.

      Cordialement.

    • Amine
      21 Feb 2014 | Reply
      Merci fabien pour la remarque

      Sûrement une erreur d'inattention. Je corrigerai inchallah dès que j'aurai quelques minutes.

      Bon courage
    Saving the comment

    Cancel reply to comment

    The captcha value you provided is incorrect.