1. L’accès aux données avec ASP.NET
1.1. Introduction
Les applications Web accèdent souvent à des sources de données aux fins de stockage et de récupération de données dynamiques. Vous pouvez écrire du code pour accéder aux données à l'aide de classes de l'espace de Synoms System.Data (connu sous le nom ADO.NET) et de l'espace de noms stem.Xml. Il s'agissait de l'approche généralement adoptée dans les versions antérieures d'ASP.NET.
Toutefois, ASP.NET permet également d'exécuter la liaison de données de façon déclarative. Cette liaison n'exige aucun code pour les scénarios de données les plus courants, et notamment :
§ la sélection et l'affichage de données ;
§ le tri, la pagination et la mise en cache de données ;
§ la mise à jour, l'insertion et la suppression de données ;
§ le filtrage de données à l'aide de paramètres d'exécution ;
§ la création de scénarios maître/détails à l'aide de paramètres.
ASP.NET inclut deux types de contrôles serveur qui interviennent dans le modèle de liaison de données déclaratif : les contrôles de source de données et les contrôles liés aux données. Ces contrôles gèrent les tâches sous-jacentes exigées par le modèle Web sans état pour l'affichage et la mise à jour des données dans les pages Web ASP.NET. En conséquence, vous n'êtes pas tenu de connaître tout le déroulement du cycle de vie des demandes de page pour exécuter la liaison de données.
1.2. Contrôles de source de données
Les contrôles de source de données sont des contrôles ASP.NET qui gèrent les tâches de connexion à une source de données et de lecture et d'écriture de données. Les contrôles de source de données ne génèrent pas le rendu d'une interface utilisateur. Au lieu de cela, ils jouent le rôle d'intermédiaires entre un magasin de données particulier (base de données, objet métier ou fichier XML) et d'autres contrôles de la page Web ASP.NET. Les contrôles de source de données offrent des fonctionnalités puissantes de récupération et de modification de données, et notamment en termes de requêtes, de tri, de pagination, de filtrage, de mise à jour, de suppression et d'insertion. ASP.NET comprend les contrôles de source de données suivants :
Contrôle de source de données | Description |
Permet d'utiliser un objet métier ou une autre classe et de créer des applications Web qui s'appuient sur des objets de couche intermédiaire pour gérer des données. | |
Permet d'utiliser les fournisseurs de données managés ADO.NET, lesquels offrent un accès aux bases de données Microsoft SQL Server, OLE DB, ODBC ou Oracle. | |
Permet d'utiliser une base de données Microsoft Access. | |
Utilisé avec la navigation de site ASP.NET. Pour plus d'informations |
Les contrôles de source de données peuvent également être étendus pour prendre en charge d'autres fournisseurs d'accès au stockage des données.
1.3. Contrôles liés aux données
Les contrôles liés aux données génèrent le rendu des données en tant que balises au navigateur qui envoie la demande. Un contrôle lié aux données peut se lier à un contrôle de source de données et extraire automatiquement des données au moment opportun dans le cycle de vie de la demande de page. Les contrôles liés aux données peuvent tirer parti des fonctionnalités fournies par un contrôle de source de données, et notamment le tri, la pagination, la mise en cache, le filtrage, la mise à jour, la suppression et l'insertion. Un contrôle lié aux données se connecte à un contrôle de source de données via sa propriété DataSourceID.
ASP.NET comprend les contrôles liés aux données décrits dans le tableau suivant.
Contrôles de liste
Génère le rendu des données dans divers formats de liste. Les contrôles de type liste incluent les contrôles BulletedList, CheckBoxList, DropDownList, ListBox et RadioButtonList.
Contrôle | fonctionnement |
| Génère le rendu des annonces dans une page en tant qu'images sur lesquelles les utilisateurs peuvent cliquer pour accéder à une URL associée à l'annonce. |
Daralist | Génère le rendu des données dans une table. Le rendu de chaque élément est généré à l'aide d'un modèle d'élément que vous définissez. |
Affiche un seul enregistrement à la fois sous une forme tabulaire et permet de modifier, de supprimer et d'insérer des enregistrements. Vous pouvez également parcourir plusieurs enregistrements. | |
| Semblable au contrôle DetailsView, mais permet de définir une présentation de formulaire libre pour chaque enregistrement. Le contrôle FormView ressemble au contrôle DataList pour un enregistrement unique. |
| Affiche des données dans un tableau et propose une assistance pour l'édition, la mise à jour, le tri et la pagination des données sans nécessiter de code. |
Menu | Génère le rendu des données dans un menu dynamique hiérarchique qui peut inclure des sous-menus. |
Génère le rendu des données dans une liste. Le rendu de chaque élément est généré à l'aide d'un modèle d'élément que vous définissez. | |
TreeView | Génère le rendu des données dans une arborescence hiérarchique de nœuds qu'il est possible de développer. |
myCookie.Expires = DateTime.Now.AddDays(-1D)
1.1.5. Variable de session
"Session" est un objet qui s'utilise un peu comme le ViewState,
c'est-à-dire avec une clé mais se comporte plutôt comme une table de hachage. Prenons deux pages aspx :
page1.aspx : page dans laquelle nous encodons, par l'intermédiaire d'une TextBox, un nom de société
page2.aspx : page dans laquelle nous affichons le nom de la société (vous comprenez que le but est d'avoir une page d'affichage de données de société se trouvant par exemple dans une base de données)
Protected Sub cmdAfficheSoc (Byval sender As Object, ByVal e As System.EventArgs) Handles cmdAfficheSoc.Click
Session("NomSoc") = txtNomSoc.Text
Response.Redirect("page2.aspx")
End Sub
Code de la page1.aspx : L'utilisateur introduit un nom de société dans la TextBox nommée "txtNomSoc". Cette information est sauvée en Session avant de passer à la page2.aspx
Protected Sub Page_Load (Byval sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Session("NomSoc") IsNot Nothing Then
lblNomSoc.Text = CType(Session("NomSoc"), String)
Else
Response.Write("Aucune société n'a été choisie !")
End If
End Sub
Code de la page2.aspx : Un test est effectué pour savoir si la variable de session contient bien une donnée. Celle-ci est affichée en passant par un transtypage.
Il est évident que cet exemple est très simpliste et que l'objet Session permet bien d'autres utilisations. Voici quelques points liés à l'objet Session (liste non exhaustive) :
Il est évident que cet exemple est très simpliste et que l'objet Session permet bien d'autres utilisations. Voici quelques points liés à l'objet Session (liste non exhaustive) :
· Initialisation de l'objet Session : événements Session_Start et Session_End déclenchés par le serveur et accessibles via le fichier Global.asax
· Expiration de la session
· Session avec ou sans cookies
· Session sécurisée
1.1.6. Variable d'application
La grande différence avec l'objet Session se situe dans le fait qu'un objet Application conserve des données pour l'ensemble des utilisateurs d'un même site web. Il s'utilise de la même manière que l'objet Session.
Protected Sub Page_Load (Byval sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim cpt As Integer = 0
Application.Lock()
If Application("Compteur") IsNot Nothing Then
cpt = CType(Application("Compteur"), Integer)
End If
cpt = cpt + 1
Application("Compteur") = cpt
Application.UnLock()
lblVisite.Text = "Page vue : " & cpt & " fois."
End Sub
L'objet Application étant commun à tous les utilisateurs du site, il est préférable de bloquer l'accès lors de l'écriture et, bien entendu, de ne pas oublier l'action inverse.
0 التعليقات:
Post a Comment