O WCF é uma biblioteca de comunicação introduzida a partir da versão
3.0 do .NET Framework que permite isolar a "implementação do serviço" do "protocolo de comunicação". Além de facilitar a serialização e deserialização dos dados, esta biblioteca também disponibiliza implementações intercambiáveis dos principais protocolos de comunicação. por exemplo:
- TCP
- HTTP - REST
- SOAP
- Named Pipes
- Message Queues
O WCF exige que os dados a serem comunicados e os métodos de comunicação sejam definidos em tempo de compilação, mas os protocolos de comunicação, endereços, métodos de autenticação, métodos de serialização, método de criptografia e outros detalhes da comunicação podem ser definidos em tempo de execução. A configuração destes itens pode ser feita sem escrever código, pois para a maioria das opções mais populares basta apenas mudar uma entrada no arquivo de configuração.
Alguns protocolos no WCF foram implementados para a interoperabilidade com outras linguagens e plataformas de desenvolvimento, além de poderem ser consumidos por clientes implementados em .NET. O WCF também permite expor metadados sobre o serviço, facilitando o consumo destes.
Serviços que utilizam WCF podem rodar no IIS ou em aplicações normais, sejam elas de linha de comando, aplicações gráficas ou serviços do Windows. O WCF pode ser usado em vários cenários, permitindo uma rápida e eficiente implementação de:
- comunicação entre processos da mesma máquina (ex: pipes nomeados)
- webservices
- web APIs
- comunicação desconectada (ex: message queue, envie e esqueça)
- comunicação bi-direcional (ex: assinatura e publicação)
O WCF também foi implementado no framework
Mono, mas apenas parcialmente.