Services Windows Communication Foundation et services de données WCF dans Visual Studio

Visual Studio 2008 fournit des outils pour l'utilisation de Windows Communication Foundation (WCF) et d'Services de données WCF, des technologies Microsoft pour la création d'applications distribuées. Cette rubrique fournit une introduction aux services du point de vue de Visual Studio.

Qu'est-ce que WCF ?

Windows Communication Foundation (WCF) est une infrastructure unifiée de création d'applications distribuées interopérables sécurisées, fiables et traitées. Dans les versions antérieures de Visual Studio, plusieurs technologies pouvaient être utilisées pour communiquer entre les applications.

Pour partager les informations de manière à les rendre accessibles à partir de n'importe quelle plateforme, vous utiliserez un service Web (également appelé service Web ASMX). Pour déplacer uniquement les données exécutées sur le système d'exploitation Windows entre un client et un serveur, vous utiliserez .NET Remoting. Pour obtenir des communications traitées, vous utiliserez Enterprise Services (DCOM) ou, pour obtenir un modèle de file d'attente, vous utiliserez Message Queuing (également appelé MSMQ).

WCF réunit les fonctionnalités de toutes ces technologies dans un modèle de programmation unifié. Cela simplifie le développement des applications distribuées.

Que sont les services de données WCF ?

Les services d'Services de données WCF interagissent directement avec une base de données, ce qui vous permet de retourner des données à l'aide de verbes HTTP standard tels que GET, POST, PUT ou DELETE. En général, Services de données WCF constitue un bon choix pour les applications utilisées pour créer, mettre à jour ou supprimer des enregistrements dans une base de données. Pour plus d'informations, consultez ADO.NET Data Services Framework.

Modèle de programmation WCF

Le modèle de programmation WCF est basé sur la communication entre deux entités : un service WCF et un client WCF. Le modèle de programmation est encapsulé dans l'espace de noms System.ServiceModel dans le .NET Framework.

Service WCF

Un service WCF est basé sur une interface qui définit un contrat entre le service et le client. Il est marqué avec un attribut ServiceContractAttribute, comme illustré dans le code suivant :

<ServiceContract()>
Public Interface IService1
[ServiceContract]
public interface IService1
<OperationContract()>
Function GetData(ByVal value As String) As String
[OperationContract]
string GetData(string value);

Vous définissez les fonctions ou les méthodes exposées par un service WCF en les marquant avec un attribut OperationContractAttribute. En outre, vous pouvez exposer les données sérialisées en marquant un type composite avec un attribut DataContractAttribute. Cela active la liaison de données dans un client.

Une fois l'interface et ses méthodes définies, elles sont encapsulées dans une classe qui implémente l'interface. Une seule classe de service WCF peut implémenter plusieurs contrats de service.

Un service WCF est utilisé via ce que l'on appelle un point de terminaison. Le point de terminaison fournit le seul moyen de communication avec le service ; vous ne pouvez pas accéder au service via une référence directe comme avec les autres classes.

Un point de terminaison se compose d'une adresse, d'une liaison et d'un contrat. L'adresse définit l'emplacement du service ; cela peut être une URL, une adresse FTP ou un chemin d'accès réseau ou local. Une liaison définit la façon dont vous communiquez avec le service. Les liaisons WCF fournissent un modèle polyvalent pour spécifier un protocole tel qu'HTTP ou FTP, un mécanisme de sécurité tel que l'authentification Windows ou des noms d'utilisateurs et des mots de passe, etc. Un contrat inclut les opérations exposées par la classe de service WCF.

Plusieurs points de terminaison peuvent être exposés pour un seul service WCF. Cela permet aux différents clients de communiquer avec le même service de plusieurs façons. Par exemple, un service bancaire peut fournir un point de terminaison pour les employés et un autre point pour les clients externes, chacun utilisant une adresse, une liaison et/ou un contrat différents.

Client WCF

Un client WCF se compose d'un proxy qui permet à une application de communiquer avec un service WCF et d'un point de terminaison qui correspond à un point de terminaison défini pour le service. Le proxy est généré côté client dans le fichier app.config et inclut des informations sur les types et les méthodes exposés par le service. Pour les services qui exposent plusieurs points de terminaison, le client peut sélectionner celui qui correspond le mieux à ses besoins, par exemple, pour communiquer sur HTTP et utiliser l'authentification Windows.

Après avoir créé un client WCF, vous référencez le service dans votre code comme vous le feriez pour n'importe quel autre objet. Par exemple, pour appeler la méthode GetData présentée précédemment, écrivez un code similaire au code suivant :

  Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
      Dim client As New ServiceReference1.Service1Client
      Dim returnString As String

      returnString = client.GetData(TextBox1.Text)
      Label1.Text = returnString
  End Sub
private void button1_Click(System.Object sender, System.EventArgs e)
{
    ServiceReference1.Service1Client client = new
        ServiceReference1.Service1Client();
    string returnString;

    returnString = client.GetData(textBox1.Text);
    label1.Text = returnString;
}

Outils WCF dans Visual Studio

Visual Studio 2008 fournit des outils pour vous aider à créer des services WCF et des clients WCF. Pour obtenir une procédure pas à pas illustrant les outils, consultez Procédure pas à pas : création et utilisation des services WCF.

Création et test de services WCF

Vous pouvez utiliser les modèles Visual Studio WCF comme base pour créer rapidement votre propre service. Vous pouvez ensuite utiliser l'hôte de service WCF et le client test WCF pour déboguer et tester le service. Ces outils fournissent ensemble un cycle de test et de débogage rapide et pratique et éliminent la nécessité de valider un modèle d'hébergement lors d'une phase préliminaire.

