Bem, como todos sabem existem vários tipos de Bindings que podemos utilizar quando criamos nossos projetos do tipo WCF Server Application. Mas o problema maior é saber quando e qual utilizar para que possamos criar aplicações eficientes e seguras.

Bem aqui vão algumas dicas de quando utilizá-los. Coloquei apenas os mais conhecidos:

1ª – se você precisa suportar requisições de clientes na internet.

wsHttpBinding é uma boa opção para cenários de Internet onde você não precisa dar suporte a clientes legados, ou seja, que utilizem Web ASMX. Se você precisa de suporte a clientes legados,
considere utilizar basicHttpBinding. além disso, wsHttpBinding pode ser hospedado em servidores com IIS 5.0 ou IIS 6.0.

2ª – se você precisar expor seu WCF para sistemas legados, como antigos web services (*.asmx)

basicHttpBinding é uma boa opção para cenários onde você precisa dar suporte a clientes legados, ou seja, que utilizem Web ASMX. Por padrão basicHttpBinding não implementa segurança, caso você necessite terá que explicitar esta configuração. Assim como wsHttpBinding, basicHttpBinding pode ser hospedado em servidores com IIS 5.0 ou IIS 6.0.

3ª – se você esta utilizando seu WCF numa intranet.

netTcpBinding é uma boa opção para intranet principalmente se performance for um ponto a ser levando em consideração além de poder ser hospedado em um Windows Service ao invés de utilizar o IIS. netTcpBinding utiliza o protocolo TCP com isso possui suporte completo a SOA Security e a transações. Não é possível hospedar serviços utilizando o netTcpBinding no IIS 5.0 ou 6.0, somente no IIS 7.0.

4ª – se estiver testando seu WCF na mesma máquina, Server/Client.

netNamedPipeBinding provê um ambiente seguro e confiável para “cross-process” numa mesma máquina. Utilizado quando você deseja utilizar o protocolo Named-Pipe e ainda quer aproveitar o suporte a SOA Security e transações. Não é possível hospedar serviços utilizando o netNamedPipeBinding no IIS 5.0 ou 6.0, somente no IIS 7.0.

5ª – se for preciso dar suporte a chamadas desconectadas.

netMsmqBinding provê um ambiente onde é possível utilizar chamadas desconectadas utilizando MSMQ – Microsoft Message Queuing. Normalmente utilizamos este tipo de binding quando não temos o cliente nem a aplicação online ao mesmo tempo, assim o MSMQ pode receber várias chamadas sem parar ou perder o processamento de outras mensagens. Não é possível hospedar serviços utilizando o netMsmqBinding no IIS 5.0 ou 6.0, somente no IIS 7.0.

6ª – se seu serviço provê suporte bidirecional entre WCF´s.

wsDualHttpBinding provê serviço bidirecional (duplex) na qual é possível utilizar chamadas via CallBack. wsDualHttpBinding também suporta comunicação via SOA. Não é possível hospedar serviços utilizando o netMsmqBinding no IIS 5.0 ou 6.0, somente no IIS 7.0.