Présentation de Windows Communication Foundation

WCF (Windows Communication Foundation) est une infrastructure qui permet de générer des applications orientées vers les services. Avec WCF, vous pouvez envoyer des données sous forme de messages asynchrones d’un point de terminaison de service à un autre. Un point de terminaison de service peut faire partie d'un service disponible en continu et hébergé par IIS, ou il peut s'agir d'un service hébergé dans une application. Un point de terminaison peut être un client d'un service qui demande des données auprès d'un point de terminaison de service. Les messages peuvent être simplement constitués d'un caractère ou d'un mot unique envoyé au format XML, ou se présenter sous la forme d'un flux de données binaires plus complexe. Voici quelques exemples de scénarios :

  • Service sécurisé pour traiter des transactions commerciales.

  • Service qui fournit des données actuelles à d'autres services, comme un rapport sur le trafic ou tout autre service de surveillance.

  • Service de conversation qui permet à deux personnes de communiquer ou d'échanger des données en temps réel.

  • Application de tableau de bord qui interroge les données d'un ou de plusieurs services et les présente de manière logique.

  • Exposition d'un workflow implémenté à l'aide de Windows Workflow Foundation en tant que service WCF.

Si la création de telles applications était possible avant WCF, WCF simplifie le développement de points de terminaison comme jamais auparavant. En résumé, WCF est conçu de manière à offrir une approche gérable à la création de services web et de clients de services web.

gRPC comme alternative à WCF

gRPC est une infrastructure RPC moderne qui est une solution alternative populaire à WCF. gRPC est basé sur HTTP/2, ce qui offre un certain nombre d’avantages par rapport à WCF, notamment :

  • Performances : gRPC est beaucoup plus efficace que WCF, en particulier pour les connexions longues.
  • Scalabilité : gRPC est conçu pour s’adapter à un grand nombre de clients et de serveurs.
  • Sécurité : gRPC prend en charge divers mécanismes de sécurité, notamment TLS et l’authentification.
  • Multiplateforme : gRPC est indépendant des plateformes et peut être utilisé avec divers langages de programmation.

Pour plus d’informations sur le développement ou la migration d’applications WCF vers gRPC, consultez :

Fonctions de WCF

