Les Labs Microsoft
Section C# / Asp.Net du site http://phenix.developez.com
par Patrick VALERI
Plan du site - Autres sections
Labs ASP.NET v1.1 Aurélien Norie & Sébastien Bovo [Microsoft]
J'ai repris les codes d'origine VB.NET en C# et apporter quelques commentaires.
Lab07
But du Lab
Le but de ce Lab est de présenter les différentes techniques de mise en cache en ASP.NET.
Exercice 1 – Cache de sortie de page
- Créer une nouvelle application Web ASP.NET en Visual Basic : « 07VBCaching »
- Ajouter 1 label à la page « WebForm1.aspx »
- Dans le code HTML, ajouter la directive suivante tout en haut de la page :
<%@ OutputCache Duration="10" VaryByParam="none" %>
- Dans le « Page_Load » du code behind, afficher l’heure courante dans le label :
Label1.Text = "Dernière génération de la page : " & Now
- Compiler et afficher la page.
- Actualiser la page plusieurs fois
- Constater que la page affichée est la page mise en cache. Une nouvelle version de la page est générée toutes les 10 secondes.
- Ajouter maintenant 2 hyperlinks à la page.
- Préciser la propriété « NavigateUrl » comme suit :
- HyperLink1 : « WebForm1.aspx?myColor=red »
- HyperLink2 : « WebForm1.aspx?myColor=blue »
- Préciser la propriété « Text » comme suit :
- HyperLink1 : « Rouge »
- HyperLink2 : « Bleu »
- Dans le code HTML, modifier la directive OutputCache. Mettre « Duration=30 » et « VaryByParam="myColor" »
- Modifier le « Page_Load » de la manière suivante :
Private Sub Page_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Text = "Dernière génération de la page : " & Now
If Request.QueryString("myColor") <> "" Then
Label1.ForeColor = Color.FromName(Request.QueryString("myColor"))
End If
End Sub |
Et en C# :
private void Page_Load( object sender, System.EventArgs e)
{
// Placer ici le code utilisateur pour initialiser la page
Label1.Text = "Dernière génération de la page : " + System.DateTime.Now;
Label1.Font.Bold= true; //Pour afficher en gras
if (Request.QueryString["myColor"]!= null)
{
Label1.ForeColor = Color.FromName(Request.QueryString["myColor"]);
}
} |
- Compiler et afficher la page.
- Cliquer sur le lien « Rouge » et noter l’heure de génération de la page.
- Cliquer sur le lien « Bleu » et noter qu’une nouvelle version de la page a été créée bien que les 30 secondes de caching ne soient pas encore écoulées. Grâce à l’attribut VaryByParam="myColor" une page est mise en cache pour chaque valeur du paramètre « myColor ».
Exercice 2 – Cache par fragments de page
- Ajouter un contrôle Web utilisateur à l’application
- Dans le code HTML, ajouter la directive suivante tout en haut de la page :
<%@ OutputCache Duration="10" VaryByParam="none" %>
- Ajouter un Label au contrôle
- Dans le « Page_Load » du code behind, afficher l’heure courante :
Label1.Text = "Dernière génération du contrôle : " & Now
- Modifier le caching de la page ASPX afin de ne la mettre en cache que 5 secondes au lieu de 30
- Ajouter le contrôle à la page « WebForm1.aspx »
- Générer le projet et naviguer sur la page ASPX.
- Constater que le contrôle Web utilisateur est mis en cache 10 secondes alors que le reste de la page est régénéré toutes les 5 secondes.
Ce document est issu de
http://phenix.developpez.com/ et reste la propriété exclusive de son auteur.
La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.