29.06.2013 Views

Aprenda de uma forma simples , objetiva e direta os ... - Macoratti.net

Aprenda de uma forma simples , objetiva e direta os ... - Macoratti.net

Aprenda de uma forma simples , objetiva e direta os ... - Macoratti.net

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Curso <strong>de</strong> Introdução a Plata<strong>forma</strong> .Net FrameWork SDK<br />

Capítulo 10 - Web Services<br />

Um Web Service é <strong>uma</strong> maneira uniforme pela qual <strong>os</strong> objet<strong>os</strong> em um servidor<br />

aceitam solicitações que chegam <strong>de</strong> clientes que estão usando o mínimo<br />

<strong>de</strong>nominador comum do HTTP/XML. Para criar um Web Service você não tem <strong>de</strong><br />

apren<strong>de</strong>r <strong>uma</strong> nova maneira <strong>de</strong> programar. Você <strong>simples</strong>mente escreve um objeto<br />

.NET como se ele estivesse sendo acessado <strong>direta</strong>mente por clientes locais, marcao<br />

com um atributo que diz que você quer que ele esteja disponível para <strong>os</strong> clientes<br />

Web, e o ASP.NET faz o resto. O ASP.NET automaticamente monta <strong>uma</strong> infraestrutura<br />

pré-fabricada que aceita as solicitações que chegam por meio do HTTP e<br />

as mapeia para chamadas no seu objeto. Quando você coloca seus objet<strong>os</strong> em um<br />

Web Service, eles po<strong>de</strong>m funcionar com qualquer outro na Web que fale HTTP e<br />

XML, que será o caso <strong>de</strong> tod<strong>os</strong> no universo, in<strong>de</strong>pen<strong>de</strong>ntemente do tipo <strong>de</strong> sistema<br />

operacional e ambiente <strong>de</strong> processamento em que estiverem funcionando. Você não<br />

precisa escrever a infra-estrutura que lida com a comunicação Web; o .NET<br />

Framework provi<strong>de</strong>ncia isso para você.<br />

No lado cliente, o .NET proporciona classes proxies que permitem acesso fácil<br />

e baseado em função a<strong>os</strong> Web Services fornecid<strong>os</strong> por qualquer servidor que aceite<br />

solicitações HTTP. Uma ferramenta <strong>de</strong> <strong>de</strong>senvolvedor lê a <strong>de</strong>scrição do Web Service<br />

e gera <strong>uma</strong> classe Proxy contendo funções na linguagem que você usa para<br />

<strong>de</strong>senvolver o cliente. Quando o seu cliente chama <strong>uma</strong> <strong>de</strong>ssas funções, a classe<br />

Proxy cria <strong>uma</strong> solicitação HTTP e a envia para o servidor. Quando a resp<strong>os</strong>ta volta<br />

do servidor, a classe Proxy analisa <strong>os</strong> resultad<strong>os</strong> e <strong>os</strong> retorna da função. Isso<br />

permite que o seu cliente baseado em função p<strong>os</strong>sa interagir <strong>de</strong> <strong>forma</strong> uniforme com<br />

qualquer servidor Web que fale HTTP e XML, que é a linguagem que <strong>de</strong>verá ser<br />

falada por tod<strong>os</strong>.<br />

Exemplo <strong>de</strong> um Web Service básico:<br />

<br />

' A linha do cabeçalho acima diz ao ASP.NET que este arquivo contém<br />

' um Web Service escrito na linguagem Visual Basic e que o<br />

' nome da classe que fornece aquele serviço é TimeService<br />

' Importe <strong>os</strong> namespaces (pense neles como referências)<br />

' necessári<strong>os</strong> para um Web Service.<br />

Imports System<br />

Imports System.Web.Services<br />

' Declare <strong>uma</strong> nova classe para n<strong>os</strong>so novo serviço.<br />

' Ela <strong>de</strong>ve herdar da classe-base fornecida pelo sistema, WebService.<br />

Public Class TimeService : Inherits WebService<br />

' Coloque as funções na classe<br />

' Marque-as como WebMethods<br />

Public Function GetTime (ShowSeconds as Boolean) As String<br />

' Execute a regra <strong>de</strong> negócio <strong>de</strong> n<strong>os</strong>sa função.<br />

' Determine a hora atual, <strong>forma</strong>te conforme solicitado e retorne a string.<br />

Dim dt As DateTime<br />

If (ShowSeconds = True) Then<br />

GetTime = dt.Now.ToLongTimeString<br />

Else<br />

GetTime = dt.Now.ToShortTimeString<br />

End If<br />

End Function<br />

End Class<br />

133

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!