VB. NET - Consumindo Web Services com Windows Forms


Em meu artigo ASP. NET 2008 - Criando Web Services II mostrei como é fácil criar Web Services na plataforma .NET, mesmo usando uma ferramenta gratuita como o Visual Web Developer 2008 Express Edition.

Neste artigo vou mostrar como consumir o web service criado em uma aplicação WIndows Forms criada no Visual Basic 2008 Express Edition.

Nota: Por razões didáticas eu alterei o nome do web service criado no artigo citado de Service.asmx para getProdutosService.asmx.

A figura ao lado mostra como ficou o projeto com o novo nome. Isso não alterou em nada a funcionalidade criada.

Abra o Visual Basic 2008 Express Edition e crie um novo projeto do tipo Windows Forms Application usando a linguagem Visual Basic com o nome consumindoWS;

Na janela Solution Explorer clique com o botão direito do mouse sobre o nome do projetoe selecione a opção Add Service Reference;

Na janela Add Service Reference informe na caixa Address a URL do nosso web service. Abaixo temos a informação (já com o nome alterado).

Observe que o serviço e a operação foram identificados. Clique no botão OK;

Você pode também clicar no botão Advanced... para ter acesso a janela Service Reference Settings e efetuar ajustes na configuração.

Na janela de configuração existe o botão Add Web Reference que remete a mesma janela que usada para referenciar o web service na aplicação ASP .NET:

Neste momento a janela Solution Explorer irá exibir a referência ao web service criado na pasta Web References:

Selecione o formulário form1.vb e a partir da ToolBox inclua um componente DataGridView no formulário.

Nota: Uma outra forma de incluir uma referência ao web service é através da opção Choose Data Source do DataGridView.

Em seguida clicando na opção - Add Project Data Source... iremos para a janela Data Source Configuration Wizard onde vemos a opção Service e Web Service;

Selecinando a opção Service e clicando em Next> teremos a janela Add Service Reference:

Em seguida vamos referenciar o web service através da declaração : Imports consumindoWS.WS_getProdutos

Vamos declarar também o namespace System.Data: Imports System.Data

No evento Load do formulário inclua o código abaixo:

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim ws As New getProdutosService
        Dim ds As DataSet
        ds = ws.getProdutos(10)
        DataGridView1.DataSource = ds.Tables(0)
    End Sub

Criamos a instância do serviço e um dataset;

Usando a instância do serviço usamos o método getProdutos() para obter um dataset contendo os 10 produtos da tabela;

Exibimos o dataset no grid do formulário:

Simples e prático !!!

Pegue o projeto completo aqui : consumindoWS_WF.zip

Eu sei é apenas VB .NET, mas eu gosto...

Referências:


José Carlos Macoratti