BT

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

por Dilip Krishnan , traduzido por Carlos Mendonça em 07 Ago 2009 |

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

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.