Modèles WCF

Les modèles Visual Studio WCF fournissent une structure de classe de base pour le développement du service. Plusieurs modèles WCF sont disponibles dans la boîte de dialogue Ajouter un nouveau projet. Ceux-ci incluent des modèles de projet de la Bibliothèque de services WCF, de sites Web de service WCF et d'éléments de service WCF.

Lorsque vous sélectionnez un modèle, les fichiers sont ajoutés pour un contrat de service, une implémentation de service et une configuration de service. Tous les attributs nécessaires sont déjà ajoutés, ce qui crée un type de service simple « Hello World », sans avoir à écrire de code. Vous souhaiterez évidemment ajouter du code pour fournir des fonctions et des méthodes pour votre service réaliste, mais les modèles fournissent la fondation de base.

Pour plus d'informations sur les modèles WCF, consultez WCF Visual Studio Templates.

Hôte de service WCF

Lorsque vous démarrez le débogueur Visual Studio (en appuyant sur F5) pour un projet de service WCF, l'outil Hôte de service WCF est démarré automatiquement pour héberger le service localement. L'hôte de service WCF énumère les services dans un projet de service WCF, charge la configuration du projet et instancie un hôte pour chaque service trouvé.

À l'aide de l'hôte de service WCF, vous pouvez tester un service WCF sans écrire de code supplémentaire ou valider un hôte spécifique au cours du développement.

Pour plus d'informations sur l'hôte de service WCF, consultez WCF Service Host (WcfSvcHost.exe).

Client test WCF

L'outil Client test WCF vous permet d'entrer des paramètres de test, de soumettre cette entrée à un service WCF et de consulter la réponse renvoyée par le service. Il fournit une expérience de test de service pratique lorsque vous le combinez avec l'hôte de service WCF.

Lorsque vous appuyez sur F5 pour déboguer un projet de service WCF, le client test WCF s'ouvre et affiche la liste des points de terminaison de service définis dans le fichier de configuration. Vous pouvez tester les paramètres et démarrer le service, et répéter ce processus pour tester et valider en continu votre service.

Pour plus d'informations sur le client test WCF, consultez WCF Test Client (WcfTestClient.exe).

Accès aux services WCF dans Visual Studio

Visual Studio 2008 simplifie la tâche de création des clients WCF, en générant automatiquement un proxy et un point de terminaison pour les services que vous ajoutez à l'aide de la boîte de dialogue Ajouter une référence de service. Toutes les informations de configuration nécessaires sont ajoutées au fichier app.config. Le plus souvent, tout ce que vous avez à faire consiste à instancier le service pour l'utiliser.

La boîte de dialogue Ajouter une référence de service vous permet d'entrer l'adresse pour un service ou de rechercher un service défini dans votre solution. La boîte de dialogue retourne une liste de services et les opérations fournies par ces services. Elle vous permet également de définir l'espace de noms de référence des services dans le code.

La boîte de dialogue Configurer les références de service vous permet de personnaliser la configuration pour un service. Vous pouvez modifier l'adresse pour un service, spécifier le niveau d'accès, le comportement asynchrone et les types de contrats de message, et configurer la réutilisation du type.

Rubriques connexes

Titre

Description

Procédure pas à pas : création et utilisation des services WCF

Fournit une démonstration pas à pas de la création et de l'utilisation de services WCF dans Visual Studio.

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

Fournit une démonstration pas à pas de la création et de l'utilisation d'Services de données WCF dans Visual Studio.

Using the WCF Development Tools

Explique comment créer et tester des services WCF dans Visual Studio.

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

Décrit comment ajouter, mettre à jour ou supprimer des services WCF d'un projet.

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

Explique comment référencer et utiliser Services de données WCF dans Visual Studio.

Comment : ajouter une référence à un service Web

Décrit comment ajouter une référence à un service Web XML (ASMX) dans un projet.

Comment : sélectionner un point de terminaison de service

Décrit comment sélectionner un point de terminaison pour un service WCF qui expose plusieurs points de terminaison.

Comment : appeler une méthode de service de manière asynchrone

Décrit comment appeler un service WCF de façon asynchrone.

Comment : lier des données retournées par un service

Décrit comment activer la liaison de données vers un service WCF.

Comment : configurer un service pour réutiliser des types existants

Décrit comment activer ou désactiver le partage de type pour un service WCF.

Dépannage des références de service

Présente certaines erreurs courantes qui peuvent se produire avec les références de service et la façon de les éviter.

Débogage de services WCF

Décrit les problèmes et les techniques de débogage courants que vous pouvez rencontrer lors du débogage de services WCF.

Vue d'ensemble du service d'authentification de Windows Communication Foundation

Décrit l'utilisation de WCF pour fournir un service de rôle pour un site Web.

Messaging in the .NET Compact Framework

Décrit la prise en charge de la couche de messagerie WCF du .NET Compact Framework.

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

Fournit des instructions détaillées sur la création d'un groupe de données typé et la séparation du code du TableAdapter et du code du groupe de données en plusieurs projets.

Ajouter une référence de service, boîte de dialogue

Décrit les éléments de l'interface utilisateur de la boîte de dialogue Ajouter une référence de service.

Configurer la référence de service, boîte de dialogue

Décrit les éléments de l'interface utilisateur de la boîte de dialogue Configurer la référence de service.

Référence

System.ServiceModel

System.Data.Services