Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout

Étape 2 : définir un contrat de service WCF à utiliser avec Service Bus

Mis à jour: juillet 2015

Voici la deuxième des sept tâches requises pour la création d'un service Windows Communication Foundation (WCF) de base, et d'un client qui peut appeler le service utilisant le Microsoft Azure Service Bus. Pour obtenir une vue d'ensemble de toutes les tâches, consultez Didacticiel sur la messagerie relayée de Service Bus. L'étape précédente est l'Étape 1 : ouvrir un compte, et l'étape suivante est l'Étape 3 : implémenter le contrat WCF pour utiliser Service Bus.

Lors de la création d'un service WCF de base (que ce soit ou non pour le Service Bus), vous devez définir le contrat de service, qui spécifie les opérations (selon la terminologie de service web pour les méthodes ou les fonctions) que le service prend en charge. Les contrats sont créés en définissant une interface C++, C#, ou Visual Basic. Ce didacticiel montre comment créer ce type de contrat à l'aide de C#. Dans l'interface, chaque méthode correspond à une opération de service spécifique. L'attribut ServiceContractAttribute doit être appliqué sur chaque interface, et le OperationContractAttribute doit être appliqué sur chaque opération. Si une méthode dans une interface qui a l'attribut ServiceContractAttribute n'a pas l'attribut OperationContractAttribute, cette méthode n'est pas exposée. Le code pour ces tâches est fourni dans l'exemple suivant la procédure. Pour plus d'informations sur la définition d'un contrat, consultez Conception d'un contrat WCF pour Service Bus. Pour une présentation plus large des contrats et services, consultez la rubrique Designing and Implementing Services de la documentation WCF.