WCF comprend l’ensemble de fonctionnalités suivant. Pour plus d’informations, consultez Informations détaillées sur les fonctionnalités de WCF.

  • Orientation services

    L’une des conséquences de l’utilisation de normes WS est que WCF vous permet de créer des applications orientées services. L'architecture orientée services (SOA, Service-Oriented Architecture) dépend de services Web pour envoyer et recevoir des données. Les services présentent l'avantage d'être faiblement couplés, au lieu d'être encodés de manière irréversible d'une application à une autre. Une relation faiblement couplée implique que tout client créé sur une plate-forme peut se connecter à n'importe quel service, dans la mesure où les contrats essentiels sont respectés.

  • Interopérabilité

    WCF implémente les normes industrielles modernes pour l’interopérabilité des services web. Pour plus d’informations sur les normes prises en charge, consultez Interopérabilité et intégration.

  • Modèles de messages variés

    Les messages sont échangés selon l'un des différents modèles disponibles. Le modèle le plus courant est de type demande/réponse, dans lequel un point de terminaison demande des données auprès d'un second point de terminaison. Le second point de terminaison répond. Il existe d'autres modèles, comme un message unidirectionnel dans lequel un seul point de terminaison envoie un message sans attendre de réponse. Le modèle d'échange en duplex constitue un modèle plus complexe dans la mesure où deux points de terminaison établissent une connexion et envoient des données de part et d'autre, à la manière d'un programme de messagerie instantanée. Pour plus d’informations sur l’implémentation de différents modèles d’échange de messages à l’aide de WCF, consultez Contrats.

  • Métadonnées de service

    WCF prend en charge la publication de métadonnées de service à l’aide de formats spécifiés dans les normes industrielles, tels que WSDL, les schémas XML et WS-Policy. Ces métadonnées peuvent être utilisées pour générer et configurer automatiquement des clients en vue de l’accès à des services WCF. Les métadonnées peuvent être publiées via HTTP et HTTPS ou à l'aide de la norme d'échange de métadonnées de service Web. Pour plus d’informations, consultez Métadonnées.

  • Contrats de données

    Étant donné que WCF repose sur le .NET Framework, il offre également des méthodes faciles à coder pour fournir les contrats que vous souhaitez appliquer. Le contrat de données représente l'un des types universels de contrats. Par nature, lorsque vous codez votre service à l'aide de Visual C# ou de Visual Basic, la méthode la plus simple de gérer les données consiste à créer des classes qui représentent une entité de données dotée de propriétés. WCF inclut un système complet permettant d’utiliser les données aisément grâce à cette méthode. Une fois que vous avez créé les classes qui représentent les données, votre service génère automatiquement les métadonnées qui permettent aux clients de se conformer aux types de données que vous avez conçus. Pour plus d’informations, consultez Utilisation de contrat de données.

  • Sécurité

    Les messages peuvent être chiffrés afin de protéger la confidentialité. Par ailleurs, vous pouvez demander aux utilisateurs de s'authentifier avant de pouvoir recevoir des messages. La sécurité peut être implémentée à l'aide de normes célèbres, telles que SSL ou WS-SecureConversation. Pour plus d’informations, consultez Sécurité.

  • Transports et encodages variés

    Les messages peuvent être envoyés via l'un des différents encodages et protocoles de transport intégrés. Le protocole et encodage le plus courant consiste à envoyer des messages SOAP à encodage texte avec le protocole HTTP (HyperText Transfer Protocol) en vue d’une utilisation sur le World Wide Web. En guise d’alternative, WCF vous permet d’envoyer des messages via TCP, des canaux nommés ou MSMQ. Ces messages peuvent être encodés en tant que texte ou à l'aide d'un format binaire optimisé. Les données binaires peuvent être envoyées efficacement à l'aide de la norme MTOM. Si aucun des transports ou encodages fournis ne convient à vos besoins, vous avez la possibilité de créer votre propre encodage ou transport personnalisé. Pour plus d’informations sur les transports et les encodages pris en charge par WCF, consultez Transports.

  • Messages fiables et mis en file d'attente

    WCF prend en charge l’échange de messages fiables à l’aide de sessions fiables implémentées via WS-Reliable Messaging et MSMQ. Pour plus d’informations sur la prise en charge de la messagerie mise en file d’attente et fiable dans WCF, consultez Files d’attente et sessions fiables.

  • Messages durables

    Un message durable est un message qui n'est jamais perdu suite à une interruption de la communication. Les messages conformes au modèle de message durable sont toujours enregistrés dans une base de données. En cas d'interruption, la base de données vous permet de reprendre l'échange de messages une fois la connexion restaurée. Vous pouvez également créer un message durable à l’aide de Windows WF (Workflow Foundation). Pour plus d’informations, consultez Services de workflow.

  • Transactions

    WCF prend également en charge les transactions à l’aide de trois modèles de transaction : WS-AtomicTransactions, les API dans l’espace de noms System.Transactions et MSDTC (Microsoft Distributed Transaction Coordinator). Pour plus d’informations sur la prise en charge des transactions dans WCF, consultez Transactions.

  • Prise en charge d'AJAX et de REST

    REST est un exemple d'une technologie évoluant vers le Web 2.0. WCF peut être configuré pour traiter des données XML « brutes » qui ne sont pas encapsulées dans une enveloppe SOAP. WCF peut être étendu pour prendre en charge des formats XML spécifiques, tels qu’ATOM (une norme populaire RSS), et même des formats non XML tels que JSON (JavaScript Object Notation).

  • Extensibilité

    L’architecture WCF comporte un certain nombre de points d’extensibilité. Si une capacité supplémentaire est requise, il existe un certain nombre de points d'entrée qui vous permettent de personnaliser le comportement d'un service. Pour plus d’informations sur les points d’extensibilité disponibles, consultez Extension de WCF.

Intégration WCF avec d'autres technologies Microsoft

WCF est une plateforme flexible. Grâce à son extrême flexibilité, WCF est également utilisé dans plusieurs autres produits Microsoft. Si vous maîtrisez les bases de WCF, vous bénéficiez d’un avantage immédiat lorsque vous utilisez également l’un de ces produits.

La première technologie associée à WCF a été Windows WF (Workflow Foundation). Les workflows simplifient le développement d’applications en encapsulant les étapes du workflow sous la forme d’« activités ». Dans la première version de Windows Workflow Foundation, un développeur devait créer un hôte pour le workflow. La version suivante de Windows Workflow Foundation était intégrée à WCF. Cela permettait à n’importe quel workflow d’être facilement hébergé dans un service WCF. Vous pouvez pour cela choisir automatiquement le type de projet WF/WCF dans Visual Studio 2012 ou version ultérieure.

Microsoft BizTalk Server R2 utilise également WCF comme technologie de communication. BizTalk a été conçu pour recevoir et transformer des données d'un format standardisé en un autre. Les messages doivent être remis dans leur boîte de message centrale, où ils peuvent être transformés suivant un mappage strict ou à l'aide de l'une des fonctionnalités BizTalk, telles que le moteur de workflow. BizTalk peut désormais utiliser l’adaptateur LOB (Line of Business) de WCF pour remettre les messages à la boîte de message.

Les fonctionnalités d’hébergement du serveur d’applications Windows Server AppFabric sont spécifiquement conçues pour déployer et gérer des applications qui utilisent WCF pour la communication. Les fonctionnalités d’hébergement incluent des options de configuration et d’outillage enrichies, conçues spécifiquement pour les applications compatibles avec WCF.

Voir aussi