You are on page 1of 19

Web Services para iniciantes -

1 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

imasters.com.br > Portal Fruns 7Masters Revista Cursos MacMagazine iMasters Shop
/DESIGN

/DESENVOLVIMENTO

/BANCO DE DADOS

/MKT DI

.NET , WEBSERVICES

Por Ramon Dures em 13/09/2005

CURTIRAM

SHARES

COMPAR

Acompanhando a evoluo e padronizao


da internet como mais um meio de comunicao, sugiram
no mercado novas ferramentas de desenvolvimento como o ASP.NET
da Microsoft e novos padres como o WebServices que vamos
discutir nesse artigo. O WebServices veio preencher uma lacuna
no mercado que era a necessidade de integrao entre
os mais diversos ambientes existentes que no se falavam
entre si por falta de um "Padro" e fortalecer
o desenvolvimento distribudo de forma a trabalhar em conjunto
com os novos recursos de comunicao da internet.

12/01/2017 20:54

Web Services para iniciantes -

2 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

Os WebServices funcionam de forma semelhante a


um componente que voc instala na mquina local.
Porm, esse componente pode ficar residente em qualquer
mquina, seja ela na sua empresa, na empresa de terceiros..
e at na "China". isso mesmo, at
na "China". Ento, usando a internet e o XML
(Extensible Markup Language) para troca de informaes,
voc executa um mtodo desse componente que dispara
o processamento no servidor remoto e voc recebe a resposta
na sua aplicao.

A principal diferena em relao


aos componentes atuais a padronizao do
XML para troca de informaes, fazendo com que a
comunicao do mesmo ultrapasse as barreiras dos
Firewall impostos para segurana de nossas redes, pois
a nica coisa que trafega o XML e usando a porta
80 (Padro) em conjunto com o j conhecido HTTP
e o SOAP(Sabo), que cuida do transporte
dos dados.

Para troca de informao entre a


aplicao e o WebServices, necessrio
que essa aplicao conhea o funcionamento
do mesmo. Isso feito por meio da leitura do WSDL

NEWSLETTER

Fique por dentro de todas as novidades, eventos,


Nada mais que um documento ou "contrato" em
cursos e muito mais

XML que contm todas as regras do WebServices. Ainda temos


mais uma sigla a falar que o UDDI, uma
espcie de pginas amarelas de WebServices, cujo ENVIAR
objetivo encontra facilmente os links para os componentes.

12/01/2017 20:54

Web Services para iniciantes -

3 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

Ao contrrio do que muitos pensam, o padro


WebServices no proprietrio da Microsoft.
Pelo contrrio, definido por um consrcio
de diversas empresa WS-I conforme Figura
1 de forma a manter a integrao entre
todas as plataformas que venham a utilizar esse padro.
Permitindo assim a perfeita comunicao e troca
de informaes. O que aconteceu que a Microsoft
acreditou desde cedo no XML e investiu muito em todos os seus
produtos, principalmente na plataforma .NET, permitindo assim
a fcil e rpida integrao com seus
produtos.

Figura 01
WS-I Padronizador do WebServices

No ambiente .NET os WebServices se encaixam dentro


do grupo de aplicaes ASP.NET conforme visto na
Figura 2.

NEWSLETTER

Fique por dentro de todas as novidades, eventos,


cursos e muito mais

Figura 02
WebServices Dentro do .NET Framework
ENVIAR

12/01/2017 20:54

Web Services para iniciantes -

4 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

O XML foi adotado por j ser um padro


da indstria e ser independente da plataforma adotada,
sendo ainda controlado pelo World Wide Web Consortium (W3c). Facilmente
voc consegue transformar o mesmo em outro formato independente
da aplicao entender o XML.

Implementando WebServices

Na plataforma .NET essa implementao


bastante simples como vou demonstrar nesse artigo e consiste
de duas partes:

Criar
um WebServices (Para ser utilizado por terceiros)
Consumir
um WebServices (Desenvolvido por terceiros)

Portanto definido se voc quer criar ou consumir


um WebServices grande parte do trabalho de implementao
j feita automaticamente pela plataforma .NET
no necessitando por parte do programador se preocupar
com a troca de informao do XML e utilizao
do SOAP ou WSDL.

