Partager via


Présentation de Windows Communication Foundation

Windows Communication Foundation (WCF) est une infrastructure permettant de créer des applications orientées service. À l’aide de WCF, vous pouvez envoyer des données en tant que 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 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 à partir d’un point de terminaison de service. Les messages peuvent être aussi simples qu’un caractère unique ou un mot envoyé en tant que XML, ou aussi complexe qu’un flux de données binaires. Voici quelques exemples de scénarios :

  • Un service sécurisé pour traiter les transactions métier.

  • Service qui fournit des données actuelles à d’autres personnes, telles qu’un rapport de trafic ou un autre service de surveillance.

  • Un 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 un ou plusieurs services pour les données et les présente dans une présentation logique.

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

Bien que la création de ces applications ait été possible avant l’existence de WCF, WCF facilite le développement de points de terminaison que jamais. En résumé, WCF est conçu pour offrir une approche gérable pour créer des services Web et des clients de service web.

gRPC comme alternative à WCF

gRPC est une infrastructure RPC moderne qui est une alternative populaire à WCF. gRPC est basé sur HTTP/2, 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 neutre sur la plateforme 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 :

Fonctionnalités de WCF

WCF inclut l’ensemble de fonctionnalités suivant. Pour plus d’informations, consultez les détails des fonctionnalités WCF.

  • Service Orientation

    L’une des conséquences de l’utilisation de normes WS est que WCF vous permet de créer des applications orientées service . L’architecture orientée service (SOA) dépend des services Web pour envoyer et recevoir des données. Les services ont l’avantage général d’être faiblement couplés au lieu d’être codés en dur d’une application à un autre. Une relation faiblement couplée implique que tout client créé sur n’importe quelle plateforme peut se connecter à n’importe quel service tant que les contrats essentiels sont remplis.

  • Interopérabilité

    WCF implémente des 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 multiples

    Les messages sont échangés dans l’un des modèles suivants. Le modèle le plus courant est le modèle de demande/réponse, où un point de terminaison demande des données à partir d’un deuxième point de terminaison. Le deuxième point de terminaison répond. Il existe d’autres modèles tels qu’un message unidirectionnel dans lequel un point de terminaison unique envoie un message sans s’attendre à une réponse. Un modèle plus complexe est le modèle d’échange duplex où deux points de terminaison établissent une connexion et envoient des données de retour et de retour, similaires à 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 du secteur telles que WSDL, XML Schema et WS-Policy. Ces métadonnées peuvent être utilisées pour générer et configurer automatiquement des clients pour accéder aux services WCF. Les métadonnées peuvent être publiées via HTTP et HTTPS ou à l’aide de la norme Web Service Metadata Exchange. Pour plus d’informations, consultez Métadonnées.

  • Contrats de données

    Étant donné que WCF est créé à l’aide du .NET Framework, il inclut également des méthodes conviviales de code pour fournir les contrats que vous souhaitez appliquer. L’un des types universels de contrats est le contrat de données. En essence, lorsque vous codez votre service à l’aide de Visual C# ou Visual Basic, le moyen le plus simple de gérer les données consiste à créer des classes qui représentent une entité de données avec des propriétés appartenant à l’entité de données. WCF inclut un système complet pour l’utilisation des données de cette manière facile. Une fois que vous avez créé les classes qui représentent des 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 des contrats de données.

  • Sécurité

    Les messages peuvent être chiffrés pour protéger la confidentialité et vous pouvez exiger que les utilisateurs s’authentifient avant d’être autorisés à recevoir des messages. La sécurité peut être implémentée à l’aide de normes connues telles que SSL ou WS-SecureConversation. Pour plus d’informations, voir la section Sécurité.

  • Transports et encodages multiples

    Les messages peuvent être envoyés sur l’un des protocoles et encodages de transport intégrés. Le protocole et l’encodage les plus courants consiste à envoyer des messages SOAP codés en texte à l’aide du protocole HTTP (HyperText Transfer Protocol) à utiliser sur le World Wide Web. Vous pouvez également envoyer des messages via TCP, canaux nommés ou MSMQ. Ces messages peuvent être encodés sous forme de 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 correspond à vos besoins, vous pouvez créer votre propre transport ou encodage 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 fiable à l’aide de sessions fiables implémentées sur WS-Reliable Messaging et à l’aide de MSMQ. Pour plus d’informations sur la prise en charge de la messagerie fiable et mise en file d’attente dans WCF, consultez Files d’attente et Sessions fiables.

  • Messages durables

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

  • Transactions

    WCF prend également en charge les transactions à l’aide d’un des trois modèles de transaction : WS-AtomicTransactions, les API de l’espace System.Transactions de noms et 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 REST

    REST est un exemple de technologie Web 2.0 en constante évolution. WCF peut être configuré pour traiter des données XML « simples » qui ne sont pas encapsulées dans une enveloppe SOAP. WCF peut également être étendu pour prendre en charge des formats XML spécifiques, tels que ATOM (standard RSS populaire) et même des formats non XML, tels que JavaScript Object Notation (JSON).

  • Extensibilité

    L’architecture WCF a un certain nombre de points d’extensibilité. Si une fonctionnalité supplémentaire est requise, il existe plusieurs 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 de WCF à d’autres technologies Microsoft

WCF est une plateforme flexible. En raison de cette flexibilité extrême, WCF est également utilisé dans plusieurs autres produits Microsoft. En comprenant les principes de base de WCF, vous avez un avantage immédiat si vous utilisez également l’un de ces produits.

La première technologie à associer à WCF était windows Workflow Foundation (WF). Les flux de travail simplifient le développement d’applications en encapsulant les étapes du flux de travail en tant que « activités ». Dans la première version de Windows Workflow Foundation, un développeur a dû créer un hôte pour le flux de travail. La prochaine version de Windows Workflow Foundation a été intégrée à WCF. Cela a permis à tout flux de travail d’être facilement hébergé dans un service WCF. Pour ce faire, choisissez 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 est conçu pour recevoir et transformer des données d’un format standardisé à un autre. Les messages doivent être remis à sa boîte de message centrale où le message peut être transformé à l’aide d’un mappage strict ou à l’aide de l’une des fonctionnalités BizTalk telles que son moteur de flux de travail. BizTalk peut désormais utiliser l’adaptateur WCF Line of Business (LOB) pour remettre des 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 outils enrichis et des options de configuration spécifiquement conçues pour les applications compatibles WCF.

Voir aussi