Vous pouvez télécharger cet article au format PDF ici : http://www.cyrildurand.net/divers/articles/Debug_en_aspnet_2.pdf
Debug en asp.net 2
I. Introduction
Visual Studio 2005 offre de nombreuses fonctionnalités de débogage pour une application web. Nous allons voir dans cet article le B.A.BA du débogage.
Pour illustrer cet article nous allons partir dun exemple assez simple comment changer la couleur dune cellule en fonction dune valeur de cette ligne.

II. Mis en pratique
A la base nous navons quun gridview, pour pouvoir modifier les cellules quil contient nous allons nous abonner à certains de ces événements.

On voit quil y a plusieurs événements disponibles, on choisit RowDataBound qui daprès son nom à lair dêtre déclenché une fois les données liés à la ligne.
En cliquant sur lévénement, 2 lignes de code sont automatiquement générées :
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
End Sub
Pour linstant on nest pas très avancé, mais si lon connaît un peu le mécanisme de .net, on se doute que la variable e va contenir plein de données intéressantes, cest la que les fonctions de debugage va nous venir en aide, regardons comment.
III. Explorons les variables
Tout dabord il faut rajouter un point darrêt. 2 solutions :
- en appuyant sur F9 lorsquon est sur la ligne auquel on veut attacher le point darrêt
- en cliquant à gauche des numéros de ligne sur la ligne grise

Désormais si on lance le site en debug en appuyant sur F5 ou en appuyant sur la flèche verte à chaque fois que la ligne est appelée le code sarrête sur cette ligne. A partir de là on peut récupérer diverses informations en passant la souris sur des variables.

On voit aussi quune fenêtre Watch a été rajoutée, dans cette fenêtre on peut mettre des variables et voir leurs valeurs
A partir de ces informations on arrive très simplement à récupérer les informations qui nous intéresse et ainsi faire le traitement quon voulait.
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
' On vérifie qu'il y ai bien assez de controle dans la ligne
If e.Row.Controls.Count < 3 Then
Exit Sub
End If
'on vérifie qu'on soit bien dans une ligne
If TypeOf e.Row.Controls(2) Is System.Web.UI.WebControls.DataControlFieldCell AndAlso _
e.Row.Controls(2).Controls.Count = 0 AndAlso _
e.Row.DataItem IsNot Nothing Then
Dim c As System.Web.UI.WebControls.DataControlFieldCell = _
DirectCast(e.Row.Controls(2), System.Web.UI.WebControls.DataControlFieldCell)
Select Case CType(e.Row.DataItem, System.Data.DataRowView).Row("Title")
Case "Mr."
c.CssClass = "Man"
Case "Ms."
c.CssClass = "Girl"
Case Else
c.CssClass = "Other"
End Select
End If
End Sub
IV. Allons plus loin
On peut cependant aller beaucoup plus loin dans le debug. Il est tout à fait possible de rajouter des points darrêt lorsquon est en mode debug. Ou alors exécuter le code en mode pas à pas.
Toutes ces actions sont possibles grâce à cette barre doutils.

On peut également mettre des points darrêts conditionnels, pour cela il suffit de cliquer avec le bouton droit sur le point darrêt.

V. Conclusion
Cet article est juste une introduction sur le debugage avec Visual Studio, je vous laisse le plaisir dapprofondir ce domaine.
Jai montré dans cet article lutilisation du debugage avec Visual Studio 2005 mais cest exactement la même chose avec Visual Web Dev Express ainsi que Visual Studio .net 2003.
Pour télécharger Visual Web Dev Express cest ici : http://www.microsoft.com/france/msdn/vstudio/express/default.mspx
Cyril DURAND
Membre de léquipe de développement CodeS-SourceS
http://blogs.developpeur.org/cyril/