Ento para criar um WebServices voc

NEWSLETTER

Fique por dentro de todas as novidades, eventos,

pode adicionar pelo Visual Studio um arquivo do cursos


tipo *.asmx
a
e muito mais

um projeto ASP.NET ou conforme esse exemplo iniciar um novo proje


especifico para WebServices conforme Figura 3 e Figura
4.

ENVIAR

12/01/2017 20:54

Web Services para iniciantes -

5 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

Figura 03
Iniciando novo projeto WebServices

Figura 4 Solution Explorer

A primeira coisa que voc vai observar


a extenso do arquivo, para WebServices o .NET utiliza
o *.asmx, observe tambm que esse projeto
no tem interface, portanto voc no pode

NEWSLETTER

Fique porento
dentro de todas as novidades, eventos,
arrastar componentes para montar layout. O propsito
cursos e muito mais

criar uma classe (Componente) que seja visualizada dentro


de outra aplicao. Para iniciarmos efetue dois
cliques no formulrio e vamos ao cdigo conforme

ENVIAR

Figura 5. Observe que o cdigo igual

12/01/2017 20:54

Web Services para iniciantes -

6 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

ao de uma outra classe qualquer e realmente igual mesmo.


A nica diferena o atributo <WebMehod()>_
que voc tem que colocar em cada mtodo que voc
queria tornar visvel pelo WebServices. A segunda coisa
que voc vai ter que observar os tipos de retornos
dos mtodos. Para o caso de WebServices voc somente
pode utilizar os tipos: Array,String,Int,DataSet,Boolean

Chamando a ateno para o tipo DataSet,


que por ser baseado em XML pode ser serializado e transportado
facilmente pela web. Sendo completamente recuperado do outro lado.
Altere o cdigo pelo apresentando na Listagem 01.
Esse exemplo est criando dois mtodos, o primeiro
realiza a soma de dois nmeros e os segundo, realiza uma
consulta no banco de dados e retorna os dados.

NEWSLETTER

Fique por dentro de todas as novidades, eventos,


cursos e muito mais

Figura 05 Classe padro


do Web Services

ENVIAR

12/01/2017 20:54

Web Services para iniciantes -

7 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

Listagem 01 Criando mtodos

Imports System.Data.SqlClient

Imports System.Web.Services

<System.Web.Services.WebService(Namespace
:= "http://tempuri.org/wstreinamento/Service1")>
_

Public Class Service1

Inherits System.Web.Services.WebService