Durée estimée : 10 minutes.

  1. Ouvrez Visual Studio 2012 en tant qu'administrateur en cliquant avec le bouton droit sur le programme dans le menu Démarrer et en sélectionnant Exécuter en tant qu'administrateur.

  2. Créez un projet d'application console. Cliquez sur le menu Fichier et sélectionnez Nouveau, puis cliquez sur Projet. Dans la boîte de dialogue Nouveau projet, cliquez sur Visual C# (si Visual C# n'apparaît pas, regardez dans Autres langages), cliquez sur le modèle Application console et nommez-le EchoService. Utilisez l'emplacement par défaut. Cliquez sur OK pour créer le projet.

  3. Notez que les deux étapes suivantes (4 et 5) ne sont pas nécessaires si vous exécutez Visual Studio 2008.

  4. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom de votre projet (dans cet exemple, EchoService), puis cliquez sur Propriétés.

  5. Cliquez sur l'onglet Application situé à gauche, puis sélectionnez .NET Framework 4 à partir du menu déroulant Infrastructure cible : . Cliquez sur Oui lorsque vous êtes invité à recharger le projet.

  6. Pour un projet C#, Visual Studio crée un fichier nommé Program.cs. Cette classe contiendra une méthode vide appelée Main(). Cette méthode est nécessaire pour qu'un projet d'application de console se génère correctement. Par conséquent, vous pouvez la laisser en toute sécurité dans le projet.

  7. Ajoutez une référence à System.ServiceModel.dll au projet :

    1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le dossier Références, sous le dossier du projet, puis cliquez sur Ajouter une référence….

    2. Sélectionnez l'onglet .NET dans la boîte de dialogue Ajouter une référence et faites défiler vers le bas jusqu'à ce que vous trouviez System.ServiceModel, sélectionnez ce fichier et cliquez sur OK.

  8. Dans l'Explorateur de solutions, double-cliquez sur le fichier Program.cs pour l'ouvrir dans l'éditeur.

  9. Ajoutez une instruction using pour l'espace de noms System.ServiceModel.

    using System.ServiceModel;
    

    System.ServiceModel est l'espace de noms qui vous permet d'accéder par programme aux fonctionnalités de base de WCF. Service Bus utilise un grand nombre d'objets et d'attributs de WCF pour définir les contrats de service. Vous serez susceptible d'utiliser cet espace de noms dans la plupart de vos applications Service Bus.

  10. Remplacez le nom d'espace de noms par défaut EchoService par Microsoft.ServiceBus.Samples.

    ImportantImportant
    Ce didacticiel utilise l'espace de noms C# Microsoft.ServiceBus.Samples, qui est l'espace de noms du type managé du contrat, utilisé dans le fichier de configuration dans Étape 6 : configurer le client WCF. Vous pouvez spécifier l'espace de noms que vous souhaitez lorsque vous générez cet exemple ; cependant, ce didacticiel ne fonctionnera pas sauf si vous modifiez les espaces de noms du contrat et du service en fonction, dans le fichier de configuration de l'application. L'espace de noms spécifié dans le fichier App.config doit être le même que celui spécifié dans vos fichiers C#.

  11. Directement après la déclaration d'espace de noms Microsoft.ServiceBus.Samples, mais dans l'espace de noms, définissez une nouvelle interface nommée IEchoContract et appliquez l'attribut ServiceContractAttribute à l'interface avec la valeur d'espace de noms de http://samples.microsoft.com/ServiceModel/Relay/. La valeur de l'espace de noms est différente de l'espace de noms que vous utilisez dans le cadre de votre code. À la place, la valeur de l'espace de noms est utilisée comme identificateur unique pour ce contrat. La spécification de l'espace de noms évite explicitement à la valeur par défaut de l'espace de noms d'être ajoutée au nom de contrat.

    [ServiceContract(Name = "IEchoContract", Namespace = "http://samples.microsoft.com/ServiceModel/Relay/")]
    public interface IEchoContract
    {
    }
    
    
    noteRemarque
    Généralement, l'espace de noms du contrat de service contient un schéma de nom qui inclut les informations de version. Inclure les informations de version dans l'espace de noms du contrat de service permet aux services d'isoler les modifications majeures en définissant un nouveau contrat de service avec un nouvel espace de noms et de l'exposer sur un nouveau point de terminaison. Ainsi, les clients peuvent continuer à utiliser l'ancien contrat de service sans avoir à être mis à jour. Les informations de version peuvent être composées d'une date ou d'un numéro de compilation. Pour plus d'informations, consultez Versions de service. Dans le cadre de ce didacticiel, le schéma de nom de l'espace de noms du contrat de service ne contient pas d'informations de version.

  12. Dans l'interface IEchoContract, déclarez une méthode pour une seule opération que le contrat IEchoContract expose dans l'interface et appliquez l'attribut OperationContractAttribute à la méthode que vous souhaitez exposer dans le cadre du contrat Service Bus public.

    [OperationContract]
    string Echo(string text);
    
  13. À l'extérieur du contrat, déclarez un canal qui hérite de IEchoChannel et de l'interface IClientChannel, comme indiqué ici :

    
    
        [ServiceContract(Name = "IEchoContract", Namespace = "http://samples.microsoft.com/ServiceModel/Relay/")]
        public interface IEchoContract
        {
            [OperationContract]
            String Echo(string text);
        }
    
        public interface IEchoChannel : IEchoContract, IClientChannel { }
    
    

    Un canal est l'objet WCF via lequel l'hôte et le client se transmettent des informations. Vous écrirez ultérieurement le code par rapport au canal qui permettra de répercuter les informations entre les deux applications.

  14. Dans le menu Générer, cliquez sur Générer la solution, ou appuyez sur F6 pour vérifier la précision de votre travail.

Exemple

L'exemple de code suivant montre une interface de base qui définit un contrat Service Bus.

using System;
using System.ServiceModel;

namespace Microsoft.ServiceBus.Samples
{
    [ServiceContract(Name = "IEchoContract", Namespace = "http://samples.microsoft.com/ServiceModel/Relay/")]
    public interface IEchoContract
    {
        [OperationContract]
        String Echo(string text);
    }

    public interface IEchoChannel : IEchoContract, IClientChannel { }


    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}

Maintenant que l'interface est créée, vous pouvez implémenter l'interface, comme décrit dans Étape 3 : implémenter le contrat WCF pour utiliser Service Bus.

Afficher:
© 2015 Microsoft