terça-feira, 1 de fevereiro de 2011

O que é o Windows Communication Foundation (WCF)?

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.

2 comentários:

Gustavo disse...

mas...
Quais aplicações utilizam o WCF??
favor relacionar
Obrigado.

Jader Dias disse...

Olá Gustavo,

Não sei quais aplicações famosas que usam o WCF. Provavelmente a maioria das que usam serviços e .NET 3.5 ou superior usam WCF.