Existe-t-il un autre binding que BasicHttpBinding pour WCF?

Derrière ce titre un peu provocateur, ce cache en fait une vraie question, ou plutôt un vrai problème. À force d'assister à des démonstrations utilisant WCF, de nombreux développeurs finissent par croire que le BasicHttpBinding est tellement bien qu'on doit en mettre partout.

Cette conclusion trop hâtive tiens juste dans le fait que le BasicHttpBinding est le Binding par défaut quand on créé un service. Et bien souvent, lors d'une démonstration, on ne porte pas plus attention à son Binding... on a déjà tellement de choses à montrer en si peu de temps. Mea Coulpa!

Afin de corriger le tire, je me permets de vous proposer un petit schéma (qui restera certainement plus dans vos esprits que mes longues phrases interminables).

Bindings WCF


Celui-ci met en avant une situation courante d'un applicatif utilisant WCF. En entrée j'ai voulu représenté quelque une de technologies en mesure de consommer un service WCF exposé sur le Web (et oui WCf peut servir à pal mal de monde!). Ceci en faisant la distinction entre les clients .net (hors Silverlight) qui sont en mesure d'avoir un Binding plus optimiser et plus sécurisé par défaut que les autres Bindings http pour lesquels il faut customiser un peu plus de Binding pour qu’il soit sécurisé.

Côté réseau local, afin d'améliorer les performances j'ai voulu donner la part belle au binding Tcp dédié aux clients .net. Et bien entendu à MSMQ pour les opérations acceptant le fait d'avoir une file d'attente. Opérations lourdes et longues en général, telles que les impressions ou le transfert de fichiers.

Côté administration locale on notera la possibilité d'utiliser les canaux nommés via le NetNamePipeBinding. Binding impossible à concurrence quand il s'agit de faire communiquer les applications entre elles quand elles se trouvent sur la même machine.

Mon intension étant de vulgariser un peu plus WCF et surtout l'un des aspects qui font sa puissance, je ne m'étalerai pas davantage sur les Bindings. Pour plus d'informations sur le sujet,je vous encourage aller sur la MSDN : Liaisons fournies par le système

Jérémy Jeanson

Comments

You have to be logged in to comment this post.