.net Core Wcf Service Example

5 min read Jun 03, 2024
.net Core Wcf Service Example

Créer un service WCF avec .NET Core : Un exemple simple

Introduction

Windows Communication Foundation (WCF) est une technologie puissante qui permet de créer des services web robustes et interopérables. Bien que WCF ait été principalement conçu pour .NET Framework, il est maintenant possible de l'utiliser avec .NET Core grâce à l'utilisation du package NuGet Microsoft.AspNetCore.Hosting.WindowsServices.

Dans cet article, nous allons vous guider à travers la création d'un service WCF simple avec .NET Core, en illustrant les étapes clés et en fournissant un exemple pratique.

Configuration du projet

  1. Création d'un projet .NET Core: Commencez par créer un nouveau projet .NET Core en utilisant Visual Studio ou l'interface de ligne de commande (CLI). Sélectionnez le modèle "Application Web ASP.NET Core".

  2. Installation du package WCF: Ajoutez le package NuGet Microsoft.AspNetCore.Hosting.WindowsServices à votre projet. Cela vous permettra d'héberger votre service WCF dans un processus Windows.

  3. Création de l'interface de service: Définissez une interface pour votre service WCF, en utilisant l'attribut [ServiceContract]. Cette interface décrira les opérations que votre service offrira.

Exemple:

using System.ServiceModel;

[ServiceContract]
public interface ICalculator
{
    [OperationContract]
    int Add(int a, int b);
}
  1. Implémentation du service: Créez une classe qui implémente l'interface de service et les méthodes définies.

Exemple:

using System.ServiceModel;

public class CalculatorService : ICalculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }
}
  1. Configuration de l'hôte WCF: Utilisez la classe ServiceHost pour configurer votre service WCF et spécifiez l'adresse de base et le type de liaison.

Exemple:

using System.ServiceModel;

public class Program
{
    public static void Main(string[] args)
    {
        // Création de l'hôte du service
        using var host = new ServiceHost(typeof(CalculatorService), new Uri("http://localhost:8080/CalculatorService"));

        // Ajout de la liaison WSHttpBinding
        host.AddServiceEndpoint(typeof(ICalculator), new WSHttpBinding(), "CalculatorService");

        // Démarrage du service
        host.Open();

        Console.WriteLine("Le service WCF est en cours d'exécution. Appuyez sur Entrée pour arrêter.");
        Console.ReadLine();
    }
}

Utilisation du service WCF

Une fois le service WCF configuré et en cours d'exécution, vous pouvez l'utiliser depuis un client. Vous pouvez utiliser un outil comme svcutil.exe pour générer des classes proxy pour votre service, ou bien vous pouvez utiliser des appels de service directs en utilisant des bibliothèques WCF.

Exemple de client:

using System;
using System.ServiceModel;

public class Client
{
    public static void Main(string[] args)
    {
        // Création d'un proxy du service
        using var client = new ChannelFactory(new WSHttpBinding(), new EndpointAddress("http://localhost:8080/CalculatorService"));
        var channel = client.CreateChannel();

        // Appel de l'opération de service
        int result = channel.Add(5, 3);

        // Affichage du résultat
        Console.WriteLine($"5 + 3 = {result}");
    }
}

Conclusion

En utilisant les packages appropriés et en suivant les étapes décrites ci-dessus, vous pouvez facilement créer et utiliser des services WCF avec .NET Core. Cet exemple simple vous a montré comment configurer un service WCF et comment l'utiliser depuis un client.

Conseils supplémentaires:

  • Utilisez des liaisons WCF appropriées pour garantir la sécurité et la fiabilité de votre service.
  • Documentez vos services WCF pour faciliter leur utilisation.
  • Utilisez un outil d'hébergement comme IIS ou Kestrel pour héberger votre service WCF.
  • Utilisez des tests unitaires pour garantir le bon fonctionnement de votre service.

En vous appuyant sur ces conseils, vous pouvez construire des applications WCF robustes et performantes avec .NET Core.

Related Post


Featured Posts