CódigoFonte.net Inicial Anuncie Buscar códigos Fale conosco Olá Visitante - Segunda Feira, 12 de Maio de 2008.



Códigos
ASP.NET
ASP
Cold Fusion
CGI
C#
JavaScript
Delphi
PHP
VB.NET
VBScript
XML
Assistentes
Favoritos
Botão Direito
Confirm Box
Datas
Caixa de Alerta
Transições
Cores em Hexa
Links
Ver + Detalhes
Tutoriais/Dicas
ASP
Banco de dados
BLOGs
CGI/Perl
C# (CSharp)
CSS
Delphi
.NET
Flash
Front-Page
HTML
JavaScript
PHP
Python
Web
Web 2.0
Windows
Serviços
Mural
Contadores
Web Objects
GamesDaNet
Chama MSN
Jogos Online
Feed RSS
Expediente
Anuncie
Fórum
Bate-papo
Orkut
Divulgue-nos
Privacidade
Contato
Parceiros
Fontes Gratis
Br-Designer.com
CompreDeTudo
Iscambo.com
Garu Downloads
Oficina da Net
Seus Sonhos
.NET User Group
Piadas online
Casa dos Wm
HTML Staff
BaixaTube




Dicas CódigoFonte.net
Quarta Feira, 27 de Dezembro de 2006

ASP.NET 2.0 - Criando Web Services

Com o Visual Studio 2005 (VS 2005) ou mesmo com o Visual Web Developer (VWD) ficou muito mais fácil criar os seus próprios Web Services. Você duvida ? Então veja:

Roteiro para criar um web service:

1. Abra o Visual Web Developer Express Edition e no menu File selecione New Web Site
2. Quando a janela de diálogo New Web Site for exibida, selecione a linguagem (VB.NET) e a localização do Web Site
3. Na janela Solution Explorer clique com o botão direito do mouse no web site e selecione Add New Item. Quando a janela de diálogo Add New Item surgir selecione : 1-O item Web Service 2-Informe o nome do web service 3- Selecione a linguagem 4-Marque a opção - Place code in separate File; Clique no botão Add.

imagem_1-

4. O Visual Web Developer irá criar uma pasta para o web site que contém um arquivo
wsNet.asmx
e um arquivo code-behind para o web service. O arquivo code-behind
wsNet.vb
para o arquivo
.asmx
será colocado em uma pasta App_Code.

imagem_2-

5. O Web Service já é completamente funcional, mas neste momento ele é apenas uma casca sem nenhuma funcionalidade útil.

O seu trabalho é justamente incluir métodos no arquivo code-behind para expor as funcionalidades desejadas para o seu web service. Como exemplo vamos criar um método no nosso web service para retornar os dados de uma tabela.

Nota: Para este exemplo eu vou utilizar o SQL Server 2005 Express, criar um banco de dados Clientes.mdf e uma tabela Clientes com os seguintes campos: Codigo,Nome,Endereco,Foto e Renda conforme mostrado na janela DataBase Explorer (Figura 3):

imagem_3-
Figura 3

Os web services são uma ferramenta muito útil para efetuar a comunicação com sistemas remotos ou com sistemas construídos com tecnologias diferentes da usada para criar sua aplicação. Eles são convenientes para encapsular componentes legados COM especialmente quando você necessita acessar funcionalidades nestes componentes a partir de domínios diferentes.

Na ASP.NET um web service consiste de um arquivo .asmx e de uma classe code-behind que fornece a funcionalidade requerida. O conteúdo de um arquivo .asmx consiste de uma única linha que contém a diretiva WebService. A linha é igual a diretiva @ Page usada em um arquivo .aspx . Abaixo temos esta visão do nosso arquivo wsNet2.asmx:

imagem_4-

O conteúdo do arquivo code-behind para o web service consiste de uma classe que herda de System.Web.Services.WebService e apresenta um método
HelloWorld;


Além disto é incluído um atributo
WebService
para a definição da classe. Embora não seja explicitamente necessário o atributo
WebService
permite que você defina o namespace para o web service. Por padrão o namespace é definido para http://tempuri.org/, mas você pode alterar este valor definindo-o para uma URL que represente a sua empresa como http://www.codigofonte.net (Veja figura 5).

imagem_5-
Figura 5

VWD e o VS 2005 inclui também um atributo
WebServiceBinding
para a classe do web service. Este atributo indica que o web service que está em conformidade com a especificação WS-I BP 1.1 - Web Services Interoperability Basic Profile specification, para detalhes acesse: http://www.ws-i.org.

Para você incluir funcionalidades úteis a um web service você cria métodos como se fosse qualquer outra classe, exceto pelo fato que você precede cada método com o atributo
WebMethod
. O atributo
WebMethod
informa o VWD/VS 2005 que o método é para ser exposto como parte de um web service.

