Partager via


Procédure pas à pas : création et utilisation d'un service de données WCF dans Visual Studio

Cette procédure pas à pas montre comment créer un Service de données WCF simple qui est hébergé dans une application Web ASP.NET puis comment y accéder à partir d'une application Windows Forms.

Dans cette procédure pas à pas, vous apprendrez à :

  • Créer un Application Web pour héberger un Service de données WCF.

  • Créer un Entity Data Model qui représente la table Customers dans la base de données Northwind.

  • Créer un Service de données WCF.

  • Créer une application cliente et ajouter une référence au Service de données WCF.

  • Activer la liaison de données vers un service et générer l'interface utilisateur.

  • Ajouter éventuellement des fonctions de filtrage à l'application.

Composants requis

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

Création du service

Pour créer un Service de données WCF, vous devez ajouter un projet Web, créer un Entity Data Model, puis créer le service à partir du modèle.

Au cours de la première étape, vous allez ajouter un projet Web pour héberger le service.

Notes

Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur de Visual Studio dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Paramètres Visual Studio.

Pour créer le projet Web

  1. Dans le menu Fichier de Visual Studio, cliquez sur Nouveau projet.

  2. Dans la boîte de dialogue Nouveau projet, développez le nœud Visual Basic ou Visual C# et cliquez sur Web, puis sélectionnez Application Web ASP.NET.

  3. Dans le champ Nom, tapez NorthwindWeb, puis cliquez sur OK pour créer le projet.

Dans cette étape, vous allez créer un Entity Data Model qui représente la table Customers dans la base de données Northwind.

Pour créer le modèle EDM (Entity Data Model)

  1. Dans le menu Projet, cliquez sur Ajouter un nouvel élément.

  2. Dans la boîte de dialogue Ajouter un nouvel élément, sélectionnez ADO.NET Entity Data Model.

  3. Dans le champ Nom, tapez NorthwindModel, puis cliquez sur Ajouter.

    L'Assistant Entity Data Model s'affiche.

  4. Dans l'Assistant Entity Data Model, sélectionnez Générer à partir de la base de données puis cliquez sur Suivant.

  5. Sur la page Choisir votre connexion de données, effectuez l'une des opérations suivantes :

    • Si une connexion de données à l'exemple de base de données Northwind est disponible dans la liste déroulante, cliquez dessus.

      ou

    • Cliquez sur Nouvelle connexion pour configurer une nouvelle connexion de données. Pour plus d'informations, consultez How to: Create Connections to SQL Server Databases.

  6. Si un mot de passe est requis pour la base de données, sélectionnez l'option pour inclure les données sensibles, puis cliquez sur Suivant.

    Notes

    Si une boîte de dialogue s'affiche, cliquez sur Oui pour enregistrer le fichier dans votre projet.

  7. Sur la page Choisir vos objets de base de données, développez le nœud Tables, puis activez la case à cocher en regard de la tableCustomers, puis cliquez sur Terminer.

    Le diagramme de modèle d'entité s'affichera et un fichier NorthwindModel.edmx sera ajouté à votre projet.

Dans cette étape, vous allez créer et tester le service de données.

Pour créer le service de données

  1. Dans le menu Projet, cliquez sur Ajouter un nouvel élément.

  2. Dans la boîte de dialogue Ajouter un nouvel élément, sélectionnez Service de données WCF.

  3. Dans le champ Nom, tapez NorthwindCustomers, puis cliquez sur Ajouter.

    Le fichier NorthwindCustomers.svc s'affiche dans l'éditeur de code.

  4. Dans l'éditeur de code, localisez le premier commentaire TODO: et remplacez le code par celui-ci :

    Inherits DataService(Of northwindEntities)
    
    public class NorthwindCustomers : DataService<northwindEntities>
    

    Notes

    Selon la version de base de données Northwind que vous utilisez, vous pouvez avoir à modifier "NORTHWIND" en "NORTHWND." Vous pouvez utiliser également IntelliSense pour découvrir le nom correct.

  5. Remplacez les commentaires dans le gestionnaire d'événements InitializeService par le code suivant :

    config.SetEntitySetAccessRule("*", EntitySetRights.All)
    
    config.SetEntitySetAccessRule("*", EntitySetRights.All);
    
  6. Appuyez sur Ctrl+F5 pour exécuter le service. Une fenêtre de navigateur s'ouvre et le schéma XML pour le service s'affiche.

  7. Dans la barre d'adresses, tapez Customers à la fin de l'URL de NorthwindCustomers.svc, puis appuyez sur ENTRÉE.

    Une représentation XML des données dans la table Customers s'affiche.

    Notes

    Dans certains cas, Internet Explorer interprétera par erreur les données comme un flux RSS. Vous devez vous assurer que l'option permettant d'afficher les flux RSS est désactivée. Pour plus d'informations, consultez Dépannage des références de service.

  8. Fermez la fenêtre de navigateur.

Au cours des étapes suivantes, vous devrez créer une application cliente Windows Forms pour consommer le service.

Création de l'application cliente

Pour créer l'application cliente, vous devrez ajouter un deuxième projet, une référence de service au projet, vous configurerez une source de données et créerez une interface utilisateur pour afficher les données à partir du service.

Au cours de la première étape, vous allez ajouter un projet Windows Forms à la solution et allez le définir comme projet de démarrage.

