Procédure pas à pas : Création d’une application de données multicouchesWalkthrough: Create an n-tier data application

Les applications de données multiniveaux sont des applications qui accèdent aux données et sont divisées en plusieurs couches logiques, ou niveaux.N-tier data applications are applications that access data and are separated into multiple logical layers, or tiers. La séparation des composants de l'application en couches distinctes favorise la possibilité de tenir à jour et de monter en charge l'application.Separating application components into discrete tiers increases the maintainability and scalability of the application. Cela est possible grâce à une application plus facile des nouvelles technologies sur chaque couche sans avoir à reconcevoir toute la solution.It does this by enabling easier adoption of new technologies that can be applied to a single tier without requiring you to redesign the whole solution. L'architecture multicouche inclut une couche Présentation, une couche intermédiaire et une couche Données.N-tier architecture includes a presentation tier, a middle-tier, and a data tier. La couche intermédiaire inclut généralement une couche d'accès aux données, une couche logique métier et des composants partagés tels que l'authentification et la validation.The middle tier typically includes a data access layer, a business logic layer, and shared components such as authentication and validation. La couche Données inclut une base de données relationnelle.The data tier includes a relational database. Les applications multicouches stockent généralement les informations sensibles dans la couche d'accès aux données de la couche intermédiaire, pour la tenir hors de portée des utilisateurs finaux qui accèdent à la couche Présentation.N-tier applications usually store sensitive information in the data access layer of the middle-tier to maintain isolation from end users who access the presentation tier. Pour plus d’informations, consultez vue d’ensemble des applications de données multicouches.For more information, see N-tier data applications overview.

Pour séparer plusieurs couches d'une application multicouche, il est possible de créer des projets distincts pour chaque couche que vous voulez inclure dans votre application.One way to separate the various tiers in an n-tier application is to create discrete projects for each tier that you want to include in your application. Les datasets typés contiennent une propriété DataSet Project qui détermine les projets dans lesquels le code du dataset et des TableAdapters générés doit intervenir.Typed datasets contain a DataSet Project property that determines which projects the generated dataset and TableAdapter code should go into.

Cette procédure pas à pas décrit comment séparer le code du dataset et TableAdapter en projets de bibliothèque de classes discrètes à l’aide du Concepteur de DataSet.This walkthrough demonstrates how to separate dataset and TableAdapter code into discrete class library projects by using the Dataset Designer. Une fois que vous séparez le jeu de données et le code du TableAdapter, vous créez un Services Windows Communication Foundation et WCF Data Services dans Visual Studio service pour appeler la couche d’accès aux données.After you separate the dataset and TableAdapter code, you create a Windows Communication Foundation Services and WCF Data Services in Visual Studio service to call into the data access tier. Enfin, vous créez une application Windows Forms en tant que la couche de présentation.Finally, you create a Windows Forms application as the presentation tier. Cette couche accède aux données à partir du service de données.This tier accesses data from the data service.

Au cours de cette procédure pas à pas, vous procédez comme suit :During this walkthrough, you perform the following steps:

  • Créer une solution multicouche contenant plusieurs projets.Create a new n-tier solution that contains multiple projects.

  • ajouter deux projets de bibliothèque de classes à la solution multicouche ;Add two class library projects to the n-tier solution.

  • Créez un dataset typé à l’aide de l’Assistant Configuration de source de données.Create a typed dataset by using the Data Source Configuration Wizard.

  • Séparer le texte généré TableAdapters et le code de jeu de données dans des projets distincts.Separate the generated TableAdapters and dataset code into discrete projects.

  • créer un service WCF (Windows Communication Foundation) pour appeler la couche d'accès aux données ;Create a Windows Communication Foundation (WCF) service to call into the data access tier.

  • créer des fonctions dans le service pour récupérer les données de la couche d'accès aux données ;Create functions in the service to retrieve data from the data access tier.

  • créer une application Windows Forms faisant office de couche Présentation ;Create a Windows Forms application to serve as the presentation tier.

  • créer des contrôles Windows Forms liés à la source de données ;Create Windows Forms controls that are bound to the data source.

  • écrire du code pour remplir les tables de données.Write code to populate the data tables.

