Revista MSDN Magazine Edição 27 - Windows Communication Foundation (WCF) - Aprenda o ABC da programação com o

O artigo discute os fundamentos do WCF, como hospedar um serviço e definir endpoints e como criar e configurar os clientes.

Clique aqui para ler todos os artigos desta edição

 

Windows Communication Foundation (WCF)

Aprenda o ABC da programação com o “Indigo”

Aaron Skonnard

 

Este artigo discute

Este artigo usa as seguintes tecnologias

·Fundamentos do WCF;

·Hospedando um serviço e definindo endpoints;

·Criando e configurando os clientes.

·WCF (“Indigo”), Visual Studio 2005, .NET Framework 2.0, WSDL, SOAP.

 

O Windows Communication Foundation (WCF), cujo codinome anterior era “Indigo”, está a ponto de mudar radicalmente a cara da programação distribuída para os desenvolvedores que usam o Microsoft .NET Framework. O WCF unifica a suíte existente de tecnologias distribuídas .NET, em um único modelo de programação, que aumenta a experiência dos desenvolvedores, através de uma arquitetura consistente, novos níveis de funcionalidade e interoperabilidade e todos os pontos de extensibilidade que poderíamos desejar. Este artigo apresenta a programação WCF e mostra como começar a usá-la.

 

Nota: Este artigo é baseado em uma versão pré-release do WinFX e todos os aspectos aqui discutidos estão sujeitos à mudanças.

 

Como sugere o nome, o WCF provê ao .NET Framework uma base para escrever código que permita a comunicação entre componentes, aplicações e sistemas. O WCF foi projetado de acordo com os princípios de orientação a serviços. Um serviço é um trecho de código que interage através de mensagens. Serviços são passivos, eles aguardam a entrada de mensagens antes de executar qualquer trabalho. Os clientes são os iniciadores, eles enviam mensagens para os serviços para requisitar trabalho.

Os serviços expõem um ou mais endpoints para onde podem ser enviadas as mensagens. Cada endpoint consiste em um endereço, uma ligação (binding) e um contrato (Figura 1). O endereço especifica para onde enviar as mensagens, a ligação descreve como enviar as mensagens e o contrato descreve o que as mensagens contêm. Os clientes precisam ter conhecimento dessa informação, antes de poder acessar um serviço.

 

Figura 1. Serviços e Endpoints

Os serviços podem compartilhar descrições sobre endpoints para disponibilizar aos clientes, tipicamente usando a Web Services Description Language (WSDL). A seguir, os clientes podem usar a descrição de serviço fornecida, para gerar código dentro do ambiente, capaz de enviar e receber as mensagens apropriadas (Figura 2).

 

Figura 2. Compartilhando Descrições de Endpoint

O Windows Communication Foundation provê uma nova biblioteca de classes contidas no namespace System.ServiceModel, que implementam esses conceitos orientados a serviço. Isso é tipicamente conhecido como o modelo de programação WCF.

O modelo de programação WCF

Com o WCF, podemos escrever serviços que expõem endpoints ou escrever clientes que interagem com endpoints. Conseqüentemente, os endpoints ocupam uma posição central no modelo de programação e na infra-estrutura do WCF. O modelo de endpoints do WCF, junto com as classes e interfaces .NET, são mostradas na Tabela 1. Esse mapeamento é verdadeiro tanto para escrever clientes quanto serviços para o WCF.

 

Elemento

Classe ou Interface

Endpoint

System.ServiceModel.ServiceEndpoint

Endereço(Address)

System.Uri

Ligação(Binding)

System.ServiceModel.Binding

Contrato(Contract)

Interfaces assinadas com o atributo System.ServiceModel

Tabela 1. Classes e Interfaces do WCF

Ao construir um serviço WCF, tipicamente começamos especificando uma definição de interface .NET a ser utilizada como contrato de prestação de serviços. Então implementamos o contrato de prestação de serviços dentro de uma classe .NET, conhecida como o tipo serviço (service type) e configuramos seu comportamento. A seguir, definimos os endpoints que o serviço irá expor, especificando o endereço, a ligação e o contrato para cada um. Finalmente, hospedamos o serviço em uma aplicação, usando a infra-estrutura de hospedagem do WCF. Uma vez que o serviço foi hospedado, os clientes podem recuperar suas descrições de endpoint e podem começar a interagir com o mesmo.

Ao construir um cliente WCF, precisamos, em primeiro lugar, a descrição do endpoint alvo que desejamos acessar. A descrição do endpoint pode ser usada para criar dinamicamente uma classe proxy. O WCF provê uma ferramenta chamada SvcUtil.exe para automatizar esse processo. Assim, podemos escrever o código para a classe proxy, a fim de acessar o serviço, enviando as mensagens apropriadas ao endpoint alvo.

Os contratos de prestação de serviços e o comportamento de despacho

Modelamos os contratos de prestação de serviços dentro do .NET, usando as definições de interface tradicionais do C#.  Podemos usar qualquer interface .NET como ponto de partida, tal como a mostrada a seguir:

 

namespace ServiceLibrary

{

public interface IEchoService

{

string Echo(string msg);

}

}

 

Para realizar esse contrato de prestação de serviços WCF, temos que denotar a própria interface com o atributo [ServiceContract] e cada operação que desejamos expor com [OperationContract]:

" [...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados