Introdução ao WCF: criando um provedor de serviços selfhost

É fato! Cedo ou tarde suas aplicações precisarão realizar algum tipo de comunicação com algum provedor de serviços - aí estão a NFe, a NFs, o CFe etc que não me deixam mentir. Sendo assim, entender como funciona uma arquitetura orientada a serviços lhe auxiliará a compreender melhor os cenários em que serviços são aplicados. Para nossa felicidade, a Microsoft disponibilizou, desde da versão 3.0 no .net framework, "um modelo de programação unificado para criar rapidamente aplicativos orientados a serviços que se comunicam pela Web e por toda a empresa". Este modelo é conhecido como WCF (Windows Communication Foundation). Com esse conjunto de ferramentas é possível criar uma infinidade de serviços com multiplos cenários. Para exemplificar o funcionamento do WCF, de forma introdutória, demonstraremos a construção de uma estação de serviços que fará a manutenção de transferências de arquivos.

UMA VISÃO GERAL

Antes de colocar a mão na massa, precisaremos ter uma visão geral de como funciona um serviço WCF. O assunto é extenso e existem inúmeros artigos ( inclusive em português) que abordam de forma mais profunda os principais conceitos de como o WCF trabalha a arquitetura SOA. Como nosso objetivo á apresentar uma visão introdutória, abordaremos com alguns tópicos importantes, mas que certamente exigirão de você uma pesquisa mais apurada.

ENTENDENDO O ABC DA COISA...

Mas o que seria um serviço WCF? Segundo a documentação oficial da microsoft, "Um Service do WCF é um programa que expõe uma coleção de Endpoint. Cada Endpoint é um portal para se comunicar com o mundo". A mesma documentação define que uma "A classe ServiceEndpoint representa um Endpoint e tem um EndpointAddress, uma Binding e uma ContractDescription correspondente ao Address do Endpoint, à Binding e ao Contract respectivamente (consulte a Figura 1)". Geralmente, os elementos de um Endpoint são descritos pela sigla ABC que representa respectivamente Address, Binding e Contract.


Aa480210.wcfarch_01(pt-br,MSDN.10).gif

Figura 1. Cada Endpoint de Service contém um EndpointAddress,
uma Binding e um Contract representado por ContractDescription.


De forma bem resumida, a documentação define o ABC do Endpoint da senguinte forma:


A) EndpointAddress
Um EndpointAddress é basicamente um URI, uma Identity e uma coleção de cabeçalhos

B) Bindings
Uma Binding tem um nome, um namespace e uma coleção de elementos de ligação compostos. O nome e o namespace da Binding a identificam exclusivamente nos metadados do serviço. Cada elemento de ligação descreve um aspecto de como o Endpoint se comunica com o mundo. Ou seja, define alguns comportamentos do serviço

C) Contracts
Um Contract do WCF é uma coleção de Operações que especifica o que o Endpoint comunica para o mundo exterior. Cada operação é uma troca simples de mensagens, por exemplo, unidirecional ou solicitação/resposta. Basicamente, contracts são interfaces "decoradas" com propriedades específicas que lhes atribui a capacidade de exposição na rede.

CONCLUSÃO

Essa visão geral e inicial é importante para que se compreenda a estrutura necessária para se gerar um serviço WCF. Lembramos que este é um tópico inical e que será ampliado com a continuidade das demais partes. Recomendamos que você expanda o seu conhecimento na arquitetura de serviços através de leituras mais abrangentes para aprofundar os assuntos aqui abordados.

para saber mais acesse:

http://msdn.microsoft.com/pt-br/netframework/aa663324.aspx

http://msdn.microsoft.com/pt-br/library/Aa480210
http://www.israelaece.com/

Não gostou do modelo ou tem alguma idéia melhor? Não perca tempo, participe, comente este artigo e diga sua opinião.

Aprofunde seus conhecimentos sobre este tema na comunidade C#

Exibições: 290

Comentar

Você precisa ser um membro de DevBrasil para adicionar comentários!

Entrar em DevBrasil

© 2019   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço