Share via


Procédure pas à pas : création des couches de logique métier et d'accès aux données dans ASP.NET

Mise à jour : novembre 2007

Lorsque vous utilisez des données dans ASP.NET, vous tirez avantage de l'utilisation de modèles de logiciels communs. L'un de ces modèles consiste à séparer le code d'accès aux données du code de la logique métier qui gère l'accès aux données ou qui fournit d'autres règles métier. Dans ce modèle, ces deux couches sont séparées de la couche de présentation, qui se compose des pages auxquelles accède l'utilisateur du site Web pour afficher ou modifier des données.

ASP.NET peut fournir une séparation entre un accès aux données, une logique métier et une présentation de plusieurs façons. Par exemple, le modèle de source de données, qui inclut des contrôles serveur tels que les contrôles LinqDataSource et ObjectDataSource, sépare la couche de présentation du code d'accès aux données et de la logique métier.

Un autre modèle consiste, lui, à inclure la logique d'accès aux données directement aux pages ASP.NET (couche de présentation). Par exemple, vous pouvez écrire du code ADO.NET dans la page code-behind de la page ASP.NET ou utiliser le contrôle SqlDataSource. Cette approche couple fortement la logique d'accès aux données à la couche de présentation.

L'approche recommandée consiste à séparer la logique d'accès aux données de la couche de présentation. Cette couche séparée est connue sous le nom de couche d'accès aux données. La couche d'accès aux données peut être implémentée en tant que projet Bibliothèque de classes distinct. Cependant, vous pouvez également utiliser des outils dans Visual Web Developer qui peuvent générer pour vous une couche d'accès aux données.

Remarque :

Vous ne pouvez pas créer de projet de bibliothèque de classes dans Microsoft Visual Web Developer Express. Cependant, vous pouvez créer un projet distinct en utilisant Visual Basic Express ou Visual C# Express, puis inclure la sortie de cette classe en tant qu'assembly (DLL) au site Web.

Si votre site Web affiche ou met à jour des données, vous devez créer une couche d'accès aux données et une couche de logique métier avant de générer l'interface utilisateur.

Une application Web pilotée par les données inclut généralement une couche d'accès aux données à l'aide de groupes de données typés ou de classes d'entité qui représentent les données. Elle inclut également une couche de logique métier qui applique des règles métier personnalisées. Enfin, elle intègre une couche de présentation à l'aide de pages ASP.NET, ainsi que de pages et de thèmes maîtres pour créer une mise en page classique. Cette procédure pas à pas montre comment créer une couche d'accès aux données.

La couche d'accès aux données inclut l'intégralité du code spécifique à la source de données sous-jacente. Cela comprend le code qui crée une connexion à la base de données et qui exécute les commandes Select, Insert, Update et Delete. En général, la couche d'accès aux données contient des classes qui implémentent des méthodes d'accès aux données de la base de données sous-jacente. La couche de présentation n'utilise pas directement des données. Au lieu de cela, elle appelle des classes et des méthodes dans la couche d'accès aux données pour toutes les requêtes de données.

Les tâches illustrées au cours de cette procédure pas à pas incluent les éléments suivants :

  • Création d'une base de données SQL et ajout de données.

  • Ajout d'un fichier Linq to SQL qui agit en tant que couche d'accès aux données.

  • Création d'une page qui fonctionne comme la couche de présentation.

  • Ajout d'un contrôle LinqDataSource à une page qui communique entre la couche de présentation et la couche d'accès aux données.

Composants requis

Pour exécuter cette procédure pas à pas, vous devez disposer des éléments suivants :

  • Microsoft Visual Studio 2008 ou Microsoft Visual Web Developer Express. Pour obtenir les informations de téléchargement, consultez le site Web Centre de développement Visual Studio.

  • .NET Framework version 3.5.

  • SQL Server Express Edition. Si Microsoft SQL Server est installé, vous pouvez également l'utiliser.

Création d'un site Web

La première étape consiste à créer un site Web.

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

  1. Ouvrez Visual Studio 2008 ou Visual Web Developer Express.

  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, sélectionnez Site Web ASP.NET.

  4. Dans la zone Emplacement, cliquez sur Système de fichiers et tapez le nom du dossier dans lequel vous souhaitez conserver les fichiers du site Web.

    Par exemple, tapez C:\BasicWebSite.

  5. Dans la liste Langage, cliquez sur Visual Basic ou Visual C#, puis cliquez sur OK.

    Remarque :

    Le langage de programmation sélectionné sera la valeur par défaut du site Web. Cependant, vous pouvez également définir spécifiquement le langage de programmation pour chaque page.

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

