Services now–Criando e testando um WCF Service Web Role On-Premise

Microsoft Azure & Services & WCF

capaWCF

O WCF Service Role nos permite criar um serviço WFC hospedado em um Cloud Service no Microsoft Azure. Neste post vamos criar e testar um WCF Service Web Role local e na nuvem.

Com o WCF (Windows Communication Foundation), a Microsoft unificou as várias tecnologias de programação distribuídas em um único modelo baseado na arquitetura orientada à serviços (SOA). Não vou falar especificamente sobre o WCF neste post, porém vou abordar especificamente sobre isso em breve.

Agora vamos criar o nosso projeto: Inicie o Visual Studio e selecione a opção New Project. Em Templates selecione Cloud e crie um Windows Azure Cloud Service. No meu exemplo estou chamando de WindowsAzureWCF. Vale notar que o ambiente utilizado neste post foi o Visual Studio 2013 e o Windows Azure SDK 2.5.

ATG01

 

Na próxima tela selecionamos a WCF Service Web Role. Neste exemplo estou alterando o nome para WCFService.Bissexto.

ATG02

 

Você vai perceber que ele cria uma estrutura idêntica a um serviço WCF padrão:

    1. IService1.cs (Contrato do Serviço)
    2. Service1.svc.cs (Definição do Serviço)
    3. Web.config (Configuração dos EndPoints)

Agora vamos alterar nosso contrato e o nosso serviço para o retorno esperado. Só para não perder a oportunidade, vamos adicionar ao método padrão GetData, uma lógica para verificar se o ano é bissexto ou não. Para isso, devemos saber que os anos são bissextos quando forem divisíveis por 4, excluindo os que sejam divisíveis por 100, porém não os que sejam divisíveis por 400. Isso porque os anos divisíveis por 4 são bissextos, porém a cada 400 anos devemos eliminar 3 anos bissextos.

No arquivo de definição do serviço, Service1.svc.cs, você pode deletar o outro método padrão e incluir a lógica da verificação do ano bissexto, deixando o código como o descrito abaixo:

ATG03

 

Altere também o contrato conforme o código abaixo:

ATG04

Não iremos alterar o nosso Web.config . Verifique se o Visual Studio está rodando com permissão de Administrator, que o projeto WindowsAzureWCF esteja setado como StartUp Project e o Windows Azure Compute Emulator esteja rodando. Depois é só inicar a aplicação normalmente.

Se você observar o Computer Emulator (que emula o mesmo ambiente encontrado na nuvem), vai ver que o nosso serviço WCF está executando normalmente:

ATG06

Note que a seguinte tela é apresentada:

ATG08

Navegue para a o serviço. Sua URL deve ficar http://127.0.0.1:4318/Service1.svc. Se tudo estiver correto você vai ver esta página:

ATG09

Pronto, neste ponto você já tem o serviço funcional e rodando no ambiente local. O próximo passo será a criação do cliente para consumir nosso serviço. Sendo assim, clique com o botão direito na solução e adicione um novo projeto do tipo Console Application.

Neste exemplo eu criei um projeto chamado TesteWCFAzure. No projeto, clique com o botão direito sobre References e selecione a opção Add Service Reference. Neste ponto você tem duas opções, Discover para que seja buscado um serviço na solução, ou Go caso você já saiba exatamente qual o serviço a ser consumido. Neste exemplo, informe o endereço do serviço rodando localmente. Note que são exibidas os métodos que estão expostos no contrato, neste caso apenas o GetData. Para seguir este exemplo apenas clique na opção Go. Não é necessário alterar mais nada.

ATG010

Agora com as seguintes referências, só precisamos codificar nosso cliente criando nossa proxy de chamada ao serviço. Insira o código abaixo:

ATG011

Agora é só clicar com o botão direito no projeto, Debug e Start new instance. O resultado será a resposta das duas chamadas realizadas no código acima. A resposta será como se segue abaixo:

ATG012

Pronto, já temos o nosso serviço WCF criado e testado. No próximo post vamos publicar e consumir nosso serviço na nuvem.

O código fonte completo vai estar disponível no próximo post: Criando e testando um WCF Service Web Role em um Cloud Service.

 

Bons estudos e até a próxima pessoal  ;)


Author's profile picture

Vitor is a computer scientist who is passionate about creating software that will positively change the world we live in.

MVP Azure - Cloud Architect - Data science enthusiast


3 minutes to read