Este é um post disponível para assinantes MVPWCF: Introdução - Revista easy .net Magazine 15
O artigo trata dos conceitos básicos para a criação de serviços WCF (Windows Communication Foundation). Este é um conjunto de bibliotecas do Framework .Net que representa a API necessária para criação de aplicações orientadas a serviços que serv
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Easy .net magazine 15
Comunicação entre
programas
Atualmente a palavra que define as aplicações de software é conectividade. Quanto mais conectada uma aplicação estiver maiores são as chances de tornar-se popular e consequentemente, atrair um número maior de usuários (o que obviamente, espera-se, traga mais retorno financeiro para o seu desenvolvedor).
Há disponibilidade de meios para troca de dados como não havia antes. Redes coorporativas com e sem fio. Internet. Rede de celulares de alta velocidade. Estas são as mais populares e muitos dos dispositivos as usam frequentemente.
Muitas também são as formas de fazer troca de dados nestes meios o que traz alguns problemas para os desenvolvedores. Inicialmente é preciso definir qual protocolo será usado para comunicação. Os principais são o TCP e HTTP, sendo que o primeiro mais comum em redes corporativas (internas) e o segundo para a Internet quando está se tratando de comunicação de dados entre aplicações. O passo seguinte é definir um formato a ser usado para envio e recepção de dados. O mais comum é a troca de mensagens entre aplicação provedora do serviço (que pode ser chamada de host) e a aplicação que vai usar ou consumir este, também chamada de aplicação Client.
Muitas tecnologias de troca de dados foram desenvolvidas, cada uma dentro de um contexto específico tais como: Component Object Model (COM) e Distributed Component Object Model (DCOM); Remote Method Invocation (RMI), Microsoft Message Queuing (MSMQ) e WebSphere Message Queuing, sendo que nenhuma destas pode ser usada com bons resultados em diversos cenários.
O WCF foi feito para ser usado em qualquer cenário onde o Framework .Net possa fazer troca de dados com outro software e assim, oferecer um leque maior de situações onde possa ser aplicado. Existem grandes chances desta ser a melhor opção para solução de problemas com comunicação de dados principalmente pela facilidade de desenvolvimento proporcionada pela tecnologia e também pelo desempenho melhor em muitos casos.
Basicamente o WCF consiste de um conjunto de bibliotecas e classes adicionadas ao Framework na versão 3.0. De fato, a diferença principal da versão 2.0 para esta foi a adição deste recurso mais as tecnologias WPF (Windows Presentation Foundation) e WWF (Windows Workflow Foundation).
Para desenvolvedores já acostumados com o Framework .Net o WCF representa uma evolução natural de outro recurso – os Web Services. Estes já foram assunto de artigos anteriores e constituem uma plataforma baseada em uma arquitetura aberta que se popularizou graças a padrões como o protocolo HTTP para a camada de comunicação e o XML como formato de envio e recepção de dados.
Os Web Services foram largamente usados pelas aplicações baseadas no Framework .Net entretanto, recentemente estão cedendo espaço para o WCF e é preciso entender os motivos.
Diferenças entre WCF
e Webservices
Este artigo surgiu da necessidade em demonstrar a mais nova tecnologia da Microsoft para disponibilização de serviços pelas redes e que é uma evolução dos Web Services.
Ao criar um projeto novo no Visual Studio 2010 e selecionar a versão 4.0 do Framework não está mais disponível a criação de aplicações do tipo Web Services. A Figura 1 demonstra uma tela para criação de projetos no Framework 3.0 onde este tipo de aplicação ainda está presente. Ao mudar a versão do Framework este tipo não está mais disponível. Confira na Figura 2.
Independente do que isto possa significar, as vantagens de se usar um projeto WCF em vez de Web Service recaem principalmente quando se pretende usar os mais novos recursos do Framework 4.0 como classes anônimas e parâmetros nomeados, por exemplo, sem precisar importar bibliotecas de terceiros.
Serviços WCF também usam o padrão de documentos XML para intercâmbio de dados, devidamente configurados também oferecem toda a infraestrutura dos Web Services como o endereço UDDI e o documento WSDL para descrever o serviço.
Além disto, é possível fazer o host (manter o serviço em execução) de várias formas e não apenas usando um servidor dedicado para isto (como é o caso dos Web Services que precisam do IIS dentro da plataforma Windows).
O desenvolvimento de um projeto WCF é mais claro e ainda que o Visual Studio possua modelos para serem usados, é possível fazer sua construção a partir do zero. Isto traz impacto positivo deixando o programa mais leve, mais claro para o desenvolvedor compreender, uma vez que, somente os elementos realmente necessários serão adicionados para a aplicação.
Ciclo básico para
desenvolver WCF
A criação de uma aplicação WCF baseia-se em alguns passos para sua perfeita implementação. Em linhas gerais os passos são:
1. Definição do contrato de serviço que especifica os dados e operações que podem ser consumidos. Isto é feito via definição de uma interface;
2. Implementar o contrato escrevendo o código criando a classe a partir da interface definida;
3. Configurar o serviço especificando os endereços através dos quais o mesmo pode ser acessado. É nesta fase que se define se o serviço pode ser acessado via protocolo HTTP ou TCP ou ainda, via Windows Service;
4. Publicar o serviço tornando-o disponível para o acesso através das aplicações cliente;
5. Criar a aplicação Client que vai consumir o WCF referenciando o serviço e criando a classe Proxy responsável pela comunicação com o mesmo.
Como se pode perceber, diferentemente dos Web Services, este tipo de projeto precisa de um conhecimento um pouco mais elevado dos recursos do Framework .Net, mas, nada de se preocupar.
Vou demonstrar estas etapas sucintamente e para quem esteja pretendendo rever os conceitos do Framework que serão usados, segue uma pequena lista destes:
- Criação de classes e interfaces;
- Herança;
- Tratamento de erros com bloco try...catch;
- Uso de vários projetos no Visual Studio numa mesma Solution;
- Noções básicas sobre atributos do Framework e no C#.
O contrato
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Space do autor


0
0
