Walkthrough: Creating and Accessing a WCF Data Service in Visual Studio
Date de publication : juin 2016
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 une 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 depuis le Centre de téléchargement Microsoft. Pour obtenir des instructions, consultez Téléchargement d'exemples de bases de données.
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 pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués 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 Personnalisation de l'IDE.
Pour créer le projet Web
Dans la barre de menus, sélectionnez Fichier, Nouveau, Projet.
Dans la boîte de dialogue Nouveau projet, développez les nœuds Visual Basic ou Visual C# et Web, puis choisissez le modèle Application Web ASP.NET.
Dans la zone de texte Nom, entrez NorthwindWeb, puis choisissez le bouton OK.
Dans la boîte de dialogue Nouveau projet ASP.NET, dans la liste Sélectionner un modèle, choisissez Vide, puis le bouton OK.
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 la barre de menus, choisissez Projet, Ajouter un nouvel élément.
Dans la boîte de dialogue Ajouter un nouvel élément, choisissez le nœud Données, puis l'élément Modèle de données d'entité ADO.NET.
Dans la zone de texte Nom, entrez
NorthwindModel
, puis choisissez le bouton Ajouter.L'Assistant Entity Data Model s'affiche.
Dans l'Assistant EDM, dans la page Choisir le contenu du modèle, choisissez l'élément Concepteur EF de la base de données, puis cliquez sur le bouton 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, choisissez-la.
ou
Choisissez le bouton Nouvelle connexion pour configurer une nouvelle connexion de données. Pour plus d'informations, consultez Comment : créer des connexions à des bases de données SQL Server.
Si la base de données requiert un mot de passe, choisissez la case d'option Oui, inclure les données sensibles dans la chaîne de connexion., puis cliquez sur le bouton Suivant.
Notes
Si une boîte de dialogue s'affiche, choisissez Oui pour enregistrer le fichier dans votre projet.
Dans la page Choisir votre version, choisissez la case d'option Entity Framework 5.0, puis le bouton Suivant.
Notes
Pour pouvoir utiliser la dernière version d'Entity Framework 6 avec les services WCF, vous devez installer le package NuGet du fournisseur Entity Framework de services de données WCF. Voir Utilisation des services de données WCF 5.6.0 avec Entity Framework 6+.
Sur la page Choisir vos objets de base de données, développez le nœud Tables, cochez la case Customers, puis choisissez le bouton 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 la barre de menus, choisissez Projet, Ajouter un nouvel élément.
Dans la boîte de dialogue Ajouter un nouvel élément, choisissez le nœud Web, puis l'élément WCF Data Service 5.6.
Dans la zone de texte Nom, entrez
NorthwindCustomers
, puis choisissez le bouton 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 :public class NorthwindCustomers : DataService<northwindEntities>
Inherits DataService(Of northwindEntities)
Remplacez les commentaires dans le gestionnaire d'événements
InitializeService
par le code suivant :config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.SetEntitySetAccessRule("*", EntitySetRights.All)
Pour exécuter le service, dans la barre de menus, choisissez Exécuter sans débogage dans le menu Débogage. Une fenêtre de navigateur s'ouvre et le schéma XML pour le service s'affiche.
Dans la barre d'adresses, entrez
Customers
à la fin de l'URL de NorthwindCustomers.svc, puis appuyez sur la touche 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, voir Troubleshooting Service References.
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 la barre de menus, choisissez Fichier, Ajouter, Nouveau projet.
Dans la boîte de dialogue Nouveau projet, développez le nœud Visual Basic ou Visual C# et choisissez le nœud Windows, puis Application Windows Forms.
Dans la zone de texte Nom, entrez
NorthwindClient
, puis choisissez le bouton OK.Dans l'Explorateur de solutions, choisissez le nœud du projet NorthwindClient.
Dans la barre de menus, choisissez Projet, 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 la barre de menus, choisissez Projet, Ajouter une référence de service.
Dans la boîte de dialogue Ajouter une référence de service, choisissez le bouton Découvrir.
L'URL pour le service NorthwindCustomers s'affiche dans le champ d'adresses.
Choisissez le bouton OK pour ajouter la 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 la barre de menus, choisissez Afficher, Autres fenêtres, Sources de données.
Dans la fenêtre Sources de données, choisissez le bouton 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, choisissez Objet, puis cliquez sur le bouton Suivant.
Sur la page Sélectionner les objets de données, développez le nœud NorthwindClient, puis le nœud NorthwindClient.ServiceReference1.
Activez la case à cocher Client, puis choisissez le bouton 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
Dans la fenêtre Sources de données, ouvrez le menu contextuel pour le nœud Clients et choisissez Copier.
Dans le concepteur de formulaires Form1.vb ou Form1.cs, ouvrez le menu contextuel et choisissez Coller.
Un contrôle DataGridView, un composant BindingSource et un composant BindingNavigator sont ajoutés au formulaire.
Sélectionnez le contrôle CustomersDataGridView et, dans la fenêtre Propriétés, définissez la propriété Dock avec la valeur Remplissage.
Dans l'Explorateur de solutions, ouvrez le menu contextuel du nœud Form1 et choisissez Afficher le code pour ouvrir l'éditeur de code, puis ajoutez l'instruction Imports ou Using en haut du fichier :
Imports NorthwindClient.ServiceReference1
using NorthwindClient.ServiceReference1;
Ajoutez le code suivant au gestionnaire d'événements
Form1_Load
:Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim proxy As New NorthwindEntities _ (New Uri("https://localhost:53161/NorthwindCustomers.svc/")) Me.CustomersBindingSource.DataSource = proxy.Customers End Sub
private void Form1_Load(object sender, EventArgs e) { NorthwindEntities proxy = new NorthwindEntities(new Uri("https://localhost:53161/NorthwindCustomers.svc/")); this.CustomersBindingSource.DataSource = proxy.Customers; }
Dans l'Explorateur de solutions, ouvrez le menu contextuel du fichier NorthwindCustomers.svc et choisissez 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 4, sélectionnez
https://localhost:53161/NorthwindCustomers.svc/
et remplacez-le par l'URL que vous venez de copier.Dans la barre de menus, choisissez Déboguer, Démarrer le débogage pour exécuter l'application. Les informations client s'affichent.
Vous disposez désormais d'une application opérationnelle qui affiche 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, ouvrez le menu contextuel du nœud Form1.vb ou Form1.cs, puis choisissez Ouvrir.
Ajoutez un contrôle TextBox et Buttonau formulaire à partir de la Boîte à outils.
Ouvrez le menu contextuel du contrôle Button, choisissez Afficher le code, puis ajoutez le code suivant dans le gestionnaire d'événements
Button1_Click
:Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim proxy As New 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 End Sub
private void Button1_Click(object sender, EventArgs e) { ServiceReference1.northwindModel.northwindEntities proxy = new northwindEntities(new Uri("https://localhost:53161/NorthwindCustomers.svc")); string city = TextBox1.Text; if (!string.IsNullOrEmpty(city)) { this.CustomersBindingSource.DataSource = from c in proxy.Customers where c.City == city; } }
Dans le code précédent, remplacez
https://localhost:53161/NorthwindCustomers.svc
par l'URL du gestionnaire d'événementsForm1_Load
.Dans la barre de menus, choisissez Déboguer, Démarrer le débogage pour exécuter l'application.
Dans la zone de texte, tapez Londres, puis choisissez le bouton. Seuls les clients de Londres sont affichés.