<WebMethod(Description:="Somar
valores")> _
Public Function Somar(ByVal intValor1 As Int32, ByVal IntValor2
As Int32) As Int32
Return intValor1 + IntValor2
End Function

<WebMethod(Description:="Consulta
banco de dados e retorna DataSet")> _
Function RetornaDataSet(ByVal strQuery As String) As DataSet

NEWSLETTER
Dim conn As New SqlConnection

Fique por dentro de todas as novidades, eventos,


cursos e muito mais

Dim cmd As New SqlCommand


Dim da As New SqlDataAdapter
Dim ds As New DataSet

ENVIAR

12/01/2017 20:54

Web Services para iniciantes -

8 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

Lembre de alterar os dados de acesso ao


banco de dados
conn.ConnectionString = "Data Source=localHost; User ID=sa;
Password=;Initial Catalog= Northwind;"
cmd.Connection = conn
cmd.CommandText = strQuery
da.SelectCommand = cmd
da.Fill(ds)
conn.Dispose()
cmd.Dispose()
da.Dispose()
Return ds
End Function

End Class

Mais uma vez observando o cdigo apresentado


deduzimos claramente que a implementao no
tem diferena de nenhuma outra classe, deixando esse processo
completamente simples e isso mesmo. Seu WebServices j
est pronto e o .NET oferece uma interface de teste para
que possamos ver o resultado antes de enviar para o cliente. Para
isso basta acessar pela sua maquina a url do mesmo http://localhost/wstreinamento
/service1.asmx
e confira o resultado apresentado na Figura 6.

NEWSLETTER

Fique por dentro de todas as novidades, eventos,


cursos e muito mais

ENVIAR

12/01/2017 20:54

Web Services para iniciantes -

9 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

Figura 06 Interface de
testes do WebServices

Agora clicando no link Somar, veja o resultado


na Figura 07 e Figura 08.

Figura 07
Mtodo somar

Figura 08 XML Resultante


da soma dos valores no servidor

Achou fcil at esse ponto, imagine


o prximo mtodo RetornaDataSet, confira na
9 e 10.

NEWSLETTER

Fique por dentro de todas as novidades, eventos,


cursos e muito mais

ENVIAR

12/01/2017 20:54

Web Services para iniciantes -

10 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

Figura 09 Passando uma


query sql como parametro

Figura 10
XML resultante da consulta ao banco de dados.

Fantstico hein!!! Seu WebServices j


est funcionando. Voc no precisa implementar
mais nada. Basta passar o link do WSDL (Figura 6)
para quem for utilizar e pronto. At o WSDL ele gera automaticamente
confira na Figura 11.

NEWSLETTER

Fique por dentro de todas as novidades, eventos,


cursos e muito mais

ENVIAR

12/01/2017 20:54

Web Services para iniciantes -

11 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

Figura 11
WSDL gerado automaticamente

Agora vamos consumir esse WebServices, para nosso


exemplo poderamos utilizar qualquer aplicao
.NET, WebServices um componente como outro qualquer.
Vamos utilizar neste teste uma aplicao Winforms,
poderia ser uma para PocketPC ou mesmo outra Web. E at
outras plataformas que tenham suporte a WebServices.

Inicie um novo projeto, depois nesse projeto no


Solution Explorer escolha ADD WebReference conforme Figura
12. E entre com a url do WSDL http://localhost/wstreinamento/service1.asmx?WSDL
conforme Figura 13 , depois defina o nome do
NameSpace (Espao de nome) para classe que o .net vai gerar
de forma a disponibilizar o WebServices dentro do cdigo,
confira na Figura 14.

NEWSLETTER

Fique por dentro de todas as novidades, eventos,


cursos e muito mais

ENVIAR

Figura 12 Adicionando

12/01/2017 20:54

Web Services para iniciantes -

12 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

referencia Web ( WebServices)

Figura 13 Adicionando
referencia Web ( WebServices)

Figura 14 Alterando
nome da referencia

Finalmente aps concluir a etapa da


Figura 14 voc criou um novo NameSpace que vai
NEWSLETTER

Fique por dentro de todas as novidades, eventos,

conter a classe para esse WebServices, neste ponto


.NET
criou
cursos o
e muito
mais
outras classes internas que chamamos de "Proxy" para
encapsular a trocar de informaes. Agora adicione
01 DataGrid, 01 TextBox (ID=txtConsulta) e 01 ButtonENVIAR
conforme
Figura 15. Depois efetue dois cliques no boto

12/01/2017 20:54

Web Services para iniciantes -

13 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

e adicione o cdigo da Listagem 2.

Figura 15 Montando formulrio


para testes

Listagem 02 Adicionando cdigo


para consulta ao WebServices

Private Sub Button1_Click(ByVal


sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click

Dim ws As New wsFacil.Service1


Me.DataGrid1.DataSource = ws.RetornaDataSet(txtConsulta.Text).Tables(0)

End Sub

NEWSLETTER
Aps adicionar o cdigo voc

Fique por dentro de todas as novidades, eventos,


cursos e muito mais

ver que sua aplicao vai realizar consulta


no banco de dados, sem que voc tenha feito nenhuma codificao
para isso. Comprove na Figura 16. Volte a imaginar

ENVIAR

12/01/2017 20:54

Web Services para iniciantes -

14 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

se essa url fosse de um computador na "China" voc


estaria daqui efetuando uma consulta l e recebendo os
dados. Cabe a voc implementar todos mtodos e utilizar
esse recurso a vontade.

Figura 16
Testando o aplicativo

Finalizando

WebServices um dos assuntos mais tratados


no momento pela facilidade de integrao entre ambientes
diferentes, e por est seguindo uma linha de padronizao
permitindo a total integrao. Sendo assim esse
WebServices que voc implementou pode ser utilizado por
outra plataforma no .NET e vice-versa. O diferencial que

NEWSLETTER

Fique por dentro de todas as novidades, eventos,


voc vai encontrar aqui a facilidade de implementao.
cursos e muito mais

Isso realmente indiscutvel e tem trazido grande


mercado para plataforma .NET. Existe outros temas ainda relacionad
como segurana que fica para prximo artigo!!

ENVIAR

12/01/2017 20:54

Web Services para iniciantes -

15 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

Download
cdigo fonte

O que voc gostaria saber? Aguardo seu comentrio!


Ele muito importante. Participe! At prximo
artigo!

Voc de Salvador Bahia, ento


participe do grupo de usurios .NET http://www.mutex.com.br

CURTIU?

COMPARTILHE!

Mais Lidos da ltima Semana


Tendncias Por Elton Minetto
1 Aplicativos que foram indispensveis em
2016

Desenvolvimento Por Diego Pinho


2 Como instalar plugins no Vim e aumentar a
produtividade

Desenvolvimento Por Paul M. Jones


3 Conservando no recurso errado

Android Por George Batschinski


4 Como criar um aplicativo similar ao
WhatsApp

DevOps Por Tetiana Markova


5 Guia de configurao de containers para
aplicativos Java complexos

.NET Por Renato Groffe


6 Migrando projetos ASP.NET Core para a
verso 1.1

NEWSLETTER

Fique por dentro de todas as novidades, eventos,


cursos e muito mais

O seu endereo de e-mail no ser publicado. Campos obrigatrios so m


ENVIAR

12/01/2017 20:54

Web Services para iniciantes -

16 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

Postar comentrio

Polis
30 de janeiro de 2006 s 11:03

Responder

Desenvolvimento de Software
20 de junho de 2012 s 18:28

Responder

Felipe Alencar Magalhes


14 de agosto de 2006 s 13:06

NEWSLETTER
0

Responder

Thiago Pina
26 de abril de 2008 s 17:23

Fique por dentro de todas as novidades, eventos,


cursos e muito mais

ENVIAR

12/01/2017 20:54

Web Services para iniciantes -

17 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

Responder

Daniel E. Lucia
12 de abril de 2011 s 9:25

Responder

Alan Nardin
13 de maio de 2011 s 21:31

Responder

Alberto
18 de maio de 2011 s 21:59

Responder

Toni
6 de janeiro de 2013 s 22:13

Responder

NEWSLETTER

Fique por dentro de todas as novidades, eventos,


cursos e muito mais

Eduardo
1 de maro de 2013 s 10:46
ENVIAR

12/01/2017 20:54

Web Services para iniciantes -

18 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

Responder

Pingback: Chamando WebServices pelo VBA | Acordo Coletivo (Petroleiros, Bancrios, Prof de Sade)

Jamil
20 de agosto de 2013 s 8:51

Responder

rodox
19 de agosto de 2015 s 10:24

Responder

Ricardo
25 de junho de 2016 s 19:43

Responder

NEWSLETTER

Fique por dentro de todas as novidades, eventos,


cursos e muito mais

ENVIAR

12/01/2017 20:54

Web Services para iniciantes -

19 de 19

http://imasters.com.br/artigo/3561/web-services/web-services-para-ini...

Desenvolvimento

Design

Banco de dados

Marketing Digital

Agile

3ds max

Interbase

Contedo Digital

Ajax

Acessibilidade

MongoDB

E-commerce

Anlise de Dados

Arquitetura de
Informao

MySQL

E-mail Marketing

Oracle

Mercado

PostgreSQL

Publicidade Online

SQL Server

Redes Sociais

CakePHP
CSS
Front End
HTML
Java

Design Responsivo
Games
Usabilidade
User Experience

Tendncias
Infra e Cloud

JavaScript

Cloud Computing

Mobile

PHP

Linux

Android

Python

Microsoft Azure

iPhone & iPad

Ruby

Segurana
Site Blindado

NEWSLETTER
Fique por dentro de todas as novidades, eventos,
cursos e muito mais

Sobre o iMasters

Poltica de Privacidade

iMasters Expert (english blog)


ENVIAR

12/01/2017 20:54