Partager via


Procédure pas à pas : liaison de données à un objet métier personnalisé

Mise à jour : novembre 2007

Un certain nombre d'applications Web sont générées à l'aide de plusieurs couches, avec un ou plusieurs composants dans la couche intermédiaire pour fournir l'accès aux données. Microsoft Visual Web Developer inclut un Assistant qui vous aide à créer un composant de données que vous pouvez utiliser comme objet de données de couche intermédiaire, tel que décrit dans Procédure pas à pas : liaison de données de pages Web à un composant de données Visual Studio.

Toutefois, vous pouvez souhaiter également générer un objet métier personnalisé, plutôt que de vous appuyer sur le composant de données créé par l'Assistant. La création d'un objet métier personnalisé vous permet d'implémenter votre propre logique métier. Cette procédure pas à pas illustre la création d'un objet métier de base que vous pouvez utiliser comme source de données pour les pages Web ASP.NET.

Au cours de cette procédure pas à pas, vous apprendrez à :

  • créer un composant qui peut retourner des données sur une page Web. Le composant utilise un fichier XML pour ses données.

  • faire référence à l'objet métier comme source de données sur une page Web ;

  • lier un contrôle aux données retournées par l'objet métier ;

  • lire et écrire des données à l'aide de l'objet métier.

Composants requis

Pour exécuter cette procédure pas à pas, vous avez besoin de :

  • Visual Web Developer (Visual Studio).

  • .NET Framework

Cette procédure pas à pas suppose que vous avez des connaissances générales sur l'utilisation de Visual Web Developer.

Création du site Web

