Mon objectif ici, ne sera pas de vous expliquer la théorie ni l'intérêt du Code Behind. Cela a déjà été fait par Maître Rédo ici même :
L'approche Code Behind.
MS Visual Studio .NET génère automatiquement le Code-Behind; Il fait d'office la séparation du code logique de celui de la mise en forme et propose une fonction de compilation pour le code-behind.
Avec MS Web Matrix (ou le Bloc-notes pour ceux qui seraient encore hermétique aux IDE) point de séparation automatique et encore moins de fonctions de compilation disponible. Et inutile de faire des recherches sur le Web, vous n'y trouverez quasiment aucune information concernant notre problème.
Pourtant les solutions existent !
Cette première méthode est sûrement la plus simple à mettre en place. La séparation du code logique et du code de mise en forme se fait manuellement. La compilation de la page de code-behind se fera de manière dynamique (à la volée) lors du premier appel de cette page.
L'exemple que je vous propose est un classique
Hello world ! qui s'inscrit dans un
WebControl Label lorsque l'on click sur un
WebControl Button. Le code de mise en forme est situé dans la page
hello.aspx (listing 1) et le traitement se fera dans la page code-behind
hello.aspx.vb (listing 2)
Pour construire ma page
hello.aspx avec MS Web Matrix je choisi l'icone
ASP.NET Page (figure 1).

figure 1
| hello.aspx |  |  | |
|
<%@ Page Language="VB" Inherits="TestDotNet.HelloClass" Src="hello.aspx.vb" %> <html> <head> </head> <body> <form runat="server"> <p> <asp:Label id="Label1" runat="server"> </asp:Label> </p> <p> <asp:Button id="Button1" onclick="Button1_Click" runat="server" Text="Dire Bonjour"> </asp:Button> </p> </form> </body> </html>
|
listing 1
L'attribut
Inherits de la directive
@ Page indique le nom de la classe dont hérite la page, et l'attribut
Src le fichier source de la classe (le code-behind).
Pour construire ma page code-behind
hello.aspx.vb (la classe) avec MS Web Matrix je choisi l'icone
Class (figure 2).

figure 2
| hello.aspx.vb |  |  | |
|
Imports System Imports System.Web.UI Imports System.Web.UI.WebControls
Namespace TestDotNet
Public Class HelloClass Inherits Page Protected WithEvents Label1 As Label Public Sub Button1_Click(sender As Object, e As EventArgs) Label1.Text = "Hello world !" End Sub
End Class End Namespace
|
listing 2
Lors de la création du fichier de classe, Web Matrix impose de nommer la classe et l'espace de nom. Pour le
Namespace, j'ai choisi de donner le nom de mon application
TestDotNet et pour
Class, j'ai choisie
HelloClass. Ce sont les informations que l'on retrouve dans la directive Page du listing 1.
Voilà, la page ASPX et son code-behind sont fonctionnel. Comme vous le constatez, ce n'est pas très compliqué. Cependant, n'oubliez pas d'importer les espaces de nom nécessaires dans votre fichier de classe,
Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
...
n'oubliez pas nom plus de déclarer les WebControls utilisés dans la page ASPX
...
Protected WithEvents Label1 As Label
...
et pour finir n'oubliez pas de faire hériter votre page de code-behind de la classe Page.
...
Inherits Page
...