Connexion à une base de données

L'étape suivante consiste à établir une connexion à une base de données dans Visual Web Developer à partir de la fenêtre Explorateur de serveurs. (Dans Visual Web Developer Express, il s'agit de la fenêtre Explorateur de bases de données.) La création d'une connexion à une base de données dans l'Explorateur de serveurs vous permet d'ajouter des tables, des procédures stockées, des vues et d'autres éléments de base de données dans Visual Studio. Vous pouvez également afficher des données de table ou créer des requêtes manuellement ou à partir de la fenêtre Générateur de requêtes.

Lorsque vous générez le groupe de données typé pour la couche d'accès aux données plus tard au cours de cette procédure pas à pas, vous devez créer une connexion dans Visual Web Developer à la base de données. Vous pouvez fournir les informations de connexion manuellement. Cependant, Visual Web Developer peut simplifier ce processus car il remplit automatiquement une liste des bases de données déjà inscrites dans l'Explorateur de serveurs.

Pour cette procédure pas à pas, vous allez créer une nouvelle base de données pour assurer le suivi d'éléments de tâche.

Création d'une nouvelle base de données SQL Server Express

Dans cette section, vous allez créer une nouvelle base de données SQL Server Express qui stockera les informations de tâche d'une liste de tâches.

Pour ajouter une base de données au site Web

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom du site Web puis cliquez sur Ajouter un nouvel élément.

    La fenêtre Ajouter un nouvel élément s'affiche.

  2. Sélectionnez Base de données SQL et nommez la base de données Tasks.mdf.

  3. Cliquez sur OK.

  4. Lorsque Visual Web Developer vous demande si la base de données doit être stockée dans le dossier App_Data, cliquez sur Oui.

Création d'un schéma et d'exemples de données pour la base de données Tasks

Vous pouvez utiliser les fonctions de conception et d'édition de la base de données pour créer un schéma pour la table qui contient les éléments de tâche.

Pour définir un schéma et ajouter des données pour la base de données Tasks

  1. Dans l'Explorateur de solutions, ouvrez le dossier App_Data et double-cliquez sur Tasks.mdf.

    Le nœud de base de données Tasks s'ouvre dans l'Explorateur de serveurs.

  2. Cliquez avec le bouton droit sur le dossier Tables, puis cliquez sur Ajouter une nouvelle table.

    La fenêtre de définition de tables s'affiche.

  3. Créez les colonnes suivantes dans la table :

    Nom de la colonne

    Type de données

    Propriétés

    taskId

    int

    Non null

    nom

    nvarchar(50)

    Non null

    dateCreated

    datetime

    Non null

    isComplete

    bit

    Non null

  4. Sélectionnez la ligne pour la colonne taskId, cliquez avec le bouton droit sur la ligne et cliquez sur Définir la clé primaire.

  5. Sélectionnez la ligne taskid et localisez la section Spécification du compteur de la fenêtre Propriétés des colonnes.

  6. Ouvrez la section et affectez la valeur Oui à (Est d'identité).

  7. Enregistrez la table, nommez-la TasksList et fermez la fenêtre de définition de tables.

  8. Dans l'Explorateur de serveurs, cliquez avec le bouton droit sur la table, puis cliquez sur Afficher les données de la table.

    Une fenêtre de modification s'affiche là où vous pouvez afficher, ajouter et modifier les données.

  9. Ajoutez quatre ou cinq enregistrements à la table.

    Vous n'avez pas besoin de spécifier de valeur pour la colonne taskid, car il s'agit d'une colonne d'identité dont la valeur est affectée automatiquement.

  10. Fermez la fenêtre de modification.

Création des couches d'accès aux données et de logique métier

Vous pouvez créer une couche d'accès aux données et de logique métier pour la base de données que vous venez de créer de plusieurs façons. Au cours de cette procédure pas à pas, vous allez créer une classe qui représente des entités de base de données. Vous pouvez alors ajouter votre propre logique métier à ces classes générées. (Vous n'allez pas ajouter de logique métier aux classes au cours de cette procédure pas à pas.)

Au cours de cette procédure pas à pas, vous allez utiliser LINQ (Language Integrated Query) pour travailler avec des données. LINQ applique les principes de programmation orientée objet aux données relationnelles. Il fournit un modèle de programmation unifié pour l'interrogation et la mise à jour de données de différents types de source de données et étend directement les fonctions de données des langages C# et Visual Basic. Pour plus d'informations sur LINQ, consultez LINQ (Language-Integrated Query).

