' Marque-as como WebMethods Public Function <WebMethod()> GetTime (ShowSeconds as Boolean) As String ' Execute a regra de negócio de nossa função. ' Determine a hora atual, formate conforme solicitado e retorne a string. Dim dt As DateTime If (ShowSeconds = True) Then GetTime = dt.Now.ToLongTimeString Else GetTime = dt.Now.ToShortTimeString End If End Function End Class Curso de Introdução a Plataforma .Net FrameWork SDK 134 SOAP SOAP que significa Simple Object Access Protocol, é um vocabulário XML que descreve chamadas de função e seus parâmetros. O pacote SOAP enviado ao servidor contém o nome da função e seus parâmetros, codificados em XML de acordo com um esquema convencionado, como você pode ver na caixa de texto superior. Quando o pacote SOAP alcança o servidor, ASP.NET o reconhece, analisa o nome do método e seus parâmetros no pacote, cria o objeto e faz a chamada. Ele toma o valor de retorno desse método, formata-o em XML e retorna o XML para o cliente. Criando um WebService Vamos ver como criar um WebService simples, que faz apenas um cálculo de soma entre dois números inteiros. Para facilitar o exercício, vamos considerar que o cliente e os servidores são apenas uma única máquina, e que o URL do servidor1 e do servidor2 é 127.0.0.1. Acompanhe o exemplo passo a passo: 1. crie uma pasta sob o diretório Inetpub\Wwwroot com o nome de WebTeste e salve neste diretório o arquivo Somaserv.asmx. A diretiva superior diz que este é um arquivo de WebService. Precisamos também importar o namespace System.Web.Services para qualificar o método soma da classe SomaServ como um método de um WebService. <%@ WebService Language="C#" Class="Somaserv" %> using System; using System.Web.Services; public class Somaserv { [WebMethod] public int soma(int a, int b){ return a+b; } } salve como: Somaserv.asmx Curso de Introdução a Plataforma .Net FrameWork SDK 135 2. você agora pode testar este WebService abrindo o seu navegador e chamando o arquivo como mostrado abaixo: http://127.0.0.1/webteste/somaserv.asmx 3. agora temos que compilar o WebService. Esta etapa é importantíssima pois vai criar o proxy do Servidor1 para o stub do Servidor2, ou seja, a conexão entre os servidores. Esta compilação vai resultar na criação de um arquivo chamado Somaserv.cs que é o fonte do nosso proxy. Vamos a compilação: Temos que observar que: com /n:WebSoma definimos o nome do namespace da nossa classe. 4. agora temos que compilar o arquivo Somaserv.cs , gerado na compilação do WebService, em uma pasta chamada Bin criada no diretório WebTeste. O diretório Bin é um padrão que o .Net FrameWork utiliza para buscar os componentes. Vamos acompanhar abaixo a sintaxe para a compilação do arquivo Somaserv.cs: Usando o WebService Para utilizarmos o WebService, basta seguir os passos abaixo: 1. vamos criar o arquivo: Somaserv.aspx para utilizar o WebService. Note que para chamarmos o arquivo Somaserv.asmx devemos importar a classe Somaserv que esta contida no namespace WebSoma. wsdl /out:Somaserv.cs /n:WebSoma http://127.0.0.1/webteste/Somasrv.asmx?wsdl csc /t:library /out:bin\Somaserv.dll Somaserv.cs Curso de Introdução a Plataforma .Net FrameWork SDK 136 Acompanhe o código do arquivo .aspx: <%@ Import Namespace="WebSoma" %> <html> <form runat="server"> <asp:Panel id="panel01" BackColor="#E0E0E0" HorizontalAlign="center" Width="250" runat="server"> <br/> Adicione dois números para a soma <br/> <br/> <asp:TextBox id="numero01" BackColor="yellow" Width="110" runat="server"/> <br/> <asp:TextBox id="numero02" BackColor="yellow" Width="110" runat="server"/> <br/> <p> <asp:Button id="bot01" Text="Somar Inteiros" ToolTip="Adicione dois valores inteiros" OnClick="MetodoSomar" runat="server"/> </p> <p> <asp:Label id="saida" Font-Name="Arial" Font-Size="16" runat="server"/> <p/> </asp:panel> </form> <script language="VB" runat="server"> Sub MetodoSomar (obj As Object, ea As EventArgs) Dim Valor1, Valor2 As Integer Try Valor1 = Val(numero01.Text) Valor2 = CInt(numero02.Text) 'Valor2 = Integer.Parse(numero02.Text) Dim ObjSoma As Somaserv ObjSoma = new Somaserv() Dim Resultado As String Resultado = CStr(ObjSoma.soma(Valor1, Valor2)) saida.Text = Valor1 &" + "& Valor2 &" = "& Resultado Catch saida.Text = "Ocorreu um erro !" End Try End Sub </script> </html> Curso de Introdução a Plataforma .Net FrameWork SDK 137 Referências Bibliográficas Microsoft. Documentação do .Net FrameWork SDK. USA:Microsoft, 2002. Platt, David S. Iniciando Microsoft .Net. Editora Makron Books, 2002. Payne, Chris. Aprenda em 21 dias ASP.Net. Editora Campus, 2001. Haddad, Renato. C# - Aplicações e Soluções. Editora Érica, 2001. Haddad, Renato. VB.Net – Aplicações e Soluções. Editora Érica, 2002. Damasceno Jr, Américo. Aprendendo ASP.Net com C#. Editora Érica, 2001.