Dans WCF, il existe différents types de liaisons basées sur HTTP:
Quelles sont les différences entre ces 3?
En particulier quelles sont les différences en termes de fonctionnalités / performances et de compatibilité?
Dans WCF, il existe différents types de liaisons basées sur HTTP:
Quelles sont les différences entre ces 3?
En particulier quelles sont les différences en termes de fonctionnalités / performances et de compatibilité?
Réponses:
Vous comparez des pommes à des oranges ici:
webHttpBinding est la liaison de style REST, où vous appuyez simplement sur une URL et récupérez un chargement de XML ou JSON du service Web
basicHttpBinding et wsHttpBinding sont deux liaisons basées sur SOAP, ce qui est assez différent de REST. SOAP a l'avantage d'avoir WSDL et XSD pour décrire le service, ses méthodes et les données qui sont transmises en détail (REST n'a rien de tel pour l'instant). D'un autre côté, vous ne pouvez pas simplement naviguer vers un point de terminaison wsHttpBinding avec votre navigateur et regarder XML - vous devez utiliser un client SOAP, par exemple le WcfTestClient ou votre propre application.
Votre première décision doit donc être: REST vs SOAP (ou vous pouvez exposer les deux types de points de terminaison de votre service - c'est possible aussi).
Ensuite, entre basicHttpBinding et wsHttpBinding, il existe des différences comme suit:
basicHttpBinding est la liaison très basique - SOAP 1.1, pas beaucoup en termes de sécurité, pas grand-chose d'autre en termes de fonctionnalités - mais compatible avec à peu près n'importe quel client SOAP -> idéal pour l'interopérabilité, faible sur les fonctionnalités et la sécurité
wsHttpBinding est la liaison complète, qui prend en charge une tonne de fonctionnalités et de normes WS- * - elle a beaucoup plus de fonctionnalités de sécurité, vous pouvez utiliser des connexions de session, vous pouvez utiliser une messagerie fiable, vous pouvez utiliser le contrôle transactionnel - juste beaucoup plus de choses , mais wsHttpBinding est également beaucoup * plus lourd "et ajoute beaucoup de surcharge à vos messages lorsqu'ils voyagent à travers le réseau
Pour une comparaison approfondie (y compris un tableau et des exemples de code) entre les deux, consultez cet article de projet de code: Différences entre BasicHttpBinding et WsHttpBinding