Vous allez utiliser les classes LINQ to SQL en tant que couche d'accès aux données. Vous allez utiliser la fenêtre Concepteur Objet/Relationnel de Visual Web Developer pour générer des classes d'entité qui représentent les données.

Mappage de la base de données Tasks à une classe de contexte de données SQL

Pour créer la couche d'accès aux données, commencez par ajouter un groupe de données typé au projet.

Pour créer une classe pour la table Tasks

  1. Si le site Web ne possède pas déjà un dossier App_Code, dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet, cliquez sur Ajouter le dossier ASP.NET, puis sur App_Code.

  2. Cliquez avec le bouton droit sur le dossier App_Code, puis cliquez sur Ajouter un nouvel élément.

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

  3. Sous Modèles Visual Studio installés, sélectionnez le modèle Classes LINQ to SQL et renommez le fichier Tasks.dbml.

  4. Cliquez sur Ajouter.

    La fenêtre Concepteur Objet/Relationnel s'affiche.

  5. Dans l'Explorateur de serveurs, faites glisser la table TasksList dans la fenêtre Concepteur Objet/Relationnel.

  6. Enregistrez le fichier Tasks.dbml.

    Visual Web Developer crée le fichier Tasks.dbml.layout dans le dossier App_Code sous Tasks.dbml. Il crée également un fichier Tasks.designer.cs ou Tasks.designer.vb, en fonction du langage de programmation avec lequel vous travaillez.

  7. Dans l'Explorateur de solutions, ouvrez le fichier Tasks.designer.cs ou Tasks.designer.vb.

    Notez que le code contient les classes TasksDataContext et TasksList. La classe TasksDataContext représente la base de données et la classe TasksList la table de la base de données. Le constructeur sans paramètre de la classe TasksDataContext lit la chaîne de connexion de la base de données à partir du fichier de configuration du site Web (Web.config).

  8. Ouvrez le fichier Web.config.

    Notez qu'une chaîne de connexion à la base de données Tasks a été ajoutée à l'élément connectionStrings.

  9. Fermez le fichier de classe et le fichier Web.config.

Création et configuration d'un contrôle LinqDataSource

Vous disposez à présent d'une table de base de données et de classes qui représentent les entités de base de données, vous pouvez utiliser un LinqDataSource dans une page Web ASP.NET pour accéder à la base de données. Le contrôle LinqDataSource rend LINQ disponible pour les développeurs de sites Web via l'architecture de contrôle de source de données ASP.NET.

Le contrôle LinqDataSource crée le code de sélection, d'insertion, de mise à jour et de suppression des objets de la base de données. Ces classes peuvent être appelées par une logique métier pour exécuter des fonctions de base de données et appliquer des règles de logique métier.

Pour créer et configurer un contrôle LinqDataSource

  1. Ouvrez ou basculez vers la page Default.aspx.

  2. Passez en mode Design.

  3. À partir de l'onglet Données de la Boîte à outils, faites glisser un contrôle LinqDataSource sur la page Web.

    Vous pouvez conserver la valeur LinqDataSource1 pour la propriété ID.

  4. Dans le panneau des balises actives Tâches LinqDataSource, sélectionnez Configurer la source de données.

  5. Dans la liste d'objets de contexte, sélectionnez TasksDataContext et cliquez sur Suivant.

  6. Dans la liste, sélectionnez TasksLists(Table<TasksList>), puis cliquez sur Terminer.

  7. Dans le panneau des balises actives Tâches LinqDataSource, activez les cases à cocher Activer la suppression, Activer l'insertion et Activer la mise à jour.

    Notez que vous n'avez pas eu à spécifier de commandes de base de données pour sélectionner les données.

  8. Exécutez la page.

    La page affiche les données que vous avez entrées précédemment au cours de la procédure pas à pas.

Étapes suivantes

Cette procédure pas à pas a montré comment créer la couche d'accès aux données et de logique métier d'une application à l'aide du modèle Classes LINQ to SQL et du contrôle serveur LinqDataSource. Vous avez créé une méthode d'accès aux données pour les pages de sites Web, souple mais pas directement liée à la couche de présentation du site Web.

La rubrique Procédure pas à pas : création d'une application de données compatible AJAX utilise le contrôle LinqDataSource pour créer une application Web AJAX qui affiche et met à jour les informations de la base de données Tasks.

Voir aussi

Tâches

Procédure pas à pas : création d'une application de données compatible AJAX

Concepts

Procédures pas à pas ASP.NET sélectionnées