RSS

Tutorial WCF avec C# – Framework 4

15 Juin

Création d’un service WCF en CSHARP.

Lancer Visual Studio 10.

Création du service WCF

Créer un nouveau projet de type “WCF Service Library “ de nom WcfServiceLibrary.

image

Ce modèle de projet effectue les opérations suivantes  par rapport à une “Class Library” classique :

  • Créer les fichiers IService1.cs et Service1.cs et App.config.
  • Ajoute les références System.Runtime.Serialization et System.ServiceModel.
  • Ajoute les “usingsuivants
    using System.Runtime.Serialization;
    using System.ServiceModel;
    
  • Ajoute une “Option de démarrage”/client:”WcfTestClient.exe”image

Code de IService1.cs.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace WcfServiceLibrary
{
    // REMARQUE : vous pouvez utiliser la commande Renommer du menu Refactoriser pour changer le nom de classe "Service1" à la fois dans le code et le fichier de configuration.
    public class Service1 : IService1
    {
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }

        public CompositeType GetDataUsingDataContract(CompositeType composite)
        {
            if (composite == null)
            {
                throw new ArgumentNullException("composite");
            }
            if (composite.BoolValue)
            {
                composite.StringValue += "Suffix";
            }
            return composite;
        }

    }
}

Code de Service1.cs.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace WcfServiceLibrary
{
    // REMARQUE : vous pouvez utiliser la commande Renommer du menu Refactoriser pour changer le nom de classe "Service1" à la fois dans le code et le fichier de configuration.
    public class Service1 : IService1
    {
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }

        public CompositeType GetDataUsingDataContract(CompositeType composite)
        {
            if (composite == null)
            {
                throw new ArgumentNullException("composite");
            }
            if (composite.BoolValue)
            {
                composite.StringValue += "Suffix";
            }
            return composite;
        }

    }
}

Code de App.config.

<?xml version="1.0" encoding="utf-8" ?>

  <!-- Lors du déploiement du projet de bibliothèque du service, le contenu du fichier de configuration doit être ajouté au fichier app.config     de l'hôte. System.Configuration ne prend pas en charge les fichiers de configuration pour les bibliothèques. -->

          <!-- Pour éviter la divulgation des informations sur les métadonnées,            définissez la valeur ci-dessous sur false et supprimez le point de terminaison des métadonnées ci-dessus avant le déploiement -->

          <!-- Pour recevoir les détails d'exception des erreurs à des fins de débogage,            définissez la valeur ci-dessous sur true.  Définissez-la sur false avant le déploiement            pour éviter la divulgation des informations d'exception -->

Test du service Service1.

Sélectionner le projet WcfServiceLibrary puis CTL-F5.

image

Double cliquer sur la méthode GetData() et entrer une valeur (ici 2011) puis Appeler.

image

Ajouter le contrat ICalculator et son implémentation ServiceCalculator.

image

Code de ICalculator.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace WcfServiceLibrary
{
    // REMARQUE : vous pouvez utiliser la commande Renommer du menu Refactoriser pour changer le nom d'interface "IService1" à la fois dans le code et le fichier de configuration.
    [ServiceContract]
    public interface ICalculator
    {
        [OperationContract]
        double Add(double op1, double op2);

        [OperationContract]
        double Substract(double op1, double op2);

        [OperationContract]
        double Multiply(double op1, double op2);

        [OperationContract]
        double Divide(double op1, double op2);

    }
}

Code de ServiceCalculator.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace WcfServiceLibrary
{
    // REMARQUE : vous pouvez utiliser la commande Renommer du menu Refactoriser pour changer le nom de classe "Service1" à la fois dans le code et le fichier de configuration.
    public class ServiceCalculator : ICalculator
    {
        public double Add(double op1, double op2)
        {
            return op1 + op2;
        }

        public double Substract(double op1, double op2)
        {
            return op1 - op2;
        }

        public double Multiply(double op1, double op2)
        {
            return op1 * op2;
        }

        public double Divide(double op1, double op2)
        {
            return op1 / op2;
        }

    }
}

Code de App.config

<?xml version="1.0" encoding="utf-8" ?>

  <!-- Lors du déploiement du projet de bibliothèque du service, le contenu du fichier de configuration doit être ajouté au fichier app.config     de l'hôte. System.Configuration ne prend pas en charge les fichiers de configuration pour les bibliothèques. -->

          <!-- Pour éviter la divulgation des informations sur les métadonnées,            définissez la valeur ci-dessous sur false et supprimez le point de terminaison des métadonnées ci-dessus avant le déploiement -->

          <!-- Pour recevoir les détails d'exception des erreurs à des fins de débogage,            définissez la valeur ci-dessous sur true.  Définissez-la sur false avant le déploiement            pour éviter la divulgation des informations d'exception -->

Test du service ServiceCalculator.

Sélectionner le projet WcfServiceLibrary puis CTL-F5.

image

Relancer VisualStudio 2010 en tant qu’administrateur et exécuter à nouveau l’opération précédente.

image

Hébergement du Service

// TODO

Publicités
 
Poster un commentaire

Publié par le 15 juin 2011 dans Développement

 

Étiquettes : , ,

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

 
%d blogueurs aiment cette page :