lien vers la vidéo pour obtenir une version vidéo de cette rubrique, consultez Video How to : création d’une application de données multicouches.link to video For a video version of this topic, see Video How to: Creating an n-tier data application.

PrérequisPrerequisites

Cette procédure pas à pas utilise SQL Server Express LocalDB et la base de données Northwind.This walkthrough uses SQL Server Express LocalDB and the Northwind sample database.

  1. Si vous n’avez pas SQL Server Express LocalDB, installez-le à partir de la page de téléchargement de SQL Server Express, ou via le le programme d’installation de Visual Studio.If you don't have SQL Server Express LocalDB, install it either from the SQL Server Express download page, or through the Visual Studio Installer. Dans le le programme d’installation de Visual Studio, vous pouvez installer SQL Server Express LocalDB dans le cadre de la développement .NET desktop charge de travail, ou comme un composant individuel.In the Visual Studio Installer, you can install SQL Server Express LocalDB as part of the .NET desktop development workload, or as an individual component.

  2. Installer la base de données Northwind en suivant ces étapes :Install the Northwind sample database by following these steps:

    1. Dans Visual Studio, ouvrez le Explorateur d’objets SQL Server fenêtre.In Visual Studio, open the SQL Server Object Explorer window. (Explorateur d’objets SQL Server est installé dans le cadre de la stockage de données et de traitement charge de travail dans Visual Studio Installer.) Développez le SQL Server nœud.(SQL Server Object Explorer is installed as part of the Data storage and processing workload in the Visual Studio Installer.) Expand the SQL Server node. Avec le bouton droit sur votre instance de base de données locale et sélectionnez nouvelle requête.Right-click on your LocalDB instance and select New Query.

      Une fenêtre d’éditeur de requête s’ouvre.A query editor window opens.

    2. Copie le script Transact-SQL de Northwind dans votre Presse-papiers.Copy the Northwind Transact-SQL script to your clipboard. Ce script T-SQL crée la base de données Northwind à partir de zéro et la remplit avec des données.This T-SQL script creates the Northwind database from scratch and populates it with data.

    3. Collez le script T-SQL dans l’éditeur de requête, puis choisissez le Execute bouton.Paste the T-SQL script into the query editor, and then choose the Execute button.

      Après une courte période, la requête est terminée en cours d’exécution et la base de données Northwind est créé.After a short time, the query finishes running and the Northwind database is created.

Créer la bibliothèque de classes et de solution de multiniveau pour contenir le dataset (DataEntityTier)Create the n-tier solution and class library to hold the dataset (DataEntityTier)