Pour créer l'application cliente

  1. Dans le menu Fichier.de Visual Studio, cliquez sur Ajouter, puis cliquez sur Nouveau projet.

  2. Dans la boîte de dialogue Nouveau projet, développez le nœud Visual Basic ou Visual C# et cliquez sur Windows, puis sélectionnez Application Windows Forms.

  3. Dans le champ Nom, tapez NorthwindClient, puis cliquez sur OK pour ouvrir le projet.

  4. Dans l'Explorateur de solutions, sélectionnez le projet NorthwindClient.

  5. Dans le menu Projet, cliquez sur Définir comme projet de démarrage.

Dans cette étape, vous ajouterez une référence de service au Service de données WCF dans le projet Web.

Pour ajouter une référence de service.

  1. Dans le menu Projet, cliquez sur Ajouter une référence de service.

  2. Dans la boîte de dialogue Ajouter une référence de service, cliquez sur Découvrir.

    L'URL pour le service NorthwindCustomers s'affiche dans le champ d'adresses.

  3. Cliquez sur OK pour ajouter une référence de service.

Au cours de cette étape, vous allez configurer une source de données pour activer la liaison de données vers le service.

Pour activer la liaison de données vers le service

  1. Dans le menu Données, cliquez sur Afficher les sources de données.

  2. Dans la fenêtre Sources de données, cliquez sur Ajouter une nouvelle source de données.

  3. Dans la page Choisir un type de source de données de l'Assistant Configuration de source de données, cliquez sur Objet, puis cliquez sur Suivant.

  4. Sur la page Sélectionner l'objet que vous souhaitez lier, développez le nœud NorthwindClient, puis le nœud NorthwindClient.ServiceReference1.

  5. Sélectionnez Customers, puis cliquez sur Terminer.

Au cours de cette étape, vous allez créer l'interface utilisateur qui affichera les données à partir du service.

Pour créer l'interface utilisateur

  1. Faites glisser le nœud Customers de la fenêtre Sources de données jusqu'au formulaire.

    Un contrôle DataGridView, un composant BindingSource et un composant BindingNavigator sont ajoutés au formulaire.

  2. Double-cliquez sur le formulaire pour ouvrir l'éditeur de code et ajoutez le code suivant au gestionnaire d'événements Form1_Load :

           Dim proxy As New ServiceReference1.northwindModel.northwindEntities _
    (New Uri("https://localhost:53161/NorthwindCustomers.svc/"))
           Me.CustomersBindingSource.DataSource = proxy.Customers
    
               ServiceReference1.northwindModel.northwindEntities proxy = new
    ServiceReference1.northwindModel.northwindEntities(new
    Uri("https://localhost:53397/NorthwindCustomers.svc/"));
               this.customersBindingSource.DataSource = proxy.Customers;
    

    Notes

    Selon la version de base de données Northwind que vous utilisez, vous pouvez avoir à modifier "NORTHWIND" en "NORTHWND." Vous pouvez utiliser également IntelliSense pour découvrir le nom correct.

  3. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le fichier NorthwindCustomers.svc et cliquez sur Afficher dans le Navigateur. Internet Explorer s'ouvre et le schéma XML pour le service s'affiche.

  4. Copiez l'URL à partir de la barre d'adresses d'Internet Explorer.

  5. Dans le code que vous avez ajouté à l'étape 2, sélectionnez https://localhost:14735/NorthwindCustomers.svc et remplacez-le par l'URL que vous venez de copier.

  6. Appuyez sur F5 pour exécuter l'application. Les informations client s'affichent.

Vous disposez désormais d'une application opérationnelle qui affichera une liste de clients à partir du service NorthwindCustomers. Si vous souhaitez exposer des données supplémentaires à travers le service, vous pouvez modifier l'Entity Data Model pour inclure des tables supplémentaires à partir de la base de données Northwind.

Au cours de l'étape facultative suivante, vous allez apprendre à filtrer les données retournées par le service.

Ajout des fonctions de filtrage

Au cours de cette étape, vous allez personnaliser l'application afin de filtrer les données selon la ville du client.

Pour ajouter le filtrage selon la ville

  1. Dans l'Explorateur de solutions, double-cliquez sur Form1.vb ou Form1.cs pour afficher le Concepteur Windows Forms.

  2. Faites glisser un contrôle TextBox et un contrôle Button, de la boîte à outils vers le formulaire.

  3. Double-cliquez sur le contrôle Button et ajoutez le code suivant dans le gestionnaire d'événements Button1_Click :

           Dim proxy As New ServiceReference1.northwindModel.northwindEntities _
    (New Uri("https://localhost:53161/NorthwindCustomers.svc"))
           Dim city As String = TextBox1.Text
    
           If city <> "" Then
               Me.CustomersBindingSource.DataSource = From c In _
            proxy.Customers Where c.City = city
           End If
    
            ServiceReference1.northwindModel.northwindEntities proxy = new
     ServiceReference1.northwindModel.northwindEntities(new
     Uri("https://localhost:53397/NorthwindCustomers.svc/"));
        string city = textBox1.Text;
    
    if (city != "")
    {
        this.customersBindingSource.DataSource = from c in
     proxy.Customers where c.City == city select c;   
    
  4. Dans le code précédent, remplacez https://localhost:14735/NorthwindCustomers.svc par l'URL du gestionnaire d'événements Form1_Load.

  5. Appuyez sur F5 pour exécuter l'application.

  6. Dans la zone de texte, tapez Londres, puis cliquez sur le bouton. Seuls les clients de Londres seront affichés.

Voir aussi

Tâches

Comment : ajouter, mettre à jour ou supprimer une référence de service de données WCF