Tutorial C# – WebServices

24 Comentários

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.

Autor: Pplware
Partilhar:

Comentários

24

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Almada
    Almada

    EXPLICATIVO ….

  2. Avatar de Valentim
    Valentim

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

  3. Avatar de tagravado.com

    off topic:

    acho imensa piada as estas imagens com os homenzinhos…

    @vitor: onde arranjas as imgs?

    http://www.tagravado.com

    1. Avatar de Vítor M.

      Onde? Na Internet, o meu pátio favorito 😉

      1. Avatar de No comments
        No comments

        em casa, sentado num banco a olhar pa um computador ligado a net

  4. Avatar de José Fonseca
    José Fonseca

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

  5. Avatar de José Fonseca
    José Fonseca

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

  6. Avatar de Lokier
  7. Avatar de Shogun
    Shogun

    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 😉

    1. Avatar de Henrique Graça
      Henrique Graça

      Lol, “tipo eu”. Sim claro.
      Também gostava de ter desenvolvido mais, mas esta falta de tempo mata-me.

      Cumprimentos.

  8. Avatar de David
    David

    Muito Bom POST!!
    Continua com o bom trabalho.

    David Lourenço

  9. Avatar de Web Service

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

  10. Avatar de Sandra
    Sandra

    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

    1. Avatar de Valentim
      Valentim

      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?

  11. Avatar de Oscar
    Oscar

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

  12. Avatar de Jorge Cunha
    Jorge Cunha

    Muito útil

  13. Avatar de Flavio Torres
    Flavio Torres

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

  14. Avatar de roarealva@hotmail.com
    roarealva@hotmail.com

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

  15. Avatar de RenatoFernandes
    RenatoFernandes

    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?

    1. Avatar de RenatoFernandes
      RenatoFernandes

      Já resolvi…
      Obrigado na mesma

  16. Avatar de Lucena
    Lucena

    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!

  17. Avatar de Wallace

    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

    1. Avatar de Cesar Ayres
      Cesar Ayres

      Thanks!! Gracias ! Muito Obrigado!!

  18. Avatar de KuNh4
    KuNh4

    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