BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Quão Relevante é o Desenvolvimento Baseado no Primeiro Contrato Utilizando Linguagens de Marcação?

Quão Relevante é o Desenvolvimento Baseado no Primeiro Contrato Utilizando Linguagens de Marcação?

O Christian Weyer da Thinktecture, anunciou o lançamento do WSCF.blue, um Add-in para o Visual Studio que permite desenvolver web services que utilizam WCF começando do contrato.

Já faz um tempo desde que eu desenvolvi a ferramenta Web Services Contract First...
Esta ferramenta – também chamada de WSCF – (disponível tanto como uma aplicação de linha de comando quanto como um add-in para o Visual Studio) mirava na plataforma ASMX.

A ideia por trás do desenvolvimento via contrato já existe há algum tempo. A necessidade de se desenvolver com base no contrato vem da necessidade de se ter uma representação canônica da mensagem que flui para o serviço em forma de requisições de web service. O fato de que as linguagens mais populares suportam ferramentas baseadas em WSDL e XSD e representações baseadas em Schema e WSDL desses “contratos” das mensagens como ponto inicial para o desenvolvimento é sem dúvida uma boa abordagem para se ter soluções inter-operáveis.

O desenvolvimento através de contratos resolve o conflito de impedância entre objetos e XML. Uma vez que a linguagem Xml Schema é um formato de representação mais rico é fácil modelar os contratos levando-se em consideração as diferenças ao se aparar os problemas de serialização e interoperabilidade, a saber:

  • Impossibilidade de se mapear certas construções da linguagem schema para, por exemplo, extensões e restrições de tipos XSD.
  • Impossibilidade de se mapear ou ao menos de se mapear eficientemente certos tipos de objetos para tipos schema, como por exemplo listas genéricas, HashMaps etc.
  • Impossibilidade de se representar gráficos de objetos eficientemente em XML com relações pai/filho onde o pai possui referência para o filho e o filho possui referência de volta para o objeto pai.

Algumas vantagens de se usar esta abordagem são

  • Definir contratos independentes de linguagem promove interoperabilidade, contanto que os projetistas dos serviços se mantenham aderentes aos padrões de interoperabilidade WS-I
  • Proporciona reuso da definição de contrato nas organizações, isto é, XSD e WSDL
  • Permite versionamento controlado de serviços e presta-se eventualmente a uma melhor governança.

O WCSF.blue é um add-in para o Visual Studio 2008 e é um projeto open-source hospedado no CodePlex. As funcionalidades da ferramenta incluem:

  • Um assistente para WSDL que permite que o desenvolvedor crie WSDL a partir de um ou mais XSDs.
  • Um gerador de DataContract (similar ao XSD.exe, XSDObjectGen.exe e Svcutil.exe) que gera os tipos .NET equivalente aos tipos XSD.
  • Um gerador de stub de service/endpoint (SVC) e
  • Um gerador para o proxy cliente.

A ferramenta ainda tem uma lista de problemas conhecidos, que espera-se que serão eliminados assim que o produto sair da versão beta. A ferramenta também tem um passo-a-passo da versão 0.7 do add-in WSCF.classic que em sua maioria ainda se aplica. Dado que o Microsoft WCF suporta contratos em código, sem precisar de qualquer sinais maior (>) e menor (<), XSD ou WSDL, quão importante é ter ferramentas focadas em modelar contratos de mensagens e serviços usando WSDL e XSD?

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT