DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Revista MSDN Magazine Edição 18 - Use WSDL com vários Web Services

Artigo Originalmente Publicado na MSDN Magazine Edição 18

msdn18_capa.gif

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

 

Web Services

Use WSDL com vários Web Services

por Gerrard Lindsay

Este artigo discute

Este artigo usa as seguintes tecnologias:

·          Os mistérios dos namespaces XML e a WSDL (Web Services Description Language)

·          Compartilhamento de tipos entre vários Web services sem precisar escrever código de cliente

·          A ferramenta WSDL.exe

.Net framework, C#, xml e web services

 

Download:

WSDL.exe (147KB)

Chapéu

Web Services

 

 

As soluções empresariais geralmente agregam informações de diferentes aplicativos internos e de fontes externas. Os Web services foram adotados rapidamente como um método para consumir de maneira fácil e confiável os diversos dados exigidos por essas soluções. Isso faz com que surjam situações inevitáveis, nas quais uma única solução requer o consumo de vários Web services complementares, que quase sempre compartilham tipos XML específicos ao domínio ou à empresa. Infelizmente, as muitas ferramentas que ajudaram a impelir a crescente adoção dos Web services, bem como as abstrações que eles possibilitam, podem freqüentemente impedir que os desenvolvedores espiem por trás dos panos os padrões XML que compõem a pilha dos Web services. Este artigo oferecerá uma solução que possibilitará o compartilhamento de tipos entre os proxies criados para Web services complementares e, ao mesmo tempo, fornecerá uma oportunidade de examinar a WSDL (Web Services Description Language) e sua interação com as ferramentas de Web services que tanto conhecemos e amamos.

A primeira vez que tentei criar dois Web services complementares para compartilhar um tipo XML comum, tive uma infeliz surpresa. Cada um dos proxies que foram criados em meu aplicativo cliente possuía uma representação de objeto separada para a mensagem comum, em um namespace em C# separado. Precisei copiar cada uma dessas propriedades manualmente da instância de uma classe para outra, o que parecia um artefato desnecessário da implementação atual das ferramentas.

No final das contas, tropecei em uma técnica que permite que você exponha um contrato individual de Web service que encapsula vários endpoints de Web services por meio da criação de um arquivo WSDL com vários vínculos. Essa explicitação define as relações entre os serviços e também tem a vantagem de gerar proxies que podem compartilhar as classes managed que representam as mensagens comuns.

É possível compartilhar os tipos definidos por vários contratos no mesmo namespace editando manualmente os proxies gerados pela ferramenta após o fato. No entanto, a combinação de vínculos de Web service a um único arquivo WSDL permite que o implementador do Web service defina a relação compartilhada, em vez de colocar a carga nos desenvolvedores que criam os clientes para os serviços. Essa técnica também evita que você precise recriar essas alterações na classe do proxy cada vez que alterar o contrato de serviço durante o desenvolvimento."

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Gerrard Lindsay
Gerrard Lindsay (glindsay@microsoft.com) é consultor de desenvolvimento de aplicativos para o Microsoft Services na região leste.
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03