Si vous avez déjà créé un site Web dans Visual Web Developer (par exemple, en suivant les étapes décrites dans Procédure pas à pas : création d'une page Web de base dans Visual Web Developer), vous pouvez utiliser ce site Web et passer à la section suivante, « Création d'un fichier XML pour les données métier ». Sinon, créez un site et une page Web en suivant ces étapes.

Pour créer un site Web de système de fichiers

  1. Ouvrez Visual Web Developer.

  2. Dans le menu Fichier, cliquez sur Nouveausite Web.

    La boîte de dialogue Nouveau site Web s'affiche.

  3. Sous Modèles Visual Studio installés, cliquez sur Site Web ASP.NET.

  4. Dans la zone Emplacement, entrez le nom du dossier dans lequel vous souhaitez conserver les pages de votre site Web.

    Par exemple, tapez le nom du dossier C:\SitesWeb.

  5. Dans la liste Langage, cliquez sur le langage de programmation que vous préférez utiliser.

  6. Cliquez sur OK.

    Visual Web Developer crée le dossier et une page nommée Default.aspx.

Création d'un fichier XML pour des données métier

Dans la procédure suivante, vous créerez un fichier XML unique pour les données du composant métier.

Pour créer le fichier XML

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le dossier App_Data, puis cliquez sur AjouterNouvel élément.

    Remarque :

    Assurez-vous de créer le fichier XML dans le dossier App_Data. Le dossier App_Data dispose des autorisations définies qui permettront à la page Web de lire et d'écrire les données dans le fichier XML.

  2. Sous Modèles Visual Studio installés, cliquez sur Fichier XML.

  3. Dans la zone Nom, tapez Authors.xml.

  4. Cliquez sur Ajouter.

    Un fichier XML est créé et contient uniquement la directive XML.

  5. Copiez les données XML suivantes, puis collez-les dans le fichier en remplaçant le contenu existant.

    Le fichier XML inclut des informations de schéma qui identifient la structure de la base de données des données, y compris une contrainte de clé primaire pour la clé.

    Remarque :

    Les composants métier peuvent utiliser toutes sortes de données, tant qu'elles sont adaptées à votre application. Cette procédure pas à pas utilise un fichier XML.

    <?xml version="1.0" standalone="yes"?>
    <dsPubs xmlns="http://www.tempuri.org/dsPubs.xsd">
    <xs:schema id="dsPubs" targetNamespace="http://www.tempuri.org/dsPubs.xsd" xmlns:mstns="http://www.tempuri.org/dsPubs.xsd" xmlns="http://www.tempuri.org/dsPubs.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
        <xs:element name="dsPubs" msdata:IsDataSet="true">
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="authors">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="au_id" type="xs:string" />
                    <xs:element name="au_lname" type="xs:string" />
                    <xs:element name="au_fname" type="xs:string" />
                    <xs:element name="au_phone" type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:choice>
          </xs:complexType>
          <xs:unique name="Constraint1" msdata:PrimaryKey="true">
            <xs:selector xpath=".//mstns:authors" />
            <xs:field xpath="mstns:au_id" />
          </xs:unique>
        </xs:element>
      </xs:schema>
      <authors>
        <au_id>172-32-1176</au_id>
        <au_lname>West</au_lname>
        <au_fname>Paul</au_fname>
        <au_phone>408 555-0123</au_phone>
      </authors>
      <authors>
        <au_id>213-46-8915</au_id>
        <au_lname>Gray</au_lname>
        <au_fname>Chris</au_fname>
        <au_phone>415 555-0120</au_phone>
      </authors>
    </dsPubs>
    
  6. Enregistrez le fichier Authors.xml et fermez-le.

Création d'un composant

L'étape suivante consiste à créer une classe qui vous servira de composant métier. Vous conserverez le composant dans le dossier App_Code de votre site Web. Dans une application réelle, vous pouvez conserver le composant dans tout magasin pratique, y compris le Global Assembly Cache. Si votre site Web ne contient pas de répertoire nommé App_Code, vous devez en créer un.

Pour créer un dossier App_Code

  • Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom de votre site Web, puis cliquez sur Ajouter le dossier ASP.NET puis sur App_Code.

    Remarque :

    Le dossier doit être nommé App_Code.

Vous pouvez à présent ajouter le composant à votre site.

Pour créer le composant métier

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le dossier App_Code, puis cliquez sur Ajouter un nouvel élément.

    Remarque :

    Assurez-vous de créer l'élément dans le dossier App_Code.

    La boîte de dialogue Ajouter un nouvel élément s'affiche alors.

  2. Sous Modèles Visual Studio installés, cliquez sur Classe.

  3. Dans la zone Langage, cliquez sur votre langage de programmation préféré.

  4. Dans la zone Nom, tapez BusinessObject.

  5. Cliquez sur Ajouter.

    Visual Web Developer crée le nouveau fichier de classe et ouvre l'éditeur de code.

  6. Copiez le code suivant, puis collez-les dans le fichier en substituant le contenu existant.

    Imports Microsoft.VisualBasic
    Imports System
    Imports System.Web
    Imports System.Data
    Namespace PubsClasses
        Public Class AuthorClass
            Private dsAuthors As DataSet = _
                New System.Data.DataSet("ds1")
            Private filePath As String = _
               HttpContext.Current.Server.MapPath _
                   ("~/App_Data/authors.xml")
            Public Sub New()
                dsAuthors.ReadXml(filePath, Data.XmlReadMode.ReadSchema)
            End Sub
    
            Public Function GetAuthors() As DataSet
                Return dsAuthors
                End Function
            End Class
    End Namespace
    
    using System;
    using System.Web;
    using System.Data;
    namespace PubsClasses
    {
        public class AuthorClass
        {
            private DataSet dsAuthors = new DataSet("ds1");
            private String filePath =
                HttpContext.Current.Server.MapPath
                    ("~/App_Data/Authors.xml");
            public AuthorClass()
            {
                dsAuthors.ReadXml (filePath, XmlReadMode.ReadSchema);
            }
            public DataSet GetAuthors ()
            {
                return dsAuthors;
            }
        }
    }
    
    Remarque :

    Assurez-vous que la valeur de la variable filePath fait référence au nom du fichier XML que vous avez créé précédemment.

    Lorsqu'une instance de la classe est créée, elle lit le fichier XML et le traduit en un groupe de données. La méthode GetAuthors de la classe retourne le groupe de données.

  7. Enregistrez le fichier. Vous devez enregistrer le fichier pour que la section suivante fonctionne correctement.

Affichage des données à l'aide du composant métier

Vous pouvez maintenant appeler le composant métier dans une page Web et afficher ses données. Pour référencer le composant, vous utilisez un contrôle ObjectDataSource qui est conçu spécialement pour utiliser les objets.

Pour créer un contrôle ObjectDataSource qui fait référence au composant

  1. Basculez vers la page Default.aspx ou ouvrez-la.

    Remarque :

    Si vous n'avez pas de page Default.aspx, vous pouvez utiliser une autre page. Vous pouvez également ajouter une nouvelle page au site Web. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom de votre site Web, puis cliquez sur Ajouter un nouvel élément, puis ajoutez un Formulaire Web.

  2. Basculez en mode Design.

  3. Dans la Boîte à outils, à partir du dossier Données, faites glisser un contrôle ObjectDataSource sur la page.

  4. Dans la fenêtre Propriétés, affectez AuthorsObjectDataSource à l'ID.

  5. Cliquez avec le bouton droit sur le contrôle ObjectDataSource, puis cliquez sur la balise active pour afficher le menu Tâches ObjectDataSource.

  6. Dans le menu Tâches ObjectDataSource, cliquez sur Configurer la source de données.

    L'Assistant Configurer la source de données s'affiche.

  7. Dans la liste Choisissez votre objet métier, cliquez sur PubsClasses.AuthorClass.

  8. Cliquez sur Suivant.

  9. Dans l'onglet Sélectionner, dans la liste Choisissez une méthode, cliquez sur GetAuthors(), returns Dataset.

    La méthode GetAuthors est définie dans la classe métier que vous avez créée précédemment. Elle retourne un groupe de données contenant les données du fichier Authors.xml.

  10. Cliquez sur Terminer.

    Les informations de configuration que vous avez entrées spécifient que, pour obtenir des données du composant, la méthode GetAuthors du composant doit être appelée.

    Remarque :

    Le nom de la méthode que vous spécifiez pour la propriété SelectMethod respecte la casse, même si vous programmez en Visual Basic .NET.

Vous pouvez maintenant obtenir des données du composant à l'aide du contrôle ObjectDataSource. Vous afficherez les données dans un contrôle GridView sur la page.

Pour afficher des données à partir du composant

  1. Dans la Boîte à outils, à partir du dossier Données, faites glisser un contrôle GridView sur la page.

  2. Cliquez avec le bouton droit sur le contrôle GridView, puis cliquez sur la balise active si le menu tâches courantes du GridView ne s'affiche pas.

  3. Dans le menu tâches courantes du GridView, dans la zone Choisir la source de données, cliquez sur AuthorsObjectDataSource.

  4. Appuyez sur CTRL+F5 pour exécuter la page.

    Le contrôle GridView contenant les données XML s'affiche.

Insertion des données à l'aide du composant métier

Comme d'autres contrôles de source de données, tels que le contrôle SqlDataSource, le contrôle ObjectDataSource prend en charge la mise à jour (insertion, mise à jour, et suppression). Dans cette section, vous modifierez le composant métier avec une méthode qui insère un enregistrement d'auteur. Puis, vous modifierez la page afin que les utilisateurs puissent taper de nouvelles informations d'auteur et modifier le contrôle ObjectDataSource pour exécuter l'insertion.

Remarque :

Dans cette partie de la procédure pas à pas, le fichier Authors.xml que vous avez créé précédemment sera mis à jour. Il est important que l'application ait l'autorisation d'écrire sur le fichier au moment de l'exécution, sinon la page Web affichera une erreur lorsque vous essaierez de mettre à jour le fichier. Si vous avez créé le fichier Authors.xml dans le dossier App_Data, les autorisations sont définies automatiquement.

Pour modifier le composant métier pour autoriser des insertions

  1. Basculez vers le fichier BusinessObject.

  2. Ajoutez la méthode suivante comme dernier membre de AuthorClass.

    Public Sub InsertAuthor(ByVal au_id As String, _
            ByVal au_lname As String, _
            ByVal au_fname As String, ByVal au_phone As String)
        Dim workRow As DataRow = dsAuthors.Tables(0).NewRow
        workRow.BeginEdit()
        workRow(0) = au_id
        workRow(1) = au_lname
        workRow(2) = au_fname
        workRow(3) = au_phone
        workRow.EndEdit()
        dsAuthors.Tables(0).Rows.Add(workRow)
        dsAuthors.WriteXml(filePath, Data.XmlWriteMode.WriteSchema)
    End Sub
    
    public void InsertAuthor (String au_id, String au_lname, 
        String au_fname, String au_phone)
    {
        DataRow workRow = dsAuthors.Tables[0].NewRow ();
        workRow.BeginEdit ();
        workRow[0] = au_id;
        workRow[1] = au_lname;
        workRow[2] = au_fname;
        workRow[3] = au_phone;
        workRow.EndEdit ();
        dsAuthors.Tables[0].Rows.Add (workRow);
        dsAuthors.WriteXml (filePath, XmlWriteMode.WriteSchema);
    }
    
    Remarque :

    Faites l'attention aux noms de variables utilisés pour passer des informations d'auteur dans la méthode (au_id, au_lname, au_fname et au_phone). Ils doivent correspondre aux noms de colonnes définis dans le schéma du fichier XML que vous avez créé précédemment.

    La nouvelle méthode accepte quatre valeurs à insérer, lesquelles vous fournirez dans la page comme paramètres. La méthode crée une nouvelle ligne dans le groupe de données, puis écrit le groupe de données mis à jour à l'extérieur, comme dans un fichier XML.

  3. Enregistrez le fichier.

L'étape suivante consiste à modifier la page afin que les utilisateurs puissent entrer de nouvelles informations d'auteur. Pour la procédure suivante, vous utiliserez le contrôle DetailsView.

Pour ajouter un contrôle pour insérer des données

  1. Basculez vers la page Default.aspx ou ouvrez-la.

  2. Basculez en mode Design.

  3. Dans la Boîte à outils, à partir du dossier Données, faites glisser un contrôle DetailsView sur la page.

    Remarque :

    La disposition exacte de la page n'est pas importante.

  4. Dans le menu Tâches DetailsView, dans la zone Choisir la source de données, cliquez sur AuthorsObjectDataSource.

    Remarque :

    Si le menu Tâches DetailsView n'apparaît pas, cliquez sur la balise active.

  5. Dans la fenêtre Propriétés, affectez true à AutoGenerateInsertButton.

    Ainsi, le contrôle DetailsView restitue un bouton Nouveau sur lequel les utilisateurs peuvent cliquer pour basculer le contrôle en mode d'entrée des données.

Enfin, vous devez configurer le contrôle ObjectDataSource pour spécifier quelle action le contrôle doit effectuer pour insérer des données.

Pour configurer le contrôle de source de données pour insérer des données

  • Cliquez avec le bouton droit sur AuthorsObjectDataSource, cliquez sur Propriétés, puis affectez InsertAuthor à InsertMethod.

    Il s'agit du nom de la méthode que vous avez ajoutée au composant métier.

Vous pouvez maintenant insérer de nouveaux auteurs dans le fichier XML.

Pour tester l'insertion

  1. Appuyez sur CTRL+F5 pour exécuter la page Default.aspx.

  2. Dans le contrôle DetailsView, cliquez sur le bouton Nouveau.

    Le contrôle s'affiche de nouveau avec les zones de texte.

  3. Entrez de nouvelles informations d'auteur, puis cliquez sur Insérer.

    Les nouvelles informations d'auteur sont ajoutées au fichier XML. Le contrôle GridView reflète immédiatement le nouvel enregistrement.

Étapes suivantes

Cette procédure pas à pas illustre comment utiliser un composant de données. Vous pouvez essayer des fonctionnalités de navigation supplémentaires. Vous pouvez, par exemple, souhaiter effectuer les opérations suivantes :

Voir aussi

Tâches

Procédure pas à pas : liaison de données de pages Web à un composant de données Visual Studio

Procédure pas à pas : utilisation de code partagé au sein de sites Web dans Visual Web Developer

Procédure pas à pas : création d'une page Web de base dans Visual Web Developer

Concepts

Vue d'ensemble des contrôles de source de données

Utilisation de paramètres avec des contrôles de source de données