La première étape de cette procédure pas à pas consiste à créer une solution et deux projets de bibliothèque de classes.The first step of this walkthrough is to create a solution and two class library projects. La première bibliothèque de classes conserve le jeu de données (typé généré DataSet classe et les tables de données qui contiennent des données de l’application).The first class library holds the dataset (the generated typed DataSet class and DataTables that hold the application's data). Ce projet est utilisé comme couche d'entité de données de l'application et figure généralement dans la couche intermédiaire.This project is used as the data entity layer of the application and is typically located in the middle tier. Le jeu de données crée le jeu de données initial et automatiquement sépare le code en deux bibliothèques de classes.The dataset creates the initial dataset and automatically separates the code into the two class libraries.

Note

Nommez correctement le projet et la solution avant de cliquer sur OK.Be sure to name the project and solution correctly before you click OK. Il vous sera alors plus facile de terminer cette procédure pas à pas.Doing so will make it easier for you to complete this walkthrough.

Pour créer la solution multicouche et la bibliothèque de classes DataEntityTierTo create the n-tier solution and DataEntityTier class library

  1. Dans Visual Studio, sur le fichier menu, sélectionnez New > projet.In Visual Studio, on the File menu, select New > Project.

  2. Développez le Visual C# ou Visual Basic dans le volet gauche, puis sélectionnez Windows Desktop.Expand either Visual C# or Visual Basic in the left-hand pane, then select Windows Desktop.

  3. Dans le volet central, sélectionnez le bibliothèque de classes type de projet.In the middle pane, select the Class Library project type.

  4. Nommez le projet DataEntityTier.Name the project DataEntityTier.

  5. Nommez la solution NTierWalkthrough, puis choisissez OK.Name the solution NTierWalkthrough, and then choose OK.

    Une solution NTierWalkthrough contenant le projet DataEntityTier est créée et ajoutée à l’Explorateur de solutions.An NTierWalkthrough solution that contains the DataEntityTier project is created and added to Solution Explorer.

Créer la bibliothèque de classes pour contenir les TableAdapters (DataAccessTier)Create the class library to hold the TableAdapters (DataAccessTier)

L'étape qui suit la création du projet DataEntityTier est la création d'un autre projet de bibliothèque de classes.The next step after you create the DataEntityTier project is to create another class library project. Ce projet contient les TableAdapters générés et est appelé le couche d’accès aux données de l’application.This project holds the generated TableAdapters and is called the data access tier of the application. La couche d'accès aux données contient les informations requises pour se connecter à la base de données et figure généralement dans la couche intermédiaire.The data access tier contains the information that is required to connect to the database and is typically located in the middle tier.

Pour créer une bibliothèque de classes distinct pour les TableAdaptersTo create a separate class library for the TableAdapters

  1. Avec le bouton droit sur la solution dans l’Explorateur de solutions et choisissez ajouter > nouveau projet.Right-click on the solution in Solution Explorer and choose Add > New Project.

  2. Dans le nouveau projet boîte de dialogue, dans le volet central, sélectionnez bibliothèque de classes.In the New Project dialog box, in the middle pane, select Class Library.

  3. Nommez le projet DataAccessTier et choisissez OK.Name the project DataAccessTier and choose OK.

    Le projet DataAccessTier est créé et ajouté à la solution NTierWalkthrough.The DataAccessTier project is created and added to the NTierWalkthrough solution.

Créer le jeu de donnéesCreate the Dataset

L'étape qui suit consiste à créer le dataset typé.The next step is to create a typed dataset. Datasets typés sont créés avec la classe dataset (y compris DataTables classes) et le TableAdapter classes dans un projet unique.Typed datasets are created with both the dataset class (including DataTables classes) and the TableAdapter classes in a single project. (Toutes les classes sont générées dans un seul fichier.) Lorsque vous séparez le jeu de données et les TableAdapters dans des projets différents, il est la classe de jeu de données est déplacée vers l’autre projet, en laissant le TableAdapter classes dans le projet d’origine.(All classes are generated into a single file.) When you separate the dataset and TableAdapters into different projects, it is the dataset class that is moved to the other project, leaving the TableAdapter classes in the original project. Par conséquent, créer le jeu de données dans le projet qui doit contenir les TableAdapters (le projet DataAccessTier).Therefore, create the dataset in the project that will ultimately contain the TableAdapters (the DataAccessTier project). Vous créez le jeu de données à l’aide de la Assistant de Configuration de Source de données.You create the dataset by using the Data Source Configuration Wizard.

Note

Vous devez avoir accès à l'exemple de base de données Northwind pour créer la connexion.You must have access to the Northwind sample database to create the connection. Pour plus d’informations sur la façon de configurer la base de données Northwind, consultez Comment : installer les bases de données exemple.For information about how to set up the Northwind sample database, see How to: Install sample databases.

Pour créer le groupe de donnéesTo create the dataset

  1. Sélectionnez le DataAccessTier dans l’Explorateur de solutions.Select the DataAccessTier in Solution Explorer.

  2. Sur le données menu, sélectionnez afficher les Sources de données.On the Data menu, select Show Data Sources.

    La fenêtre Sources de données s’ouvre.The Data Sources window opens.

  3. Dans la fenêtre Sources de données, sélectionnez Ajouter une nouvelle source de données pour démarrer l’Assistant Configuration de source de données.In the Data Sources window, select Add New Data Source to start the Data Source Configuration Wizard.

  4. Sur le choisir un Type de Source de données page, sélectionnez base de données , puis sélectionnez suivant.On the Choose a Data Source Type page, select Database and then select Next.

  5. Dans la page Choisir votre connexion de données, effectuez l’une des opérations suivantes :On the Choose Your Data Connection page, perform one of the following actions:

    Si une connexion de données à l’exemple de base de données Northwind est disponible dans la liste déroulante, sélectionnez-la.If a data connection to the Northwind sample database is available in the drop-down list, select it.

    - ou --or-

    Sélectionnez nouvelle connexion pour ouvrir le ajouter une connexion boîte de dialogue.Select New Connection to open the Add Connection dialog box.

  6. Si la base de données requiert un mot de passe, sélectionnez l’option pour inclure les données sensibles, puis choisissez suivant.If the database requires a password, select the option to include sensitive data, and then choose Next.

    Note

    Si vous avez sélectionné un fichier de base de données local (au lieu de vous connecter à SQL Server), il vous sera peut-être demandé si vous souhaitez ajouter le fichier au projet.If you selected a local database file (instead of connecting to SQL Server) you might be asked if you want to add the file to the project. Choisissez Oui pour ajouter le fichier de base de données au projet.Choose Yes to add the database file to the project.

  7. Sélectionnez suivant sur le enregistrer la chaîne de connexion au fichier de Configuration de l’Application page.Select Next on the Save the Connection String to the Application Configuration File page.

  8. Développez le nœud Tables dans la page Choisir vos objets de base de données .Expand the Tables node on the Choose Your Database Objects page.

  9. Sélectionnez les cases à cocher pour le clients et commandes tables, puis choisissez Terminer.Select the check boxes for the Customers and Orders tables, and then choose Finish.

    NorthwindDataSet est ajouté au projet DataAccessTier et apparaît dans la fenêtre Sources de données.NorthwindDataSet is added to the DataAccessTier project and appears in the Data Sources window.

Séparer les TableAdapters de DatasetSeparate the TableAdapters from the Dataset

Une fois que vous avez créé le dataset, séparez la classe DataSet générée et les TableAdapters.After you create the dataset, separate the generated dataset class from the TableAdapters. Pour ce faire, définissez la propriété Projet DataSet sur le nom du projet dans lequel stocker la classe DataSet extraite.You do this by setting the DataSet Project property to the name of the project in which to store the separated out dataset class.

Pour séparer les TableAdapters du datasetTo separate the TableAdapters from the Dataset

  1. Double-cliquez sur NorthwindDataSet.xsd dans l’Explorateur de solutions pour ouvrir le dataset dans le Concepteur de DataSet.Double-click NorthwindDataSet.xsd in Solution Explorer to open the dataset in the Dataset Designer.

  2. Sélectionnez une zone vide sur le concepteur.Select an empty area on the designer.

  3. Recherchez le nœud Projet DataSet dans la fenêtre Propriétés.Locate the DataSet Project node in the Properties window.

  4. Dans le DataSet Project liste, sélectionnez DataEntityTier.In the DataSet Project list, select DataEntityTier.

  5. Dans le menu Générer, sélectionnez Générer la solution.On the Build menu, select Build Solution.

    Le dataset et les TableAdapters sont divisés entre les deux projets de bibliothèque de classes.The dataset and TableAdapters are separated into the two class library projects. Le projet qui contenait initialement l’ensemble du dataset (DataAccessTier) contient à présent que les TableAdapters.The project that originally contained the whole dataset (DataAccessTier) now contains only the TableAdapters. Le projet désigné dans la DataSet Project propriété (DataEntityTier) contient le dataset typé : NorthwindDataSet.Dataset.Designer.vb (ou NorthwindDataSet.Dataset.Designer.cs).The project designated in the DataSet Project property (DataEntityTier) contains the typed dataset: NorthwindDataSet.Dataset.Designer.vb (or NorthwindDataSet.Dataset.Designer.cs).

Note

Quand vous séparez les datasets et les TableAdapters (en définissant la propriété Projet DataSet), les classes DataSet partielles existantes dans le projet ne sont pas déplacées automatiquement.When you separate datasets and TableAdapters (by setting the DataSet Project property), existing partial dataset classes in the project will not be moved automatically. Les classes DataSet partielles existantes doivent être manuellement déplacées dans le projet DataSet.Existing dataset partial classes must be manually moved to the dataset project.

Créer une nouvelle Application de ServiceCreate a New Service Application

Cette procédure pas à pas montre comment accéder à la couche d’accès aux données à l’aide d’un service WCF, nous allons donc créer une nouvelle application de service WCF.This walkthrough demonstrates how to access the data access tier by using a WCF service, so let's create a new WCF service application.

Pour créer une application de service WCFTo create a new WCF Service application

  1. Avec le bouton droit sur la solution dans l’Explorateur de solutions et choisissez ajouter > nouveau projet.Right-click on the solution in Solution Explorer and choose Add > New Project.

  2. Dans le nouveau projet boîte de dialogue, dans le volet gauche, sélectionnez WCF.In the New Project dialog box, in the left-hand pane, select WCF. Dans le volet central, sélectionnez bibliothèque du Service WCF.In the middle pane, select WCF Service Library.

  3. Nommez le projet DataService et sélectionnez OK.Name the project DataService and select OK.

    Le projet DataService est créé et ajouté à la solution NTierWalkthrough.The DataService project is created and added to the NTierWalkthrough solution.

Créez des méthodes dans la couche d’accès aux données pour retourner les données customers et ordersCreate methods in the data access tier to return the customers and orders data

Le service de données doit appeler deux méthodes dans la couche d’accès aux données : GetCustomers et GetOrders.The data service has to call two methods in the data access tier: GetCustomers and GetOrders. Ces méthodes retournent Northwind Customers et Orders tables.These methods return the Northwind Customers and Orders tables. Créer le GetCustomers et GetOrders méthodes dans le DataAccessTier projet.Create the GetCustomers and GetOrders methods in the DataAccessTier project.

Pour créer une méthode dans la couche d'accès aux données qui retourne la table CustomersTo create a method in the data access tier that returns the Customers table

  1. Dans l’Explorateur de solutions, double-cliquez sur NorthwindDataset.xsd pour ouvrir le jeu de données.In Solution Explorer, double-click NorthwindDataset.xsd to open the dataset.

  2. Avec le bouton droit CustomersTableAdapter et cliquez sur ajouter une requête.Right-click CustomersTableAdapter and click Add Query.

  3. Dans la page Choisir un type de commande, conservez la valeur par défaut Utiliser des instructions SQL, puis cliquez sur Suivant.On the Choose a Command Type page, leave the default value of Use SQL statements and click Next.

  4. Dans la page Choisir un type de requête, conservez la valeur par défaut SELECT qui retourne des lignes, puis cliquez sur Suivant.On the Choose a Query Type page, leave the default value of SELECT which returns rows and click Next.

  5. Dans la page Spécifier une instruction SQL SELECT, conservez la requête par défaut et cliquez sur Suivant.On the Specify a SQL SELECT statement page, leave the default query and click Next.

  6. Dans la page Choisir les méthodes à générer, tapez GetCustomers dans le champ Nom de la méthode de la section Retourner un DataTable.On the Choose Methods to Generate page, type GetCustomers for the Method name in the Return a DataTable section.

  7. Cliquez sur Terminer.Click Finish.

Pour créer une méthode dans la couche d'accès aux données qui retourne la table OrdersTo create a method in the data access tier that returns the Orders table

  1. Cliquez avec le bouton droit sur OrdersTableAdapter, puis cliquez sur Ajouter une requête.Right-click OrdersTableAdapter and click Add Query.

  2. Dans la page Choisir un type de commande, conservez la valeur par défaut Utiliser des instructions SQL, puis cliquez sur Suivant.On the Choose a Command Type page, leave the default value of Use SQL statements and click Next.

  3. Dans la page Choisir un type de requête, conservez la valeur par défaut SELECT qui retourne des lignes, puis cliquez sur Suivant.On the Choose a Query Type page, leave the default value of SELECT which returns rows and click Next.

  4. Dans la page Spécifier une instruction SQL SELECT, conservez la requête par défaut et cliquez sur Suivant.On the Specify a SQL SELECT statement page, leave the default query and click Next.

  5. Dans la page Choisir les méthodes à générer, tapez GetOrders dans le champ Nom de la méthode de la section Retourner un DataTable.On the Choose Methods to Generate page, type GetOrders for the Method name in the Return a DataTable section.

  6. Cliquez sur Terminer.Click Finish.

  7. Dans le menu Générer , cliquez sur Générer la solution.On the Build menu, click Build Solution.

Ajouter une référence à l’entité de données et les niveaux d’accès de données au service de donnéesAdd a reference to the data entity and data access tiers to the data service

Le service de données nécessitant des informations du dataset et des TableAdapters, ajoutez des références aux projets DataEntityTier et DataAccessTier.Because the data service requires information from the dataset and TableAdapters, add references to the DataEntityTier and DataAccessTier projects.

Pour ajouter des références au service de donnéesTo add references to the data service

  1. Cliquez avec le bouton droit sur DataService dans l’Explorateur de solutions, puis cliquez sur Ajouter une référence.Right-click DataService in Solution Explorer and click Add Reference.

  2. Cliquez sur l’onglet Projets de la boîte de dialogue Ajouter une référence.Click the Projects tab in the Add Reference dialog box.

  3. Sélectionnez à la fois les projets DataAccessTier et DataEntityTier.Select both the DataAccessTier and DataEntityTier projects.

  4. Cliquez sur OK.Click OK.

Ajouter des fonctions au service pour appeler les méthodes GetCustomers et GetOrders dans la couche d’accès aux donnéesAdd functions to the service to call the GetCustomers and GetOrders methods in the data access tier

Maintenant que la couche d'accès aux données contient les méthodes permettant de retourner les données, créez des méthodes dans le service de données pour appeler les méthodes dans la couche d'accès aux données.Now that the data access tier contains the methods to return data, create methods in the data service to call the methods in the data access tier.

Note

Pour les projets C#, vous devez ajouter une référence à l'assembly System.Data.DataSetExtensions pour la compilation du code suivant.For C# projects, you must add a reference to the System.Data.DataSetExtensions assembly for the following code to compile.

Pour créer les fonctions GetCustomers et GetOrders dans le service de donnéesTo create the GetCustomers and GetOrders functions in the data service

  1. Dans le projet DataService, double-cliquez sur IService1.vb ou sur IService1.cs.In the DataService project, double-click IService1.vb or IService1.cs.

  2. Ajoutez le code suivant sous le commentaire Ajoutez vos opérations de service ici :Add the following code under the Add your service operations here comment:

    <OperationContract()> _
    Function GetCustomers() As DataEntityTier.NorthwindDataSet.CustomersDataTable
    
    <OperationContract()> _
    Function GetOrders() As DataEntityTier.NorthwindDataSet.OrdersDataTable
    
    [OperationContract]
    DataEntityTier.NorthwindDataSet.CustomersDataTable GetCustomers();
    
    [OperationContract]
    DataEntityTier.NorthwindDataSet.OrdersDataTable GetOrders();
    
  3. Dans le projet DataService, double-cliquez sur Service1.vb (ou sur Service1.cs).In the DataService project, double-click Service1.vb (or Service1.cs).

  4. Ajoutez le code suivant à la classe Service1 :Add the following code to the Service1 class:

    Public Function GetCustomers() As DataEntityTier.NorthwindDataSet.CustomersDataTable Implements IService1.GetCustomers
        Dim CustomersTableAdapter1 As New DataAccessTier.NorthwindDataSetTableAdapters.CustomersTableAdapter
        Return CustomersTableAdapter1.GetCustomers()
    End Function
    
    Public Function GetOrders() As DataEntityTier.NorthwindDataSet.OrdersDataTable Implements IService1.GetOrders
        Dim OrdersTableAdapter1 As New DataAccessTier.NorthwindDataSetTableAdapters.OrdersTableAdapter
        Return OrdersTableAdapter1.GetOrders()
    End Function
    
    public DataEntityTier.NorthwindDataSet.CustomersDataTable GetCustomers()
    {
        DataAccessTier.NorthwindDataSetTableAdapters.CustomersTableAdapter
             CustomersTableAdapter1
            = new DataAccessTier.NorthwindDataSetTableAdapters.CustomersTableAdapter();
        return CustomersTableAdapter1.GetCustomers();
    }
    public DataEntityTier.NorthwindDataSet.OrdersDataTable GetOrders()
    {
        DataAccessTier.NorthwindDataSetTableAdapters.OrdersTableAdapter
             OrdersTableAdapter1
            = new DataAccessTier.NorthwindDataSetTableAdapters.OrdersTableAdapter();
        return OrdersTableAdapter1.GetOrders();
    }
    
  5. Dans le menu Générer , cliquez sur Générer la solution.On the Build menu, click Build Solution.

Créer une couche de présentation pour afficher des données à partir du service de donnéesCreate a presentation tier to display data from the data service

Maintenant que la solution contient le service de données qui possède des méthodes qui appellent dans les données de couche d’accès aux, créez un autre projet qui appelle le service de données et de présenter les données aux utilisateurs.Now that the solution contains the data service that has methods, which call into the data access tier, create another project that calls into the data service and present the data to users. Pour cette procédure pas à pas, créez une application Windows Forms. Il s’agit de la couche Présentation de l’application multicouche.For this walkthrough, create a Windows Forms application; this is the presentation tier of the n-tier application.

Pour créer le projet de couche PrésentationTo create the presentation tier project

  1. Avec le bouton droit sur la solution dans l’Explorateur de solutions et choisissez ajouter > nouveau projet.Right-click on the solution in Solution Explorer and choose Add > New Project.

  2. Dans le nouveau projet boîte de dialogue, dans le volet gauche, sélectionnez Windows Desktop.In the New Project dialog box, in the left-hand pane, select Windows Desktop. Dans le volet central, sélectionnez Windows Forms application.In the middle pane, select Windows Forms App.

  3. Nommez le projet PresentationTier et cliquez sur OK.Name the project PresentationTier and click OK.

    Le projet PresentationTier est créé et ajouté à la solution NTierWalkthrough.The PresentationTier project is created and added to the NTierWalkthrough solution.

Définir le projet PresentationTier comme projet de démarrageSet the PresentationTier project as the startup project

Nous allons définir le PresentationTier projet comme projet de démarrage de la solution, car c’est l’application client réel qui présente et interagit avec les données.We'll set the PresentationTier project to be the startup project for the solution, because it's the actual client application that presents and interacts with the data.

Pour définir le nouveau projet de niveau Présentation comme projet de démarrageTo set the new presentation tier project as the startup project

  • Dans l’Explorateur de solutions, cliquez avec le bouton droit sur PresentationTier, puis cliquez sur Définir comme projet de démarrage.In Solution Explorer, right-click PresentationTier and click Set as StartUp Project.

Ajoutez des références à la couche de présentationAdd References to the Presentation Tier

L’application cliente PresentationTier nécessite une référence de service au service de données pour accéder aux méthodes du service.The client application, PresentationTier requires a service reference to the data service in order to access the methods in the service. Par ailleurs, une référence au dataset est requise pour activer le partage de type par le service WCF.In addition, a reference to the dataset is required to enable type sharing by the WCF service. Jusqu'à ce que vous activez le partage de type via le service de données, le code ajouté à la classe dataset partielle n’est pas disponible pour la couche de présentation.Until you enable type sharing through the data service, code added to the partial dataset class is not available to the presentation tier. Étant donné que vous ajoutez généralement le code, par exemple de code de validation à la ligne et colonne événements d’une table de données, de modification, il est probable que vous souhaitez accéder à ce code à partir du client.Because you typically add code, such as validation code to the row and column changing events of a data table, it's likely that you'll want to access this code from the client.

Pour ajouter une référence à la couche PrésentationTo add a reference to the presentation tier

  1. Dans l’Explorateur de solutions, avec le bouton droit PresentationTier et sélectionnez ajouter une référence.In Solution Explorer, right-click PresentationTier and select Add Reference.

  2. Dans le ajouter une référence boîte de dialogue, sélectionnez le projets onglet.In the Add Reference dialog box, select the Projects tab.

  3. Sélectionnez DataEntityTier et choisissez OK.Select DataEntityTier and choose OK.

Pour ajouter une référence de service à la couche PrésentationTo add a service reference to the presentation tier

  1. Dans l’Explorateur de solutions, avec le bouton droit PresentationTier et sélectionnez ajouter une référence de Service.In Solution Explorer, right-click PresentationTier and select Add Service Reference.

  2. Dans le ajouter une référence de Service boîte de dialogue, sélectionnez Discover.In the Add Service Reference dialog box, select Discover.

  3. Sélectionnez Service1 et choisissez OK.Select Service1 and choose OK.

    Note

    Si vous avez plusieurs services sur l’ordinateur actuel, sélectionnez le service que vous avez créé précédemment dans cette procédure pas à pas (le service qui contient le GetCustomers et GetOrders méthodes).If you have multiple services on the current computer, select the service that you created previously in this walkthrough (the service that contains the GetCustomers and GetOrders methods).

Ajout de DataGridViews au formulaire pour afficher les données retournées par le service de donnéesAdd DataGridViews to the form to display the data returned by the data service

Une fois que vous avez ajouté la référence de service au service de données, la fenêtre Sources de données est automatiquement remplie avec les données retournées par le service.After you add the service reference to the data service, the Data Sources window is automatically populated with the data that is returned by the service.

Pour ajouter au formulaire deux DataGridViews liés aux donnéesTo add two data bound DataGridViews to the form

  1. Dans l’Explorateur de solutions, sélectionnez le projet PresentationTier.In Solution Explorer, select the PresentationTier project.

  2. Dans la fenêtre Sources de données, développez NorthwindDataSet et accédez au nœud Customers.In the Data Sources window, expand NorthwindDataSet and locate the Customers node.

  3. Faites glisser le nœud Customers vers Form1.Drag the Customers node onto Form1.

  4. Dans la fenêtre Sources de données, développez le nœud Customers et accédez au nœud Orders associé (le nœud Orders imbriqué dans le nœud Customers).In the Data Sources window, expand the Customers node and locate the related Orders node (the Orders node nested in the Customers node).

  5. Faites glisser le nœud Orders associé vers Form1.Drag the related Orders node onto Form1.

  6. Créez un gestionnaire d'événements Form1_Load en double-cliquant sur une zone vide du formulaire.Create a Form1_Load event handler by double-clicking an empty area of the form.

  7. Ajoutez le code ci-après au gestionnaire d'événements Form1_Load.Add the following code to the Form1_Load event handler.

    Dim DataSvc As New ServiceReference1.Service1Client
    NorthwindDataSet.Customers.Merge(DataSvc.GetCustomers)
    NorthwindDataSet.Orders.Merge(DataSvc.GetOrders)
    
    ServiceReference1.Service1Client DataSvc =
        new ServiceReference1.Service1Client();
    northwindDataSet.Customers.Merge(DataSvc.GetCustomers());
    northwindDataSet.Orders.Merge(DataSvc.GetOrders());
    

Augmenter la taille de message maximale autorisée par le serviceIncrease the maximum message size allowed by the service

La valeur par défaut maxReceivedMessageSize n’est pas suffisamment grande pour contenir les données récupérées à partir de la Customers et Orders tables.The default value for maxReceivedMessageSize is not large enough to hold the data retrieved from the Customers and Orders tables. Dans les étapes suivantes, vous augmentez la valeur en 6553600.In the following steps, you'll increase the value to 6553600. Vous modifiez la valeur sur le client, ce qui met automatiquement à jour la référence de service.You change the value on the client, which automatically updates the service reference.

Note

La taille inférieure par défaut est destinée à limiter l'exposition aux attaques par déni de service.The lower default size is intended to limit exposure to denial of service (DoS) attacks. Pour plus d'informations, consultez MaxReceivedMessageSize.For more information, see MaxReceivedMessageSize.

Pour augmenter la valeur de maxReceivedMessageSizeTo increase the maxReceivedMessageSize value

  1. Dans l’Explorateur de solutions, double-cliquez sur le fichier app.config du projet PresentationTier.In Solution Explorer, double-click the app.config file in the PresentationTier project.

  2. Accédez à l’attribut de taille maxReceivedMessage et changez la valeur en 6553600.Locate the maxReceivedMessage size attribute and change the value to 6553600.

Tester l’applicationTest the application

Exécutez l’application en appuyant sur F5.Run the application by pressing F5. Les données à partir de la Customers et Orders tables est récupéré à partir du service de données et affiché sur le formulaire.The data from the Customers and Orders tables is retrieved from the data service and displayed on the form.

Étapes suivantesNext steps

Selon les exigences de votre application, vous pouvez exécuter différentes étapes après avoir enregistré les données associées dans l’application Windows.Depending on your application requirements, there are several steps that you may want to perform after you save related data in the Windows-based application. Par exemple, vous pouvez apporter les améliorations suivantes à cette application :For example, you could make the following enhancements to this application:

  • Ajouter une validation au dataset.Add validation to the dataset.

  • Ajouter des méthodes supplémentaires au service pour la mise à jour des données dans la base de données.Add additional methods to the service for updating data back to the database.

Voir aussiSee also