Por exemplo, o método
getListaClientes
que será mostrado no nosso exemplo consulta uma base de dados por uma lista de clientes e retorna a lista em um DataSet. O número de clientes retornados é definido pelo parâmetro numeroDeClientes. Nada de especial é feito no código para suportar o web service. O VWD/VS 2005 e o .NET Framework cuida da criação do XML e do encapsulamento SOAP usado para transferir os dados para o cliente.

Uma das grandes vantagens de criar web services com o VWD/VS 2005 e ASP.NET é a funcionalidade de teste e debug fornecidas pela ASP.NET. Ela fornece uma série de páginas que criam testes que podem ser usados para testar todos os métodos expostos do web service; além disto você pode definir breakpoints (pontos de parada de debug) no código do web service de maneira a percorrer passo a passo o código e assim efetuar a verificação da operação.

Vamos agora a parte prática que é criar o método
getListaClientes
para obter os dados da tabela Clientes do banco de dados Clientes.mdf criado no SQL Server 2005. Vamos exibir as informações dos campos : Codigo,Nome e Endereco.

Abra o arquivo
wsNet2.vb
e inclua o seguinte código:

Option Explicit On
Option Strict On

Imports System.Configuration
Imports System.Data
Imports System.Data.SqlClient

Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
 
<WebService(Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class wsNet2
    Inherits System.Web.Services.WebService

    <WebMethod()> _
  Function getListaClientes(ByVal numeroDeClientes As Integer) As DataSet

        Dim dbConn As SqlConnection = Nothing
        Dim da As SqlDataAdapter = Nothing
        Dim dSet As DataSet = Nothing
        Dim cmdTexto As String
        Dim strSQL As String

        Try
            'Obtem a string de conexão do web.config e abre a conexao com o banco de dados
            cmdTexto = ConfigurationManager.ConnectionStrings("dbConnectionString").ConnectionString
            dbConn = New SqlConnection(cmdTexto)
            dbConn.Open()

            'Define a consulta SQL para obter os dados da tabela Clientes
            strSQL = "SELECT Top " &amp; numeroDeClientes.ToString() &amp; " " &amp; _
             "Codigo, Nome, Endereco " &amp; _
             "FROM Clientes " &amp; _
             "ORDER BY Nome"

            'cria um novo dataset e preenche-o com os dados dos clientes
            dSet = New DataSet
            da = New SqlDataAdapter(strSQL, dbConn)
            da.Fill(dSet)

            'retorna a lista de clientes
            Return (dSet)

        Finally
            'limpa a memoria
            If (Not IsNothing(dbConn)) Then
                dbConn.Close()
            End If
        End Try
    End Function
End Class


Para testar o web service rode o projeto usando o servidor ASP.NET. Será apresentada a seguinte página referente ao arquivo
wsNet2.asmx


imagem_6-
Veja o método
GetListaClientes
definido no arquivo
wsNet2.vb


Quando você clicar no link
GetListaClientes
será apresentada a página abaixo onde você deve informar o parâmetro que indica quantos clientes deseja obter referente ao parâmetro numeroDeClientes. Esta página exibe o conteúdo da requisição XML e mensagem response para o método usando SOAP, Get HTTP e Post HTTP.

imagem_7-

Ao informar o valor do parâmetro e clicar no botão Invoke, a ASP.NET gera uma requisição HTTP e submete-a ao web service. O Web Service responde com um HTTP response contendo os dados requisitados no formato XML. Para o exemplo é retornado a lista de 2 clientes solicitados conforme figura abaixo:

imagem_8-

Nada de muito complexo não é mesmo? É óbvio que podemos criar web services mais complexos, isto fica com vocês! :)

Até mais.

referências: http://www.w3.org/TR/wsdl

Por José Carlos Macoratti (www.macoratti.net) e Adaptado por Emmanuel Alves (www.codigofonte.net)

Veja mais

Comentários do artigo [Novo comentário]

Nenhum comentário, seja o primeiro a comentar.
Para adicionar um comentário você deve efetuar o login
Gostou do CódigoFonte.net? Quer indicar a um amigo?
Preencha os campos a seguir.
Seu Nome:
Seu E-mail:
E-mail de seu Amigo:



» Busca específica

BuscaPé, líder em comparação de preços na América Latina





» Notebooks?
» Procurando o que comprar? CompreDeTudo.com


Melhor Visualizado com
800x600 de Resolução
CodigoFonte.net » CodigoFonte.eti.br » CompreDeTudo.com » MeuMural.com.br » Todos os Direitos Reservados © 2002/2008