Tutorial C# – WebServices

Olá a todos, hoje vou falar-vos de webservices, já todos ouvimos falar deles e da sua utilidade, neste tutorial vou mostrar-vos como criar um webservice.
Mas o que é um webservice?

Com a intensiva utilização da Internet e com a facilidade de transferência de informação, surgiu um novo desafio para os programadores: partilha de dados entre aplicações.

Como existem milhares de programas diferentes, diversos sistemas operativos e plataformas, é neste cenário que se encaixam os WebServices, que são nada mais nada menos “componentes” que permitemàs aplicações enviar e receber dados em formato XML, independentemente da linguagem da aplicação e do seu sistema.
O principal objectivo dos WebServices foi fazer com que as empresas fossem mais ágeis a integrar sistemas e a interagir com sistemas de terceiros.

Projecto:
Criar um WebService no Visual Studio é muito simples, basta criar um novo site e escolher asp.net Web service.

Depois de criado vão ficar com um ficheiro de extensão asmx, este ficheiro só contém a linguagem a ser utilizada e qual a classe a que se refere. O que nos interessa é o ficheiro asmx.cs, que é o ficheiro de código.

A primeira grande diferença é a utilização do atributo [WebMethod], este atributo tem de ser colocado em todos os métodos que nós queremos que sejam acessíveis ao exterior.

Agora vamos alterar o nosso método default Hello World por um método que faz uma soma, o resultado é o seguinte:

Depois vamos criar um projecto Windows forms para consumir o nosso webservice.

Nessa form colocamos duas caixas de texto para os valores de input, uma texbox para o resultado e um botão para invocar o webservice.

O projecto ficará com o seguinte aspecto:

Depois vamos adicionar o serviço ao nosso projecto Windows forms, para fazer isso é muito simples basta adicionar uma service reference (Visual Studio 2010), web reference nas outras versões.

Depois para encontrar o nosso Web Service e como está na solução existe um atalho como mostra a figura. Caso estivesse no IIS ou na Internet bastava colocar o URI na caixa de texto.

Depois de descobrir o serviço, basta indicar um nome e estamos prontos para o testar.

Como podemos ver agora na solução aparece o webservice com o nome que lhe demos.

Agora para o utilizar, nada mais simples: basta instanciar o webservice que tem como namespace o nome que lhe demos.

E agora estamos prontos para correr a nossa aplicação.

Colocamos os dois valores e aguardamos o resultado.

Por hoje é tudo como vêem é muito simples trabalhar com webservices com o .NET e neste momento já existem ainda mais ferramentas para tal, como a Framework WCF e os RestfulServices.

Espero que tenham gostado e até ao próximo. Boa programação.





  •   
  •   
  •  
  • Pin It  
  • Imprima este artigo
  • Post2PDF


24 Comentários

  1. EXPLICATIVO ….

  2. Demasiado simples…mas fica a ideia (“básica”) de como funciona.

  3. off topic:

    acho imensa piada as estas imagens com os homenzinhos…

    @vitor: onde arranjas as imgs?

    http://www.tagravado.com

  4. Já agora,
    Um webserver muito simples em PHP e que faria a mesma coisa, creio eu:
    “urn://”));
    $server->addFunction(“Sum”);
    $server->handle();
    ?>

  5. Já vi que o copy e paste não funciona bem.
    Agradecia que eliminassem o meu post anterior e este

  6. Boa :) mas penso que talvez um WCF service fosse interessante tb :) Só uma questão penso que devias ter focado um bocadinho a parte teorica dos web services para menos entendidos (tipo eu).Apenas uma sugestao ;)

  7. Muito Bom POST!!
    Continua com o bom trabalho.

    David Lourenço

  8. A java tutorial that shows you why Coding Java ( oriented programming) is just like writing a trashy Western novel. Web Service

  9. Oi,
    Tenho um webservice que deve receber e enviar os mesmo dados.
    Até tudo bem.
    O problema está na estrutura do XMl que eu tenho de receber.
    é que em vez de ser uma estrutura com um nivel em que os parametros de entrada da função são as proprias strings tenho de fazer recurso de classes que também já criei.
    O problema é que não sei chama-las na entrada da função.
    Consigo programar a saida do webservice tal como pretendo e recorrendo às classes criadas mas não a entrada.

    Será que alguém me pode ajudar?

    Obrigada

    • Olá,
      Não compreendi muito bem a tua dúvida…

      public class OrdemTipo
      {
      }

      [WebMethod]
      public int Ordem(OrdemTipo obj)
      {
      return 2;
      }
      o que pretendes fazer é algo semelhante a isto?

  10. Bom artigo. E em java como posso ter um exemplo simples a este????

  11. Muito útil

  12. Muito bom.. bem simples para entender o conceito da coisa!!! parabens..

  13. roarealva@hotmail.com

    Como eu coloco o web service online ?? quais arquivos ??

  14. Boas,
    Estou a seguir o tutorial mas não consigo add uma web reference ao meu windows form application project.
    Ele detecta o web service e aparece e sigo o passo de alterar o nome para ServicoSoma, quando primo OK ele vai fazer o download e dá erro: “An error (Details) occurred while attempting to find services at ‘http://localhost:62518/Services1.asmx'”
    Como posso ultrapassar este erro?

  15. bom ta dando erro nas referencias:

    public string Somar(double valor1, double valor2) {
    object[] results = this.Invoke(“Somar”, new object[] {valor1, valor2});
    return ((string)(results[0]));
    }

    comecei a menos de 2 semanas a brincar com C# mais a minha intenção é programar para o Windows Mobile!

  16. Prezados,

    Excelente conteúdo. Gostaria e apresentar o link http://www.supravizio.com/Webservices-SOA.aspx onde existe um estudo de caso interessante de venda de seguros pelo site WebMotors utilizando intensamente o recurso de web services.

    Wallace Oliveira
    http://www.venki.com.br

  17. Eu gostaria de saber se é possível alguém fazer um tutorial de C# onde demostra como fazer 2 programas interagir um com o outro ao mesmo tempo na internet sem usar o webservices, acho mesmo que é sockets se não estou em erro, permitam-me desculpar se eu estiver enganado, mas ficaria bastante agradecido.

    Cumprimentos

Deixe o seu comentário

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. O autor deste site reserva-se, desde já, o direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.