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 :
Exemple de base de données Northwind.
Si vous ne disposez pas de cette base de données sur votre ordinateur de développement, vous pouvez la télécharger sur le site Web du Centre de téléchargement Microsoft.Pour obtenir des instructions, consultez Downloading Sample Databases (LINQ to SQL).
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.
[!REMARQUE]
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
Dans le menu Fichier de Visual Studio, cliquez sur Nouveau projet.
Dans la boîte de dialogue Nouveau projet, développez le nœud Visual Basic ou de Visual C# et cliquez sur Web, puis sélectionnez Application Web Forms ASP.NET.
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)
Dans le menu Projet, cliquez sur Ajouter un nouvel élément.
Dans la boîte de dialogue Ajouter un nouvel élément, sélectionnez Données, puis sélectionnez ADO.NET Entity Data Model.
Dans le champ Nom, tapez NorthwindModel, puis cliquez sur Ajouter.
L'Assistant Entity Data Model s'affiche.
Dans l'Assistant Entity Data Model, sélectionnez Générer à partir de la base de données puis cliquez sur Suivant.
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.
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.
[!REMARQUE]
Si une boîte de dialogue s'affiche, cliquez sur Oui pour enregistrer le fichier dans votre projet.
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
Dans le menu Projet, cliquez sur Ajouter un nouvel élément.
Dans la boîte de dialogue Ajouter un nouvel élément, sélectionnez Web puis sélectionnez Services de données WCF.
Dans le champ Nom, tapez NorthwindCustomers, puis cliquez sur Ajouter.
Le fichier NorthwindCustomers.svc s'affiche dans l'éditeur de code.
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>
[!REMARQUE]
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.
Remplacez les commentaires dans le gestionnaire d'événements InitializeService par le code suivant :
config.SetEntitySetAccessRule("*", EntitySetRights.All)
config.SetEntitySetAccessRule("*", EntitySetRights.All);
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.
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.
[!REMARQUE]
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.
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
Dans le menu Fichier.de Visual Studio, cliquez sur Ajouter, puis cliquez sur Nouveau projet.
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.
Dans le champ Nom, tapez NorthwindClient, puis cliquez sur OK pour ouvrir le projet.
Dans l'Explorateur de solutions, sélectionnez le projet NorthwindClient.
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.
Dans le menu Projet, cliquez sur Ajouter une référence de service.
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.
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
Dans le menu Données, cliquez sur Afficher les sources de données.
Dans la fenêtre Sources de données, cliquez sur Ajouter une nouvelle source de données.
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.
Sur la page Sélectionner l'objet que vous souhaitez lier, développez le nœud NorthwindClient, puis le nœud NorthwindClient.ServiceReference1.
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
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.
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;
[!REMARQUE]
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.
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.
Copiez l'URL à partir de la barre d'adresses d'Internet Explorer.
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.
Appuyez sur la touche 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
Dans l'Explorateur de solutions, double-cliquez sur Form1.vb ou Form1.cs pour afficher le Concepteur Windows Forms.
Faites glisser un contrôle TextBox et un contrôle Button, de la boîte à outils vers le formulaire.
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;
Dans le code précédent, remplacez https://localhost:14735/NorthwindCustomers.svc par l'URL du gestionnaire d'événements Form1_Load.
Appuyez sur la touche F5 pour exécuter l’application.
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