Fala pessoal, tudo na paz?

Bem, como ando recebendo e-mails da galera perguntando sobre WCF, resolvi escrever alguns artigos sobre ele.

Nessa primeira parte vamos ver o que é o WCF e o que o compõe. Será uma introdução básica, porém, espero colocar toda informação necessária para um primeiro contato.

Primeiramente, o que é o WCF?

Windows Communication Foundation ou WCF como é mais conhecido nada mais é do que um SDK para desenvolvimento de aplicações distribuídas e orientadas a serviço, também conhecidas como (SOA).

O WCF surgiu no .Net Framework 3.0. Ele veio para  unificar tecnologias como COM+, .Net Remoting, Web Services e MSMQ (Microsoft Message Queue), isso porque, antes do WCF, era necessário que o desenvolvedor utilizasse tecnologias distintas para cada tipo de aplicação, um exemplo seria a criação de Web Services para disponibilizar na Internet algum serviço. Caso este serviço fosse disponibilizado na intranet, deveria ser criada uma aplicação utilizando .Net Remoting, isso porque .Net Remoting utilizava o protocolo TCP enviado arquivos binários pela rede o que tornava a aplicação muito mais rápida do que com Web Service (Http/XML). Com a criação do WCF isso deixa de existir, ele torna a vida do programador muito mais simples.

Para que possamos criar, projetar e implantar serviços WCF, devemos nos ater a alguns conceitos básicos que são os EndPoints e seus componentes ( Address, Binding e Contract).

Toda comunicação com o serviço se dá através dos EndPoints, são eles os responsáveis por fornecer aos clientes o acesso às funcionalidades do serviço.

Calma pessoal não se assustem, vamos ver em detalhes cada pedacinho que compõe um EndPoint. Vamos lá?

Address

Nada mais é do que o local ou endereço onde o serviço reside. O Address possui dois pontos importantes que são a localização e o protocolo de transporte. Um Address possui o seguinte formato:

[base address]/[optional URI]

Já o base address segue o seguinte formato:

[transport]://[machine or domain][:optional port]

Como transport, o WCF nos oferece os seguintes canais de comunicação:

http, https, net.tcp, net.pipe, net.msmq e net.p2p

Para ilustrar melhor abaixo temos alguns exemplos de Address:

http://localhost:8080
http://localhost:8080/MeuWCFService
net.tcp://localhost:123/MeuWCFService
net.pipe://localhost/MeuWCFService
net.msmq://localhost/private/MeuWCFService
net.msmq://localhost/MeuWCFQueue

 

Binding

É o responsável por definir como será a comunicação com o serviço (tcp, ipc, http, msmq, etc).
O WCF nos oferece seis tipos de binding que são:

-  BasicHttpBinding
-  NetTcpBinding
-  NetNamedPipeBinding
-  WSHttpBinding
-  WSDualHttpBinding
-  NetMsmqBinding

Para saber mais sobre Binding, deem uma olhada no post  WCF Bindings.

 

Contract

No contrato é onde definimos quais funcionalidades um serviço irá expor para os clientes.
Existem quatro tipos de contrato que são:

Service Contracts:
– define quais operações estarão disponíveis no serviço para o cliente, ou seja, mapeia tipos CLR para WSDL

Data Contracts:
– define a estrutura de dados usada no serviço, ou seja, ele mapeia tipos CLR para XSD

Fault Contracts:
– define os tipos de erros que serão lançados pelo serviço e como eles irão propagar para o cliente.

Message Contracts:
– define a estrutura de mensagens usadas no serviço, ou seja, mapeia tipos CLR para SOAP

Então, para que tenhamos um EndPoint precisamos ter um Address, um Binding e um Contract, estes itens são conhecidos como ABC´s EndPoint.

Bem pessoal, por hoje é só!

Em nossos próximos posts iremos nos aprofundar um pouco mais no WCF.

Espero que tenham gostado desta primeira parte.

 

Enjoy!!