Anda di halaman 1dari 66

KATIA GOMES DA SILVA

PROGRAMAO PARA DISPOSITIVOS MVEIS COM A


PLATAFORMA .NET

Palmas TO
2006

KATIA GOMES DA SILVA

PROGRAMAO PARA DISPOSITIVOS MVEIS COM A


PLATAFORMA .NET

Trabalho de Estgio apresentado


como
requisito
parcial
da
disciplina Prtica de Sistemas de
Informao I do curso de
Sistemas
de
Informao,
orientado pelo Prof. M. Sc.
Fernando Luiz de Oliveira.

Palmas TO
2006

KATIA GOMES DA SILVA

PROGRAMAO PARA DISPOSITIVOS MVEIS COM A


PLATAFORMA .NET

Trabalho de Estgio apresentado


como
requisito
parcial
da
disciplina Prtica de Sistemas de
Informao I do curso de
Sistemas
de
Informao,
orientado pelo Prof. M. Sc.
Fernando Luiz de Oliveira.

BANCA EXAMINADORA

_____________________________________________
Prof. M. Sc. Fernando Luiz de Oliveira
Centro Universitrio Luterano de Palmas

_____________________________________________
Prof. M. Sc. Madianita Bogo
Centro Universitrio Luterano de Palmas

_____________________________________________
Prof. M. Sc. Ricardo Marx Costa Soares de Jesus
Centro Universitrio Luterano de Palmas

Palmas - TO
2006

SUMRIO

1.

INTRODUO ................................................................................................ 8

2.

REVISO DA LITERATURA ......................................................................... 10


2.1

Dispositivos Mveis................................................................................ 10

2.1.1

Telefones Celulares Comuns.......................................................... 11

2.1.2

PDAs ............................................................................................. 13

2.1.3

SmartPhones (Telefone Inteligente) ............................................... 13

2.2

Programao para Dispositivos Mveis ................................................. 15

2.2.1

J2ME............................................................................................... 15

2.2.2

QuickFrame .................................................................................... 15

2.2.3

.NET para Programao de Dispositivos Mveis............................ 16

2.3

Plataforma .NET .................................................................................... 17

2.3.1

Visual Studio .NET.......................................................................... 19

2.3.1.1 Emuladores..................................................................................... 19
2.3.2
2.4

Utilizao de Web Services ................................................................... 22

2.5

Exemplificao da Integrao das Tecnologias ..................................... 24

3.

MATERIAIS E MTODOS ............................................................................ 31


3.1

Local e perodo ...................................................................................... 31

3.2

Material .................................................................................................. 31

3.3

Metodologia ........................................................................................... 32

4.

5.

.NET Compact Framework.............................................................. 20

RESULTADOS E DISCUSSES .............................................................. 33

4.1

Banco de dados ..................................................................................... 34

4.2

Criao do Web Service ........................................................................ 35

4.3

Desenvolvimento da aplicao para SmartPhone ................................. 40

CONSIDERAES FINAIS .......................................................................... 44

LISTA DE FIGURAS

Figura 1 Exemplos de dispositivos mveis ....................................................... 11


Figura 2 Requisio de pginas Web atravs do protocolo WAP .................... 12
Figura 3 Estrutura do .NET Framework ............................................................ 18
Figura 4 Emulador ............................................................................................ 20
Figura 5 Arquitetura do .NET Compact Framework.......................................... 21
Figura 6 Ciclo de acesso ao Web Service ........................................................ 23
Figura 7 Tela de desenvolvimento do prottipo................................................ 25
Figura 8 Trecho do cdigo do prottipo ContaFacil.vb ..................................... 25
Figura 9 Cdigo de ligao entre a aplicao e o Web Service ....................... 26
Figura 10 Tela da execuo da aplicao no emulador SmartPhone .............. 27
Figura 11 Cdigo do mtodo de retorno dos dados do Web Service ............... 27
Figura 12 Arquivo XML ................................................................................... 278
Figura 13 - Visualizao do arquivo Produtos.asmx em um browser .................. 29
Figura 14 Resultado da execuo do mtodo RetornaProdutos ...................... 30
Figura 15 Arquitetura da aplicao................................................................... 33
Figura 16 Modelo entidade relacionamento...................................................... 34
Figura 17 Classe e mtodos do Web Service................................................... 35
Figura 18 WebMethod consultarPorNome........................................................ 37
Figura 19 Visualizao do arquivo Service.asmx ............................................. 38
Figura 20 Janela para insero do parmetro do mtodo consultarPorNome . 39
Figura 21 Resultado da execuo do mtodo consultarPorNome.................... 40
Figura 22 Tela da pgina inicial da aplicao................................................... 41
Figura 23 Mtodo de consulta por nome .......................................................... 42
Figura 24 Cdigo do caminho do Web Service ................................................ 42
Figura 25 Tela do resultado da consulta por nome .......................................... 43

LISTA DE ABREVIATURAS

ASMX = Active Server Method Extension


CLR = Commom Language Runtime
CLS = Common Language Specidication
HTTP = Hyper Text Transfer Protocol
IL = Intermediate Language
J2ME = Java 2 Micro Edition
MSIL = Microsoft Intermediate Language
PDA = Personal Digital Assistants
SOAP = Simple Object Access Protocol
WAP = Wireless Application Protocol
WML = Wireless Makup Language
WSDL = Web Services Description Language
XML = Extensive Mark up Language

RESUMO

Resumo: As aplicaes desenvolvidas para dispositivos mveis esto passando


por grandes transformaes tecnolgicas, isso se deve necessidade de haver
comunicao em qualquer lugar e a qualquer momento. Este trabalho visa
desenvolver uma aplicao para programao de dispositivos mveis, em
especial celulares (SmartPhones), a partir de uma aplicao bsica de
armazenamento, busca e acesso a base de dados, utilizando a plataforma .NET,
Web Services e a ferramenta Visual Studio.NET para o desenvolvimento da
aplicao.

Palavras-chave: Dispositivos Mveis, Plataforma .NET, Web Services.

1. INTRODUO
A mobilidade o termo utilizado para identificar dispositivos que podem ser
operados distncia ou sem fio (NETTO, 2004). A particularidade que os
usurios e empresas procuram na atualidade poder executar as tarefas a
qualquer hora e em qualquer lugar, sem a dependncia de fios ou de um
computador desktop. Os usurios, por meio dos dispositivos mveis, adquirem
mobilidade e ganhos de produtividade, desempenhando suas tarefas com acesso
mais fcil e abrangente informao. As possibilidades de uso para esses
dispositivos so inmeras, dentre as quais, podem ser citada a programao para
jogos, para entretenimento em geral, armazenamento e busca de informaes,
envio e recebimento de sons e imagens e acesso a Internet.
As tecnologias para desenvolvimento de aplicaes para dispositivos
mveis oferecem recursos que permitem integrar diversos aplicativos e
plataformas, como J2ME (Java 2 Micro Edition), .NET e uma nova plataforma que
est em desenvolvimento, a QuickFrame, que se caracteriza por ser padronizada
para desenvolvimento de software para dispositivos mveis.
Um dos componentes da plataforma .NET que oferece a estrutura
necessria para o desenvolvimento de aplicaes para dispositivos mveis o
.NET Compact Framework, que acompanha o Visual Studio .NET. O Visual Studio
.NET uma ferramenta que proporciona um ambiente de desenvolvimento
integrado em que se pode desenvolver, depurar, testar, disponibilizar Web
Services e aplicaes (BASIURA et al., 2003). Alm disso, oferece recursos
necessrios para o desenvolvimento de aplicaes mveis, tais como:
emuladores, que simulam um dispositivo mvel real e possui todos os recursos
oferecidos pelo mesmo, alm de facilitar os testes durante o desenvolvimento.

Este trabalho tem como objetivo, estudar as facilidades oferecidas pela


plataforma .NET no desenvolvimento de aplicaes para dispositivos mveis, em
especial SmartPhones. Para exemplificar estas facilidades ser desenvolvida uma
aplicao

responsvel

por

apresentar

resultado

do

vestibular

do

CEULP/ULBRA, localizado em um banco de dados remoto, o qual ser acessado


por meio de mtodos de um Web Service. Desta forma, ser realizada a
implementao de uma aplicao de armazenamento, busca e acesso a base de
dados.
Este trabalho est estruturado em captulos, divididos da seguinte forma: o
captulo 2 apresenta uma viso geral sobre os dispositivos mveis, a
programao

para

estes

dispositivos,

ferramenta

utilizada

para

desenvolvimento da aplicao para os dispositivos mveis, a utilizao da


plataforma .NET e seus componentes, assim como uma breve descrio de Web
Services. O captulo 3 apresenta os materiais e mtodos utilizados para o
desenvolvimento do trabalho. J o captulo 4 apresenta os detalhes do banco de
dados, da implementao do Web Service, do desenvolvimento da aplicao para
dispositivos

mveis

(SmartPhone)

os

passos

seguidos

para

seu

desenvolvimento. Em seguida, o captulo 5 apresenta as consideraes finais


sobre o trabalho. Por fim, no captulo 6 so apresentadas as referncias
bibliogrficas utilizadas para o desenvolvimento deste trabalho.

10

2. REVISO DA LITERATURA

Para o desenvolvimento deste trabalho foram realizadas pesquisas e estudos


sobre dispositivos mveis, plataforma .NET e Web Services, a fim de fornecer
embasamento terico sobre os mesmos. Esses estudos esto disponibilizados
nas sees seguintes.

2.1 Dispositivos Mveis


Os dispositivos mveis so ferramentas que podem ser utilizadas em qualquer
lugar que, alm das funcionalidades de agenda eletrnica ou assistente pessoal,
se caracterizam por serem sistemas computadorizados que facilitam a
comunicao, atravs do acesso Internet. Tm o objetivo de atender aos
usurios em movimento que necessitem de rapidez, facilidade e segurana no
acesso a informaes, independentemente da sua localizao fsica (PEKUS,
2002). So, por isso, tecnologias para a interligao de dispositivos mveis
grande rede, possibilitando, no s o trfego de voz, mas tambm o envio e
recebimento de dados, suprindo a necessidade de dispor de dados o tempo todo
e em qualquer lugar.
Estas operaes so viveis por meio de um dispositivo porttil (mvel)
como telefones mveis (celulares), diferentes tipos de PDAs (Personal Digital
Assistants) ou os SmartPhones, que so a juno do telefone celular com
diversos atributos de um PDA (TARIFA, 2004). A Figura 1 apresenta alguns
exemplos de dispositivos mveis.

11

Figura 1 Exemplos de dispositivos mveis

A Figura 1 apresenta alguns exemplos de dispositivos mveis, sendo dois


modelos de Pocket PC e um SmartPhone.

2.1.1 Telefones Celulares Comuns


Os telefones celulares evoluram de simples mecanismos de comunicao por
voz para agenda eletrnica, entreterimento em geral, acesso Internet, ou seja,
dispositivos mveis que podem ser operados em qualquer lugar e a qualquer
hora.
Os aparelhos celulares comuns no possuem a opo de download e
software de instalao, alm do que foi configurado durante o processo de
fabricao. Alguns possuem apenas a opo de navegar pela Internet. A
navegao pela Internet, via celular, realizada atravs da utilizao de um minibrowser, embutido no aparelho, para interpretar o contedo das pginas
acessadas.
Para o acesso Internet, o telefone celular necessita da tecnologia WAP
(Wireless Application Protocol), criada para visualizao de pginas da Internet
em clientes simplificados, com baixa capacidade de processamento, ou seja, a

12

tecnologia WAP, consiste na transformao, adaptao e criao de contedos


da Internet para a visualizao na tela de um celular (MSDN, 2003d). Esta
tecnologia caracteriza-se por ser um protocolo de transmisso de dados. Para
que as pginas da Internet sejam acessveis por aparelhos celulares,
necessrio utilizar a linguagem WML (Wireless Makup Language), que a
linguagem usada para montar as pginas acessveis por esta tecnologia. A Figura
2 mostra como essas pginas so requisitadas a partir do protocolo WAP.

CLIENTE
CLIENTE

GATEWAYWAP
WAP
GATEWAY

Requisio

SERVIDOR

Requisio

Conversor
HTTP e TCP/IP

WML
3

Resposta
5

Resposta Contedo
4

SERVIDOR WEB

Figura 2 Requisio de pginas Web atravs do protocolo WAP

Para oferecer pginas WML acessveis por celulares, necessrio utilizar


um mini-browser, um recurso embutido no aparelho, que responsvel pela
visualizao das pginas de Internet na tela do aparelho. A requisio da pgina
feita atravs dos protocolos TCP/IP e HTTP (Hyper Text Transfer Protocol), que
estabelece a comunicao com a Internet. Para demonstrar passo a passo
requisio de pginas Web por celulares, a requisio ser dividida em 5 etapas,
conforme ilustrado na Figura 2: a etapa 1 representa a solicitao do cliente de
uma pgina da Internet; na etapa 2 o gateway recebe a requisio e converte
para o padro HTTP/TCP/IP e envia para o servidor Web; na etapa 3 o servidor
Web recebe a solicitao e gera a pgina em cdigo WML e envia para o
gateway; na etapa 4 o gateway recebe o cdigo WML da pgina e, ento, o
encaminha para o cliente; e, por fim, na etapa 5 a pgina requisitada ser
visualizada pelo cliente (celular).

13

2.1.2 PDAs
A necessidade de disponibilizar aplicaes e informaes em qualquer momento
e em qualquer lugar fez surgir uma linha de dispositivos mveis conhecidos como
PalmTops ou Pocket PCs. Esses dispositivos podem ser considerados uma
revoluo, pois foram capazes de atingir o cotidiano das pessoas e fazer parte da
vida delas, modificando suas rotinas e decises. Os Pockets possuem grande
quantidade de memria, telas com pontos sensveis a toques, mouse simulado
por uma caneta (chamada de stylus), possuem modem, teclado e cmera digital
acoplada, tela colorida, rede sem fio embutida, ou seja, so computadores
pessoais portteis que auxiliam nas atividades do dia-a-dia (MIRANDA, 2004).
Mas ainda no possuem a mesma capacidade de processamento e memria de
um computador de mesa.

2.1.3 SmartPhones (Telefone Inteligente)


Para evitar o desconforto pela necessidade de carregar um PDA e um celular,
alm da necessidade de se obter maiores recursos e formas de aproveitar as
novas opes de conectividade e transmisso de dados em alta velocidade, foram
criados os SmartPhones. Estes dispositivos correspondem a um telefone celular
que possui atributos dos PDAs, com maior capacidade de memria e
processamento, recursos de expansibilidades e facilidades de acesso Internet
(MIRANDA, 2004).
Os SmartPhones foram planejados para serem usados da mesma maneira
que um celular, porm, com os recursos tcnicos disponveis em um PDA,
reunindo a mobilidade do primeiro e a capacidade de processamento do segundo.
A Microsoft criou um conjunto de setas para facilitar a manipulao da navegao,
discagem e acesso a dados no SmartPhone (TARIFA, 2004). Apesar das
semelhanas, os SmartPhones possuem uma tela pequena, no sensvel ao
toque e no suportam caneta (stylus) para simular o mouse (MIRANDA, 2004).

14

Alguns dos recursos que acompanham os SmartPhones so: o sistema


operacional Windows, Internet Explorer, Media Player e MSN Messenger.
possvel, ainda, a instalao de diversos aplicativos, alm de trazer o .NET
Compact Framework j instalado. Segundo Guimares (2004), o SmartPhone
realiza tarefas bsicas que um computador capaz de fazer, gerencia e-mails,
arquivos de texto, udio e vdeo, tira fotos, navega em alta velocidade pela
Internet, transfere dados para outros equipamentos e possui o tamanho de um
celular comum. um dispositivo mvel pequeno, que auxilia na realizao de
tarefas enquanto seus usurios esto em movimento, proporcionando ganho de
tempo.
Porm, existem limitaes computacionais devido ao tamanho destes
dispositivos, juntamente com os poucos recursos de hardware, uma vez que a
capacidade de processamento, armazenamento, memria, entre outros, so
inferiores ao de um computador convencional, ou seja, possuem arquiteturas e
tecnologias limitadas. Por isso, os mesmos no so capazes de realizar tarefas
com o mesmo desempenho de um computador, alm de no ser to prtico para
atividades como: montar documentos grandes, digitar e trabalhar com recursos
visuais.
A necessidade de um sistema operacional para ser utilizado nesses
dispositivos fez surgir sistemas operacionais como: Palm OS, que oferece
segurana para o armazenamento de informaes e facilita a integrao de
equipamentos com o ambiente de rede (PALM OS, 2005); Symbian OS,
desenvolvido exclusivamente para dispositivos mveis (SYMBIAN, 2005);
Windows CE, verso simplificada do Windows, criada pela Microsoft, que
facilmente pode ser embutido em hardware de pequena capacidade de memria e
processamento (MICROSOFT, 2005). A Microsoft lanou uma verso especial do
Windows CE, adaptando a interface para o uso de SmartPhones, o sistema
operacional Windows Mobile (MICROSOFT, 2005).

15

2.2 Programao para Dispositivos Mveis


As aplicaes desenvolvidas com a plataforma .NET, para serem executadas em
dispositivos mveis, necessitam de alguns recursos que os aparelhos celulares
comuns no possuem. Isso ocorre devido a vrios fatores como, por exemplo, os
diferentes tipos de aparelhos que usam processadores e hardware diferentes.
Alm de possurem arquiteturas e tecnologias diferentes, outro fator limitante
refere-se a pouca quantidade de memria para armazenamento de dados e
programas, o que dificulta a instalao de qualquer verso do .NET em celulares
comuns (MIRANDA, 2004).
Inicialmente, para o desenvolvimento de aplicaes para dispositivos
mveis, existiam apenas as linguagens derivadas do C++ e Visual Basic,
conhecidas como eVC e eVB (MIRANDA, 2004). A partir destas, surgiram outras
tecnologias para o desenvolvimento de aplicaes para dispositivos mveis, como
o J2ME, que no define um novo tipo de Java, mas adapta sua plataforma para
que seja possvel executar programas em dispositivos mveis (SUN, 2005); a
QuickFrame, projeto que visa padronizar uma plataforma para dispositivos mveis
(UNICAMP, 2005); e o .NET, plataforma que possui sua verso para dispositivos
mveis chamada de .NET Compact Framework (MSDN, 2003a). As sees
seguintes resumem cada uma destas tecnologias.

2.2.1 J2ME
O Java 2 Micro Edition (J2ME) a verso do Java desenvolvida para dispositivos
mveis,

projetada

para

dispositivos

com

memria,

vdeo

poder

de

processamento limitado (MUCHOW, 2004). A plataforma J2ME dividida em trs


camadas: configuraes, perfis e mquina virtual (SUN, 2005). So camadas
trabalhadas especialmente para serem utilizadas na programao para
dispositivos mveis.

2.2.2 QuickFrame

16

Com o objetivo de diminuir as barreiras no desenvolvimento de solues de


mobilidade e maximizar o poder criativo do maior nmero possvel de empresas
brasileiras de desenvolvimento de softwares, a Universidade Estadual de
Campinas (Unicamp), em parceria com a Intel, a Compera e a Universidade
Federal de Mato Grosso do Sul (UFMS), encaminharam Financiadora de
Estudos e Projetos (Finep) um projeto para a criao de uma nova plataforma de
desenvolvimento de software para dispositivos mveis: o QuickFrame (UNICAMP,
2005). O projeto tem como principal objetivo desenvolver uma plataforma padro
para dispositivos mveis, e est previsto para ser concludo em 2006. O objetivo
do projeto desenvolver uma plataforma bsica e estrutural de cdigo aberto
para a criao de aplicaes genricas (FUOCO, 2005), ou seja, permitir que os
programadores escrevam apenas uma vez o software para celulares, que rode
em qualquer modelo de aparelho, independentemente da tecnologia e de
caractersticas, tal como o tamanho da tela, por exemplo.

2.2.3 .NET para Programao de Dispositivos Mveis


Para a programao de dispositivos mveis, o .NET oferece vrias ferramentas
como o ASP .NET e .NET Compact Framework. Uma aplicao criada atravs do
ASP .NET para dispositivos mveis semelhante de uma aplicao ASP .NET
para pginas comuns, inclusive possuindo a mesma extenso de arquivo: .aspx
(AVELINO, 2004). O seu diferencial so os controles de servidor especializados
para dispositivos mveis, responsveis por possibilitar que uma pgina ASP .NET
seja adaptada automaticamente de acordo com o dispositivo utilizado. Assim,
pode-se acessar pginas ASP .NET em dispositivos mveis (um celular, por
exemplo), ou mesmo acess-las normalmente atravs do navegador Web de um
microcomputador.
Os controles de servidor, tanto para pginas ASP.NET comuns quanto
para dispositivos mveis, so praticamente os mesmos. Por exemplo, um controle
de servidor Label de uma pgina ASP. NET comum produz o mesmo efeito de
uma que ser executada para um dispositivo mvel. Porm, internamente
possuem caractersticas diferentes, pois o controle para pginas comuns precisa
apenas mostrar sada HTML. J o controle para dispositivos mveis precisa

17

primeiro preocupar-se com o dispositivo utilizado antes de exibir o texto solicitado,


utilizando uma linguagem tambm de marcao, a WML (Wireless Modeling
Language), projetada para especificar interfaces para dispositivos mveis,
levando em considerao o tamanho da tela e o mecanismo de paginao do
dispositivo (AVELINO, 2004).
Com o .NET Compact Framework (.NET CF) possvel o desenvolvimento
de aplicaes para dispositivos mveis, como Pockets e SmartPhones, usando
linguagens como VB.NET, C# ou J# (NETTO, 2005), alm da utilizao de Web
Services. O conceito do .NET Compact Framework ser apresentado nas
subsees seguintes.
2.3 Plataforma .NET
Segundo Deitel, Deitel e Nieto (2004), a plataforma .NET permite uma
independncia de linguagem, plataforma e de dispositivo na implementao de
software, possibilitando ao desenvolvedor, por exemplo, a escolha da linguagem
de programao no momento da criao do aplicativo, bastando que a linguagem
seja suportada pelo .NET. Para saber se a linguagem compatvel com o .NET
existe

uma

especificao,

conhecida

como

CLS

(Common

Language

Specidication) (MSDN, 2003b), que define um conjunto de regras que as


linguagens que implementam a .NET devem seguir.
A plataforma .NET executada sobre uma Commom Language Runtime
(CLR), responsvel pela execuo do programa, que capaz de executar mais de
vinte linguagens diferentes de programao (Pascal, C++, Haskell, Java, Scheme,
C#, VB, J#, etc.), interagindo entre si, possibilitando o desenvolvimento em
multilinguagens (MSDN, 2003c). Por isso, em um mesmo projeto pode-se
desenvolver cada mdulo em uma linguagem diferente.
Um dos principais elementos da plataforma .NET o .NET Framework, que
prov os servios e componentes necessrios para o desenvolvimento e
execuo de aplicaes baseadas em .NET. A arquitetura do .NET Framework
consiste de alguns componentes como: CLR e .NET Framework Class Library,
como mostra a Figura 3 (MSDN, 2003b).

18

Figura 3 Estrutura do .NET Framework

Na Figura 3, so definidos os componentes do .NET Framework. Entre eles


esto a CLR, que um ambiente de execuo, o qual d suporte s linguagens
habilitadas. Para que uma linguagem esteja habilitada ao .NET, seu compilador
deve gerar o chamado cdigo Microsoft Intermediate Language (MSIL), abreviado
como Intermediate Language (IL) (MSDN, 2003c). Este o cdigo que ser
executado pela CLR, ou seja, as linguagens so compiladas para um cdigo
intermedirio denominado IL que define as instrues para o CLR, depois disso o
cdigo IL ser compilado para cdigo de mquina, criando, assim, um aplicativo
nico.
O motivo da compilao para um cdigo intermedirio deve-se a
necessidade de portabilidade entre sistemas operacionais, a interoperabilidade
entre as linguagens e os recursos de gerenciamento de execuo, tornando os
programas desenvolvidos no .NET independentes de plataforma. Assim, o cdigo,
uma vez escrito e compilado, pode ser executado em qualquer plataforma de
sistema operacional (GALVIN, 2004).
A

interoperabilidade

de

linguagens

oferece

vrios

benefcios s empresas de software. Os desenvolvedores de Visual


Basic .NET e Visual C++ .NET podem trabalhar lado a lado no mesmo
projeto sem ter que aprender uma outra linguagem de programao
todos os seus cdigos so compilados em MSIL e ligados para formar
um programa (DEITEL, 2004).

19

Outro componente do .NET Framework o .NET Class Library, que uma


coleo de classes e tipos integrada com o ambiente de execuo (MSDN,
2003b). Para o desenvolvimento de aplicaes para dispositivos mveis utilizando
o .NET possvel utilizar um simples editor de texto, porm, para um
desenvolvimento mais completo recomendvel um ambiente mais sofisticado,
como o Visual Studio .NET, tema abordado na prxima seo.

2.3.1 Visual Studio .NET


O Visual Studio .NET facilita o desenvolvimento de aplicaes para dispositivos
mveis, uma vez que permite que uma aplicao seja desenvolvida numa mesma
ferramenta, sem a preocupao com o formato do aparelho a ser utilizado, bem
como quais os recursos que o mesmo disponibilizar. Assim, a aplicao poder
ser desenvolvida e utilizada tanto por um PDA, como por um SmartPhone.
Com o Visual Studio .NET podem-se criar pginas para Web, criar software
para Windows, ou seja, programas que sero instalados e utilizados no
computador, criar software para dispositivos mveis, utilizando as mesmas
linguagens, como VB.NET, C# ou J#, ou o desenvolvimento em multilinguagens.
Suporta, tambm, o desenvolvimento de Web Services, alm de facilitar a
atividade de testes da aplicao, atravs dos emuladores disponveis, que ser
visto na seo a seguir.

2.3.1.1 Emuladores
Para que seja possvel a simulao de um dispositivo mvel, necessrio instalar
um SDK (Software Development Kit) na ferramenta Visual Studio .NET,
permitindo que sejam feitos testes durante o desenvolvimento de uma aplicao
para dispositivos mveis. Um emulador de dispositivos mveis representar um
dispositivo real com todos os recursos que o mesmo possui, de acordo com o tipo
de aplicao que ser desenvolvida, possibilitando, caso necessrio, os ajustes
no aplicativo. Assim, quando for necessrio executar uma aplicao na

20

ferramenta de desenvolvimento, pode-se escolher se ser executado no


emulador, representado na Figura 4, ou em um dispositivo real que possui suporte
plataforma .NET Compact Framework, pois a ferramenta Visual Studio .NET
disponibiliza essas opes.

Figura 4 Emulador

A Figura 4 representa a tela principal do emulador do SmartPhone, que


serve para simular a execuo de uma aplicao, no sendo necessrio um
dispositivo real.

2.3.2 .NET Compact Framework


Para suprir a necessidade de uma plataforma especfica para dispositivos mveis,
a Microsoft desenvolveu o .NET Compact Framework (.NET CF) (MSDN, 2003a).
O .NET CF uma verso simplificada do .NET Framework, com um conjunto
especfico de ferramentas, desenvolvido especialmente para a implementao de
aplicaes em dispositivos mveis. J que o .NET CF um subconjunto do .NET
Framework, os desenvolvedores podem reutilizar grande parte da experincia e
conhecimento adquiridos na implementao de aplicaes desktop para o
desenvolvimento de aplicaes para dispositivos mveis. A arquitetura do .NET
Compact Framework demonstrada na Figura 5 (MSDN, 2003b).

21

Figura 5 - Arquitetura do .NET Compact Framework

A Figura 5 ilustra os elementos do .NET CF. Por ser uma verso


simplificada da .NET Framework, a .NET CF possui uma nova implementao da
CLR, modificada para suportar a execuo de aplicaes em dispositivos mveis,
isto , com memria, processamento e bateria limitados. A biblioteca de classes
(Class Library) do .NET CF possui menos da metade das classes da verso
completa do . NET Framework. Porm, possui todas as classes bsicas do .NET
Framework, o que suficiente para o desenvolvimento da maioria das aplicaes
(MSDN, 2003b), como, por exemplo, suporte WinForms (formulrios e
controles), data binding (ligao de dados), networking (recursos de acesso
rede LAN/WAN e suas derivaes Wireless) e acesso a dados.
Um dos fatores que levaram a excluso de algumas classes da biblioteca
do .NET Framework na verso simplificada que as aplicaes que so
computacionalmente difceis de programar contradiz os objetivos do .NET CF:
minimizar o processo de desenvolvimento de aplicaes. Por essa razo, o .NET
Compact Framework exclui funcionalidades como XML Path Language (XPath) e
Extensible Stylesheet Language Transformations (XSLT) presentes na verso
completa do .NET Framework (PEKUS, 2002).

22

O .NET CF possibilita, tambm, o desenvolvimento de aplicaes em


multilinguagens, ou seja, em uma mesma aplicao pode-se construir cada
mdulo em uma linguagem diferente, por exemplo: a classe de acesso a dados
em C# e os mdulos de interface em VB.NET possibilitando a integrao de
vrias linguagens numa mesma plataforma (NETTO, 2005).
As aplicaes desenvolvidas com o .NET CF possuem algumas
caractersticas como:

uma variedade expressiva de componentes visuais que so utilizados no


desenvolvimento de aplicaes como, por exemplo, botes, imagens, alm de
ser possvel fazer uso de recursos de interface mais sofisticados, por exemplo,
animaes.

possvel desenvolver aplicaes que possuem a opo de trabalhar off-line,


ou seja, processam dados localmente sem a necessidade de uma conexo
ativa.
A plataforma .NET CF permite tambm o desenvolvimento de aplicaes

que utilizam tecnologia de Web Services. A utilizao de um Web Service ser


apresentada na prxima seo.

2.4 Utilizao de Web Services


Gumz (2005) resume o Web Service como um padro de computao distribuda,
na qual deve existir a criao, publicao, localizao e acesso por sistemas
remotos. A utilizao de Web Services permite a comunicao de diferentes
aplicaes, podendo ser uma aplicao Web, uma aplicao Windows, ou de um
dispositivo mvel, sendo que as informaes podem ser compartilhadas e
acessadas por essas aplicaes, possibilitando consultas em tempo real aos
dados. Assim, um Web Service pode ser desenvolvido na plataforma .NET e ser
acessado por uma aplicao desenvolvida em outra plataforma, como a
plataforma Java, e vice-versa.
Assim, como os dispositivos mveis apresentam algumas limitaes de
recursos computacionais, a utilizao do Web Service um fator importante para
o desenvolvimento das aplicaes. Isto porque parte do processamento passa a
ser funo de servidores remotos, uma vez que o Web Service passa a ser o

23

responsvel pela conexo entre a aplicao e os dados armazenados no banco de


dados, alm de proporcionar a consulta de outras aplicaes aos dados
disponibilizados por meio dos servios do Web Service, conforme mostra a Figura
6.
INTERNET

WEB SERVICES
XML

BANCO DE DADOS
CLIENTE

Figura 6 Ciclo de acesso ao Web Service

A Figura 6 ilustra o ciclo de acesso ao Web Service, em que vrios tipos de


clientes conectados Internet podem ter acesso a diversos tipos de Web
Services, adequados para uso ou exibio no cliente que o solicitou, os quais
podem estar ligados a um banco de dados.
Para que a aplicao possa se comunicar com o Web Service, pode-se
usar a WSDL (Web Services Description Language). Esta uma linguagem
baseada em XML (Extensive Markup Language) para a representao das
funcionalidades de um Web Service (PEREZ, 2004). Essas funcionalidades
podem ser definidas em arquivos do tipo .asmx (Active Server Method
Extension), que descrevem exatamente como as duas partes, provedor do Web
Service e a aplicao que o utilizar, devero se comunicar. As aplicaes para
dispositivos mveis funcionam como clientes para Web Service, isto , consomem
os servios do Web Service, assim quando uma informao for solicitada por um
cliente (aplicao), o Web Service retornar os dados apropriados.
As

funcionalidades

de

um

Web

Service

so,

resumidamente,

fundamentadas na troca de dados e informaes. Como ele baseado no


protocolo SOAP (Simple Object Access Protocol), utilizado para o transporte de
dados e informaes (SOAP, 2003), qualquer plataforma que interprete rotinas
HTTP (Hyper Text Transfer Protocol) e manipule a linguagem XML pode utilizar

24

os dados dos Web Services sem qualquer problema (PEREZ, 2004). O protocolo
SOAP proporciona ao Web Service uma independncia de plataforma, linguagem
e localizao. No importa a linguagem que a aplicao foi desenvolvida, nem a
plataforma usada, assim como no importa onde o cliente est localizado, o Web
Service tem a capacidade de estabelecer conexo e compartilhar dados entre
sistemas diferentes, sem estarem ligados entre si.
A seguir ser apresentado um prottipo que servir para exemplificar
algumas das caractersticas apresentadas anteriormente, a fim de analisar o
ambiente de desenvolvimento e o modelo de programao sugerido para este
trabalho. Como ambiente de desenvolvimento do prottipo foi utilizado o Visual
Studio .NET 2005, o .NET Compact Framework, Web Service e, para a
visualizao e realizao dos testes, foi utilizado um emulador (SDK SmartPhone
2003), j instalado no Visual Studio.

2.5 Exemplificao da Integrao das Tecnologias


Como base para o desenvolvimento de uma aplicao para dispositivos mveis,
foi usada a aplicao de nome ContaFacil de Tarifa (2004). A aplicao
desenvolvida responsvel por realizar uma consulta dos valores do cardpio
(menu) de um restaurante, o qual ser apresentado na tela do emulador
SmartPhone, utilizando Web Service. A Figura 7 mostra a tela da aplicao sendo
desenvolvida.

25

Figura 7 Tela de desenvolvimento do prottipo

O prottipo foi criado a partir de um arquivo chamado ContaFacil.vb, que


possui o cdigo na linguagem VB.NET. No Visual Studio .NET, quando se inicia
uma aplicao para dispositivos mveis, um menu j est acoplado ao formulrio,
como mostra a Figura 7, necessrio, apenas, definir as suas opes e
implementar seus mtodos. Para esta aplicao foi criada, no menu, a opo
Valores que, quando selecionada, ir abrir outro formulrio, onde sero
apresentados os valores que contm no menu do restaurante, conforme parte dos
cdigos mostrados na Figura 8.
Private Sub menuSair_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles menuSair.Click
Me.Close()
End Sub
Private Sub menuValores_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles menuValores.Click
'Instancia um objeto do tipo frmValor
Dim frmNovo As New frmValor
'Chama o formulrio instanciado
frmNovo.ShowDialog()
End Sub

Figura 8 Trecho do cdigo do prottipo ContaFacil.vb

26

Na Figura 8, o mtodo menuValores_Click responsvel por chamar


um novo formulrio, frmValor, que o formulrio final da aplicao. O mtodo

menuSair_Click responsvel pelo encerramento da execuo. A seguir,


aps a seleo da opo 1 Valores do menu na tela do emulador, conforme
mostrado na Figura 7, o cdigo existente no evento Load do formulrio
frmValor instancia a funo de retorno dos dados requisitados, presente na
aplicao do Web Service, conforme indicado na Figura 9.

l Public Class frmValor


Inherits System.Windows.Forms.Form
Friend WithEvents lstProdutos As System.Windows.Forms.ListView
Friend WithEvents colProdutos As System.Windows.Forms.ColumnHeader
Friend WithEvents colValor As System.Windows.Forms.ColumnHeader
Friend WithEvents MainMenu1 As System.Windows.Forms.MainMenu
Private Sub lstProdutos_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs)Handles
lstProdutos.SelectedIndexChanged
End Sub
Private Sub frmValor_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim i As Integer
'Instancia WS como um objeto do tipo Produtos (do WebService)
Dim WS As New Produtos.Produtos
'Declara um novo DataSet
Dim ds As New DataSet
'Carrega o DataSet com o retorno da funo
ds = WS.RetornaProdutos
lstProdutos.Items.Clear()
For i = 1 To ds.Tables(0).Rows.Count - 1
Dim Item As New
ListViewItem(ds.Tables(0).Rows(i).Item(1).ToString)
Item.SubItems.Add(ds.Tables(0).Rows(i).Item(2).ToString)
lstProdutos.Items.Add(Item)
Next
End Sub

Figura 9 Cdigo de ligao entre a aplicao e o Web Service

A partir da execuo do evento Load, o resultado da funo


RetornaProdutos do Web Service, que ser apresentado mais a frente,
apresentado no emulador, conforme mostra a Figura 10.

27

Figura 10 Tela da execuo da aplicao no emulador SmartPhone

A Figura 10 mostra os valores que so retornados quando requisitados


pela aplicao e que so a fonte de dados do Web Service, o cdigo responsvel
pelo retorno dos dados do Web Service ser apresentado na Figura 11.
Imports System.Web
Imports System.Data
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 Produtos
'Declara a classe que implementa o Web Service e seus mtodos
Inherits System.Web.Services.WebService
'O mtodo acessado via Web devido declarao do <WebMethod()>
<WebMethod(Description:="Consumindo WS no SmartPhone")> _
Public Function RetornaProdutos() As DataSet
'Declara um objeto DataSet
Dim ds As New DataSet
'L o arquivo XML criado
ds.ReadXml(Server.MapPath("Produtos.xml"))
'Retorna o ds
Return ds
End Function
End Class

Figura 11 Cdigo do mtodo de retorno dos dados do Web Service

28

A Figura 11 apresenta o arquivo Produtos.asmx, que contm o cdigo


do mtodo que retorna os dados vindos do Web Service, RetornaProdutos,
quando

requisitados

pela

aplicao.

linguagem

utilizada

para

desenvolvimento do Web Service foi a XML (Extensive Markup Language). A


fonte

de

dados

do

Web

Service

um

arquivo

XML,

chamado

de

Produtos.xml. O formato do arquivo XML utilizado ser apresentado na Figura


12.

<?xml version="1.0" encoding="utf-8" ?>


<Produtos>
<Produto>
<Codigo>1</Codigo>
<Nome>Lasanha</Nome>
<Valor>20,00</Valor>
</Produto>
<Produto>
<Codigo>2</Codigo>
<Nome>Pizza</Nome>
<Valor>15,00</Valor>
</Produto>
<Produto>
<Codigo>3</Codigo>
<Nome>Rodzio</Nome>
<Valor>11,00</Valor>
</Produto>
<Produto>
<Codigo>4</Codigo>
<Nome>Sobremesa</Nome>
<Valor>5,00</Valor>
</Produto>
</Produtos>

Figura 12 Arquivo XML

A Figura 12 mostra o arquivo XML contendo os dados que sero


apresentados quando requisitados pelo mtodo do Web Service.
A visualizao do Web Service pode ser feita atravs do navegador da
Internet (browser). A visualizao do arquivo que representa as funcionalidades
do Web Service um arquivo do tipo .asmx, representado na Figura 13.

29

Figura 13 - Visualizao do arquivo Produtos.asmx em um browser

Na Figura 13 possvel notar a classe criada Produtos, que possui o


mtodo RetornaProdutos. A execuo do mtodo ser visto na Figura

14.

30

Figura 14 Resultado da execuo do mtodo RetornaProdutos


A Figura 14 apresenta a execuo do mtodo que retorna os valores
requisitados, obtidos a partir dos dados de um arquivo XML.

31

3. MATERIAIS E MTODOS
Neste captulo sero apresentados os detalhes referentes aos materiais e
metodologia utilizados no processo de desenvolvimento deste trabalho.

3.1 Local e perodo


O trabalho foi desenvolvido como requisito parcial da disciplina de Prtica em
Sistemas de Informao I, do curso de Sistemas de Informao do Centro
Universitrio Luterano de Palmas, no primeiro semestre de 2006 e foi
desenvolvido no laboratrio do Programa Gerador de Novos Referenciais
Tecnolgicos para a Regio Norte - GENORTE. As atividades relacionadas a este
trabalho tiveram incio no ms de janeiro de 2006 e trmino em julho de 2006.

3.2 Material

Os materiais utilizados podem ser divididos em trs categorias: hardware,


software e fontes bibliogrficas. A primeira constituda por um notebook com
processador Intel inside Celeron M, com clock de 1.4 Ghz, 512 Mb de memria
RAM e HD com 60 Gb, responsvel pelo armazenamento dos dados, criao e
execuo da aplicao.
Os softwares utilizados foram os seguintes:

Microsoft Wod 2003;

Microsoft SQL Server;

Microsoft .NET Framework 1.1;

32

Microsoft .NET Framework SDK v2.0;

Microsoft Visual Studio 2005 Beta 2, para construo da aplicao para


dispositivos mveis, para a criao do Web Service, alm da execuo de
testes utilizando-se o emulador por ele provido;

Microsoft ActiveSync 4.0;

Adobe Acrobat Reader, para a leitura de referncias bibliogrficas.

Todo material bibliogrfico utilizado pode ser observado no captulo 6 Referncias Bibliogrficas.

3.3 Metodologia
A metodologia utilizada para o desenvolvimento da aplicao para dispositivos
mveis iniciou-se com um estudo terico sobre programao para dispositivos
mveis, a plataforma .NET Compact Framework e a utilizao de Web Services.
Trs etapas foram utilizadas para a finalizao desse trabalho: a criao do banco
de dados, a criao do Web Service e o desenvolvimento da aplicao para
dispositivos mveis.
O banco de dados para o armazenamento das informaes foi criado no
Microsoft SQL Server. Em seguida, foi criado o Web Service para o acesso aos
dados armazenados no banco de dados. No Web Service foram criados mtodos
de consultas para verificar o resultado do vestibular do CEULP/ULBRA. Por fim,
foi desenvolvida a aplicao para dispositivos mveis (SmartPhone), responsvel
por fazer o acesso ao Web Service que buscar os dados e os retornar para a
aplicao, que, posteriormente, ir gerar o cdigo resultante para ser visualizado
no SmartPhone.

33

4. RESULTADOS E DISCUSSES
O objetivo deste captulo apresentar alguns dos resultados obtidos com a
prtica da criao da aplicao .NET Compact Framework para dispositivos
mveis a partir dos estudos realizados anteriormente. Dentre eles, a criao de
Web Service, a criao da aplicao para SmartPhone, utilizando a ferramenta
Visual Studio .NET, seus elementos e sua implementao, com o objetivo de
demonstrar a integrao destas tecnologias.
A aplicao desenvolvida para este trabalho poder enviar ou buscar
informaes utilizando os servios de um Web Service, implementado utilizando a
ferramenta Visual Studio.NET e a linguagem C#, o qual o responsvel por
realizar a conexo entre o banco de dados e a aplicao, promovendo uma
distribuio do processamento. Esta aplicao visa oferecer uma forma alternativa
para que os alunos que tenham participado do vestibular do CEULP-ULBRA
possam acessar o resultado atravs de um dispositivo mvel (SmartPhone). A
arquitetura desta aplicao pode ser visualizada resumidamente na Figura 15.

Figura 15 Arquitetura da aplicao

34

Para o armazenamento dos dados ser utilizado o SGBD SQL Server que
se integra ao .NET Compact Framework (MICROSOFT, 2005). Para o acesso a
esses dados ser usado um Web Service, que ser o centralizador da regra de
consulta da aplicao. Para a interface com o usurio ser criada uma aplicao
que roda no prprio celular. Para isso, ser usado um emulador do dispositivo
mvel do tipo SmartPhone.

4.1 Banco de dados


Para a organizao dos dados referentes ao candidato, curso e o resultado foram
utilizados quatro tabelas, com os campos necessrios para a realizao da
consulta ao resultado do vestibular, armazenadas em um banco de dados SQL
Server. O modelo de entidade relacionamento deste trabalho apresentado na
Figura 16.

Figura 16 Modelo entidade relacionamento

A tabela tblCandidato responsvel pelo armazenamento das


informaes principais do candidato. A tabela tblCurso armazena as
informaes

sobre

os

cursos

representados

pelos

campos

idCurso,

35

nomeCurso e periodo. J a tabela tblResultado armazena informaes


referentes ao resultado do vestibular, atravs dos campos idResultado,

idCandidato, nota, situacao. E, para o relacionamento entre as tabelas


e

tblCandidato

tblCurso,

foi

criada

tabela

auxiliar

tblCandidato_Curso que utiliza-se como chaves estrangeiras os campos


idCurso e idCandidato. O acesso a este banco de dados ser realizado
por um Web Service, o qual ser apresentado na seo a seguir.

4.2 Criao do Web Service


Para o desenvolvimento do Web Service foi criada uma aplicao ASP.NET Web
Service, utilizando a linguagem C#, na qual foram criados os mtodos da consulta
da classe Service, conforme ilustrado no diagrama da Figura 17.

Figura 17 Classe e mtodos do Web Service

O cliente que ir consumir os servios do Web Service, dever acess-lo


atravs do caminho http://localhost/WSSeguro/Service.asmx, instalado na
mquina de origem do desenvolvimento. O Web Service criado possui dois
mtodos de consulta:

consultarCursos: mtodo que retorna todos os cursos cadastrados no


banco de dados, informando apenas o idCurso.

36

consultarPorNome: mtodo que retorna os nomes dos candidatos


aprovados ou suplentes do vestibular, onde a consulta realizada atravs
do nome passado como parmetro. Os resultados apresentados retornam
os valores do campo nomeCandidato da tabela tblCandidato em
forma de uma lista, onde ser detalhada e apresentar a situao
(aprovado/suplente), retornando os valores do campo situacao

da

tabela tblResultado.

consultarPorNumero: mtodo que retorna a nota, a situao


(aprovado/reprovado) e a classificao dos candidatos, em que a consulta
realizada por meio do nmero de inscrio passado como parmetro. A
consulta retorna os valores dos campos nota e situacao da tabela

tblResultado, alm da sua classificao.


O mtodo consultarPorNome apresentado na Figura 18. O outro
mtodo de consulta, consultarPorNumero, segue estrutura semelhante,
alterando-se somente a string para a consulta, pois o objetivo desse mtodo
que apenas os usurios que possuam o nmero de inscrio no vestibular
possam fazer uso desta funcionalidade. J o mtodo consultarCursos,
responsvel por preencher uma lista dos cursos presentes no formulrio de
consulta por nome.

37

1. [WebMethod(Description=Retorna uma lista com os nomes dos


candidatos, o curso e a sua situao (ap/sup))]
2.
public DataSet consultarPorNome(string nomeCandidato, int idCurso){
3.
SqlConnection conn = new SqlConnection(STRING_DE_CONEXAO);
4.
try
5.
{
6.
conn.Open();
7.
}
8.
catch (SqlException ex)
9.
{
10.
throw new Exception("Ocorreu um erro ao abrir o banco de
dados, a descrio do erro " + ex.Message);
11.
}
12.
SqlCommand command = new SqlCommand("SELECT * from vwNome
where nomeCandidato like '" + nomeCandidato + "%' and
idCurso= " + idCurso, conn);
13.
SqlDataAdapter adap = new SqlDataAdapter(command);
14.
DataSet dataset = new DataSet();
15.
adap.Fill(dataset, "Candidato");
16.
return dataset;
17.
}

Figura 18 WebMethod consultarPorNome

A linha 1 especifica que o mtodo trata-se de um WebMethod, cuja


descrio est explicitada. A linha 3 cria o objeto do tipo SqlConnection para
conexo com o banco de dados. A linha 6 abre a conexo com o banco. A linha
10 dispara uma exceo para a aplicao que est consumindo o Web Service. A
linha 12 cria o objeto do tipo SqlCommand configurando a SELECT que ser
usada para retornar os dados do banco de dados criados por uma view. A linha
13 cria o objeto do tipo SqlDataAdapter que far o preenchimento do

DataSet. A linha 14 cria o DataSet para retorno dos dados. A linha 15


preenche o DataSet com os dados do candidato. E, por fim, a linha 16 retorna
os dados para a aplicao consumidora.
A execuo do Web Service feita atravs do navegador de Internet, a
partir do arquivo Service.asmx, que representa as funcionalidades do Web
Service. O resultado demonstrado na Figura 19.

38

Figura 19 Visualizao do arquivo Service.asmx

Na Figura 19, nota-se os mtodos de consulta que foram criados,


chamados

consultarCursos,

consultarPorNome

consultarPorNumero. possvel acess-los clicando sobre o link do mtodo.


Aps isso, uma nova janela aberta onde ir requerer os valores passados como
parmetro para a execuo do mtodo. A Figura 20 ir demonstrar esta janela
para insero do valor para execuo do mtodo consultarPorNome.

39

Figura 20 Janela para insero do parmetro do mtodo

consultarPorNome
Aps a insero dos valores, pode-se invocar o mtodo clicando no boto

Invoke. O resultado da execuo do mtodo retornado em XML, conforme


apresentado na Figura 21.

40

Figura 21 Resultado da execuo do mtodo consultarPorNome


A

Figura

21

consultarPorNome

mostra
para

o
a

resultado
qual

da

foram

execuo

do

mtodo

retornados

os

dados:

nomeCandidato e situacao, do curso especificado atravs do cdigo de


identificao. Todos os mtodos esto centralizados na classe Service.asmx,
cujo cdigo completo est disponvel na seo de anexos.
Visto o correto funcionamento do Web Service atravs do navegador de
Internet, a prxima seo apresentar a criao da aplicao que ir ser
executada no SmartPhone, assim como a sua conexo com o Web Service.

4.3 Desenvolvimento da aplicao para SmartPhone


A aplicao desenvolvida para rodar no SmartPhone consiste em trs formulrios:
o primeiro o formulrio inicial, frmInicial, ou seja, a pgina principal que
responsvel pela escolha da consulta. O formulrio frmNome, responsvel por
exibir os nomes dos candidatos aprovados e/ou suplentes e o nome do curso; e o

41

formulrio frmNumero exibe a colocao do candidato, sua nota e sua situao


(aprovado, reprovado ou suplente), dado seu nmero de inscrio.
O frmInicial dispe de um menu com as opes para a escolha do
tipo de consulta que o usurio deseja realizar e outro que encerra a execuo,
conforme ilustrado na Figura 22.

Figura 22 Tela da pgina inicial da aplicao


O menu Opes apresenta dois tipos de consulta (Nome ou Nmero) e,
aps a escolha de uma das opes pelo usurio, outro formulrio apresentado.
A outra opo do menu refere-se a opo Sair, que tem a funo de encerrar a
execuo. Assim, o cdigo desse formulrio formado basicamente pela
implementao das funes do menu.
Aps o usurio definir o tipo de consulta, invocado o mtodo do Web
Service correspondente solicitao, onde as informaes so recuperadas do
banco de dados. Por exemplo, se a consulta for pelo nome, o mtodo executado
ser o consultarPorNome do Web Service, sendo que os dados retornados

42

so carregados no ListView, disposto no formulrio frmNome. O mtodo que


implementa essa consulta apresentado na Figura 23.

1. public frmNome()
2. {
3. InitializeComponent();
4. objVestibular = new Vestibular.Service();
5. DataSet ds = objVestibular.consultarCursos();
6. cmbCurso.Items.Clear();
...
8. private void menuConsultar_Click_1(object sender, EventArgs e)
9. {
10. DataSet ds = objVestibular.consultarPorNome(txtNome.Text,
Convert.ToInt32(cmbCurso.SelectedValue));
11.
listView1.Items.Clear();
12. for (int i = 0; (i <= (ds.Tables[0].Rows.Count - 1)); i++)
13. {
14.
ListViewItem Item = new
ListViewItem(ds.Tables[0].Rows[i].ItemArray[1].ToString());
15.
Item.SubItems.Add(ds.Tables[0].Rows[i].ItemArray[2].ToString());
16.
listView1.Items.Add(Item);
17. }
18. }
19.}

Figura 23 Mtodo de consulta por nome

A linha 4 mostra a criao do objeto que ir receber o Web Service. Na


linha 5, executado o mtodo do Web Service, consultarCursos. Na linha
10,

apresentado

consultarPorNome,

execuo

passando

do

como

mtodo
parmetro

do
o

Web
valor

do

Service,
campo

nomeCandidato e a opo selecionada do curso, o resultado da execuo


armazenado em um objeto. Entre as linhas 12 e 17, o mtodo do Web Service
invocado e se o objeto contendo o resultado no for nulo, seus itens so
adicionados no ListView com os dados correspondentes as colunas.
Para o acesso ao Web Service foi criada uma varivel chamada Url, na
classe Reference.cs, que recebe o caminho do Web Service, conforme
mostra a Figura 24. O cdigo completo est disponvel na seo de anexos,
public Service()
{
this.Url = "http://localhost/WSSeguro/Service.asmx";
}

Figura 24 Cdigo do caminho do Web Service

43

O resultado da consulta por nome apresentado na tela do emulador,


conforme mostra a Figura 25.

Figura 25 Tela do resultado da consulta por nome

Aps o desenvolvimento deste trabalho, incluindo a criao do banco de


dados, a criao do Web Service e a prpria aplicao para SmartPhone, bem
como o embasamento terico para o seu desenvolvimento, sero apresentadas
no prximo captulo as consideraes finais obtidas a partir deste trabalho.

44

5. CONSIDERAES FINAIS
A plataforma .NET oferece toda a tecnologia e as ferramentas necessrias para a
construo, implementao e manuteno de aplicaes para dispositivos
mveis. A integrao com o Visual Studio .NET garante aos desenvolvedores o
uso de recursos de expansibilidade para se iniciar o desenvolvimento dessas
aplicaes, tais como templates, emuladores, controles, unificando todo o
ambiente de desenvolvimento em uma nica ferramenta.
O Web Service surge como uma nova soluo para a implementao de
aplicaes acessadas via Internet, possibilitando que aplicativos de qualquer tipo,
que tenha acesso Internet se conectem e interoperem entre si.
A computao mvel torna-se vivel no somente para o segmento
empresarial, mas tambm para as pessoas de uma forma geral, permitindo
acesso aos dados e informaes a qualquer hora e em qualquer lugar. Isso facilita
as tarefas particulares e tambm uma oportunidade de melhora na gesto de
negcios, alm de se promover uma forma alternativa para o atendimento ao
cliente, estabelecendo muitas opes de interatividade com o mesmo.
A partir deste estudo, verificou-se a viabilidade de desenvolver uma
aplicao para dispositivos mveis, em especial celulares (SmartPhones), os
quais so bastante semelhante ao desenvolvimento de aplicaes tradicionais
para desktop, a partir de uma aplicao de armazenamento, busca e acesso a
base de dados. Deve-se levar em considerao, no desenvolvimento da
aplicao, a facilidade que o usurio dever ter em utilizar essa aplicao,
prevendo as aes tomadas pelo usurio, sempre criando formas de navegaes
simples e diretas, levando em considerao os espaos reduzidos da tela.

45

REFERNCIAS BIBLIOGRFICAS

(AVELINO, 2004) AVELINO, Jones. Consumindo um WebService atravs de


uma Aplicao ASP.NET para Dispositivos Mveis. 2004. Disponvel em:
<http://www.linhadecodigo.com.br>

(BASIURA et al., 2003) BASIURA, Russ et al. Profissional ASP .NET Web
Service. So Paulo: Pearson Education, 2003.

(DEITEL E NIETO, 2004) DEITEL, H. M.; DEITEL, P. J.; NIETO, T. R.. Visual
Basic .NET: como programar. Traduo Clia Yumi Okano Taniwaki. So Paulo:
Pearson Education do Brasil, 2004. 1088 p.

(FUOCO, 2005) FUOCO, Tas. Padro para dispositivos mveis. UNICAMP,


fevereiro de 2005. Disponvel em: <http://www.cgi.unicamp.br>.

(GALVIN, 2004), GALVIN, Deleon. Prottipo de sistema CRM para dispositivos


mveis utilizando a tecnologia .NET. Trabalho de Concluso de Curso
(Bacharelado em Cincias da Computao), Universidade Regional de Blumenal,
Blumenal, 2004.

(GUIMARES, 2004) GUIMARES, Camila. As empresas detectam vantagens


no

celular

que

tambm

<http://www.netmarkt.com.br>

computador.

2004.

Disponvel

em:

46

(GUMZ, 2005) GUMZ, Rafael Arajo. Prottipo de um sistema gerador de


interfaces grficas para testes de Java Web Services. 2005. 98 f. Monografia
de Ps-Graduao (Ps-Graduao em Desenvolvimento de Aplicaes para
WEB) - Centro de Cincias Exatas e Naturais, Universidade Regional de
Blumenau, Blumenau.

(MICROSOFT, 2005) Microsoft SQL Server. Outubro de 2005. Disponvel em:


<http://www.microsoft.com.br>

(MIRANDA, 2004) MIRANDA, Luiz Henrique. Introduo ao mundo mvel.


Maio de 2004. Disponvel em: <http://www.devgoiania.NET>

(MSDN, 2003) MSDN Tecnologias: Mobilidade. Fevereiro, 2003a.

___________.

.NET Framework. Fevereiro, 2003b.

___________.

Microsoft .NET, apresentando C#. Novembro, 2003c.

___________.

WAP:

Arquitetura.

Dezembro,

2003d.

Disponvel

em:

<http://www.msdn.com.br>

(MUCHOW, 2004) MUCHOW, John W. Core J2ME: Tecnologia & MIDP.


Traduo: Joo Eduardo N. Tortello. So Paulo: Pearson Makron Books, 2004.

(NETTO, 2004) NETTO, Max Mosimann. Mobilidade e Dispositivos Mveis.


2004. Disponvel em: <http://www.linhadecodigo.com.br>

(NETTO, 2005) NETTO, Max Mosimann. Microsoft .NET Compact Framework Conhea a plataforma para dispositivos mveis criada pela Microsoft. Maro
de 2005. Disponvel em: < http://www.imasters.com.br/ >

47

(PALM OS, 2005) Palm Software and Palm OS. Outubro de 2005. Disponvel
em: <http://www.palmsource.com>

(PEKUS, 2002) PEKUS, Cons. e Desenvolvimento LTDA. Dispositivos Mveis.


2002. Disponvel em: <http://www.pekus.com.br>

(PEREZ, 2004) PEREZ, Rogrio L. G.. Viso geral sobre WebServices. 2004.
Disponvel em: < http://www.imasters.com.br/ >

(SYMBIAN, 2005) Symbian OS the mobile operating system. Outubro de


2005. Disponvel em: <http://www.symbian.com>

(SOAP, 2003) SOAP Version 1.2 Part 0: Primer. Novembro de 2005. Disponvel
em: <http://www.w3.org/TR/SOAP>

(SUN,

2005)

Sun

Microsystems.

Outubro

de

2005.

Disponvel

em:

<http://br.sun.com>

(TARIFA,
aplicaes

2004)
para

TARIFA,

Alexandre

SmartPhones.

Fernandes

Novembro

de

Chaud.
2004.

Desenvolvendo
Disponvel

em:

<http://www.codificando.net>

(UNICAMP, 2005) Portal Unicamp. Outubro de 2005. Disponvel em:


<http://www.unicamp.br>

48

ANEXO A
Cdigo do Web Service criado Service.asmx

49

<%@ WebService Language="C#" CodeBehind="~/App_Code/Service.cs"


Class="Service" %>
using
using
using
using
using
using

System;
System.Web;
System.Web.Services;
System.Web.Services.Protocols;
System.Data.SqlClient;
System.Data;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
public const string STRING_DE_CONEXAO =
"Server=KATIA;Database=smartphone;User
ID=sa;Password=1234;Trusted_Connection=False";
public Service () {
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public DataSet consultarPorNome(string nomeCandidato, int idCurso) {
//cria o objeto do tipo SqlConnection para conexo com o banco de
dados
SqlConnection conn = new SqlConnection(STRING_DE_CONEXAO);
try
{
//abre a conexo com o banco
conn.Open();
}
catch (SqlException ex)
{
//dispara uma exceo para a aplicao que est
//consumindo o Web Service
throw new Exception("Ocorreu um erro ao abrir o
banco de dados, a descrio do erro " + ex.Message);
}
//cria o objeto do tipo SqlCommand configurando a
SELECT que ser usada
//para retornar os dados do banco de dados criados por
uma view
SqlCommand command = new SqlCommand("SELECT * from vwNome
where nomeCandidato like '" + nomeCandidato + "%' and idCurso= " +
idCurso, conn);
//cria o objeto do tipo SqlDataAdapter que far o
preenchimento do DataSet
SqlDataAdapter adap = new SqlDataAdapter(command);
//cria o DataSet para retorno dos dados

50

DataSet dataset = new DataSet();


//preenche o DataSet com os dados do candidato
adap.Fill(dataset, "Candidato");
//retorna os dados para a aplicao consumidora
return dataset;
}
[WebMethod]
public DataSet consultarPorNumero(string idCandidato)
{
//cria o objeto do tipo SqlConnection para conexo com o banco de
dados
SqlConnection conn = new SqlConnection(STRING_DE_CONEXAO);
try
{
//abre a conexo com o banco
conn.Open();
}
catch (SqlException ex)
{
//dispara uma exceo para a aplicao que est
//consumindo o Web Service
throw new Exception("Ocorreu um erro ao abrir o banco de
dados, a descrio do erro " + ex.Message);
}
//cria o objeto do tipo SqlCommand configurando a SELECT que ser
usada
//para retornar os dados do banco de dados
SqlCommand command = new SqlCommand("SELECT * FROM
[smartphone].[dbo].[fn_GetPosicao]("+idCandidato+") where idCandidato='"
+ idCandidato + "'", conn);
//cria o objeto do tipo SqlDataAdapter que far o preenchimento
do DataSet
SqlDataAdapter adap = new SqlDataAdapter(command);
//cria o DataSet para retorno dos dados
DataSet dataset = new DataSet();
//preenche o DataSet com os dados do candidato
adap.Fill(dataset, "Candidato");
//retorna os dados para a aplicao consumidora
return dataset;
}
[WebMethod]
public DataSet consultarCursos()
{
//cria o objeto do tipo SqlConnection para conexo com o banco de
dados
SqlConnection conn = new SqlConnection(STRING_DE_CONEXAO);
try
{
//abre a conexo com o banco

51

conn.Open();
}
catch (SqlException ex)
{
//dispara uma exceo para a aplicao que est
//consumindo o Web Service
throw new Exception("Ocorreu um erro ao abrir o banco de
dados, a descrio do erro " + ex.Message);
}
//cria o objeto do tipo SqlCommand configurando a SELECT que ser
usada
//para retornar os dados do banco de dados criados por uma view
SqlCommand command = new SqlCommand("SELECT * from tblCurso order
by nomeCurso", conn);
//cria o objeto do tipo SqlDataAdapter que far o preenchimento
do DataSet
SqlDataAdapter adap = new SqlDataAdapter(command);
//cria o DataSet para retorno dos dados
DataSet dataset = new DataSet();
//preenche o DataSet com os dados do candidato
adap.Fill(dataset, "Curso");
//retorna os dados para a aplicao consumidora
return dataset;
}
}

52

ANEXO B
Cdigo da aplicao SmartPhone com a plataforma .NET Compact Framework
frmInicial, frmNome e frmNumero

53

frmInicial.cs:
#region Using directives
using
using
using
using
using

System;
System.Drawing;
System.Collections;
System.Windows.Forms;
System.Data;

#endregion
namespace sPhone
{
/// <summary>
/// Summary description for form.
/// </summary>
public class frmInicial : System.Windows.Forms.Form
{
private PictureBox pictureBox1;
protected internal PictureBox pictureBox2;
private MenuItem menuSair;
private MenuItem menuItem2;
private MenuItem menuNome;
private MenuItem menuNumero;
/// <summary>
/// Main menu for the form.
/// </summary>
private System.Windows.Forms.MainMenu mainMenu1;
public frmInicial()
{
InitializeComponent();
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources =
new System.ComponentModel.ComponentResourceManager(typeof(frmInicial));
this.mainMenu1 = new System.Windows.Forms.MainMenu();
this.menuSair = new System.Windows.Forms.MenuItem();
this.menuItem2 = new System.Windows.Forms.MenuItem();
this.menuNome = new System.Windows.Forms.MenuItem();
this.menuNumero = new System.Windows.Forms.MenuItem();

54

this.pictureBox1 = new System.Windows.Forms.PictureBox();


this.pictureBox2 = new System.Windows.Forms.PictureBox();
//
// mainMenu1
//
this.mainMenu1.MenuItems.Add(this.menuSair);
this.mainMenu1.MenuItems.Add(this.menuItem2);
//
// menuSair
//
this.menuSair.Text = "Sair";
this.menuSair.Click += new
System.EventHandler(this.menuSair_Click);
//
// menuItem2
//
this.menuItem2.MenuItems.Add(this.menuNome);
this.menuItem2.MenuItems.Add(this.menuNumero);
this.menuItem2.Text = "Opes";
//
// menuNome
//
this.menuNome.Text = "Consulta Nome";
this.menuNome.Click += new
System.EventHandler(this.menuNome_Click_1);
//
// menuNumero
//
this.menuNumero.Text = "Consulta Nmero";
this.menuNumero.Click += new
System.EventHandler(this.menuNumero_Click_1);
//
// pictureBox1
//
this.pictureBox1.Location = new System.Drawing.Point(0, 0);
this.pictureBox1.Size = new System.Drawing.Size(100, 100);
//
// pictureBox2
//
this.pictureBox2.Image =
((System.Drawing.Image)(resources.GetObject("pictureBox2.Image")));
this.pictureBox2.Location = new System.Drawing.Point(49, 42);
this.pictureBox2.Size = new System.Drawing.Size(76, 78);
//
// frmInicial
//
this.ClientSize = new System.Drawing.Size(176, 180);
this.Controls.Add(this.pictureBox2);
this.Menu = this.mainMenu1;
this.Text = "Resultado Vestibular";
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main()
{

55

Application.Run(new frmInicial());
}
private void menuSair_Click(object sender, EventArgs e)
{
this.Close();
}
private void menuNome_Click_1(object sender, EventArgs e)
{
// Instancia um objeto do tipo frmNome
frmNome frmNovo = new frmNome();
// Chama o formulrio instanciado
frmNovo.ShowDialog();
}
private void menuNumero_Click_1(object sender, EventArgs e)
{
// Instancia um objeto do tipo frmNumero
frmNumero frmNovo = new frmNumero();
// Chama o formulrio instanciado
frmNovo.ShowDialog();
}
}
}

56

frmNome.cs:
#region Using directives
using
using
using
using
using

System;
System.Drawing;
System.Collections;
System.Windows.Forms;
System.Data;

#endregion
namespace sPhone
{
/// <summary>
/// Summary description for Nome.
/// </summary>
public class frmNome : System.Windows.Forms.Form
{
private Label label1;
private TextBox txtNome;
private MenuItem menuVoltar;
private MenuItem menuConsultar;
private Vestibular.Service objVestibular;
private Label label2;
private ComboBox cmbCurso;
private ListView listView1;
/// <summary>
/// Main menu for the form.
/// </summary>
private System.Windows.Forms.MainMenu mainMenu1;
public frmNome()
{
InitializeComponent();
objVestibular = new Vestibular.Service();
DataSet ds = objVestibular.consultarCursos();
cmbCurso.Items.Clear();

for (int i = 0; (i <= (ds.Tables[0].Rows.Count - 1)); i++)


{
ListViewItem Item = new
ListViewItem(ds.Tables[0].Rows[i].ItemArray[1].ToString());
Item.SubItems.Add(ds.Tables[0].Rows[i].ItemArray[2].ToString());
cmbCurso.Items.Add(Item);
}
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);

57

}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.listView1 = new System.Windows.Forms.ListView();
this.mainMenu1 = new System.Windows.Forms.MainMenu();
this.menuVoltar = new System.Windows.Forms.MenuItem();
this.menuConsultar = new System.Windows.Forms.MenuItem();
this.label1 = new System.Windows.Forms.Label();
this.txtNome = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.cmbCurso = new System.Windows.Forms.ComboBox();
//
// listView1
//
this.listView1.Location = new System.Drawing.Point(0, 100);
this.listView1.Size = new System.Drawing.Size(173, 79);
//
// mainMenu1
//
this.mainMenu1.MenuItems.Add(this.menuVoltar);
this.mainMenu1.MenuItems.Add(this.menuConsultar);
//
// menuVoltar
//
this.menuVoltar.Text = "Voltar";
this.menuVoltar.Click += new
System.EventHandler(this.menuVoltar_Click_1);
//
// menuConsultar
//
this.menuConsultar.Text = "Consultar";
this.menuConsultar.Click += new
System.EventHandler(this.menuConsultar_Click_1);
//
// label1
//
this.label1.Font = new System.Drawing.Font("Nina", 10F,
System.Drawing.FontStyle.Bold);
this.label1.Location = new System.Drawing.Point(0, 0);
this.label1.Size = new System.Drawing.Size(54, 16);
this.label1.Text = "Nome:";
//
// txtNome
//
this.txtNome.Font = new System.Drawing.Font("Nina", 10F,
System.Drawing.FontStyle.Regular);
this.txtNome.Location = new System.Drawing.Point(0, 19);
this.txtNome.Size = new System.Drawing.Size(173, 23);
//
// label2
//
this.label2.Font = new System.Drawing.Font("Nina", 10F,
System.Drawing.FontStyle.Bold);

58

this.label2.Location = new System.Drawing.Point(0, 47);


this.label2.Size = new System.Drawing.Size(173, 21);
this.label2.Text = "Selecione o Curso:";
this.label2.ParentChanged += new
System.EventHandler(this.label2_ParentChanged);
//
// cmbCurso
//
this.cmbCurso.Font = new System.Drawing.Font("Nina", 10F,
System.Drawing.FontStyle.Regular);
this.cmbCurso.Location = new System.Drawing.Point(0, 71);
this.cmbCurso.Size = new System.Drawing.Size(173, 23);
this.cmbCurso.SelectedIndexChanged += new
System.EventHandler(this.cmbCurso_SelectedIndexChanged);
//
// frmNome
//
this.ClientSize = new System.Drawing.Size(176, 180);
this.Controls.Add(this.label1);
this.Controls.Add(this.txtNome);
this.Controls.Add(this.label2);
this.Controls.Add(this.cmbCurso);
this.Controls.Add(this.listView1);
this.Menu = this.mainMenu1;
this.Text = "Consulta Nome";
}
#endregion
private void menuConsultar_Click_1(object sender, EventArgs e)
{
DataSet ds = objVestibular.consultarPorNome(txtNome.Text,
Convert.ToInt32(cmbCurso.SelectedValue));
listView1.Items.Clear();
for (int i = 0; (i <= (ds.Tables[0].Rows.Count - 1)); i++)
{
ListViewItem Item = new
ListViewItem(ds.Tables[0].Rows[i].ItemArray[1].ToString());
Item.SubItems.Add(ds.Tables[0].Rows[i].ItemArray[2].ToString());
listView1.Items.Add(Item);
}
}
private void menuVoltar_Click_1(object sender, EventArgs e)
{
// Instancia um objeto do tipo frmInicial
frmInicial frmNovo = new frmInicial();
// Chama o formulrio instanciado
frmNovo.ShowDialog();
}
}
}

59

frmNumero.cs:
#region Using directives
using
using
using
using
using

System;
System.Drawing;
System.Collections;
System.Windows.Forms;
System.Data;

#endregion
namespace sPhone
{
/// <summary>
/// Summary description for frmNumero.
/// </summary>
public class frmNumero : System.Windows.Forms.Form
{
private MenuItem menuVoltar;
private MenuItem menuConsultar;
private TextBox txtNumero;
private Label label1;
private Label label2;
private TextBox txtSituacao;
private Label label3;
private Label label4;
private TextBox txtNota;
private TextBox txtClassificacao;
private Vestibular.Service objVestibular;
/// <summary>
/// Main menu for the form.
/// </summary>
private System.Windows.Forms.MainMenu mainMenu1;
public frmNumero()
{
InitializeComponent();
objVestibular = new Vestibular.Service();
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.mainMenu1 = new System.Windows.Forms.MainMenu();

60

this.menuVoltar = new System.Windows.Forms.MenuItem();


this.menuConsultar = new System.Windows.Forms.MenuItem();
this.txtNumero = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.txtSituacao = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.txtNota = new System.Windows.Forms.TextBox();
this.txtClassificacao = new System.Windows.Forms.TextBox();
//
// mainMenu1
//
this.mainMenu1.MenuItems.Add(this.menuVoltar);
this.mainMenu1.MenuItems.Add(this.menuConsultar);
//
// menuVoltar
//
this.menuVoltar.Text = "Voltar";
this.menuVoltar.Click += new
System.EventHandler(this.menuVoltar_Click);
//
// menuConsultar
//
this.menuConsultar.Text = "Consultar";
this.menuConsultar.Click += new
System.EventHandler(this.menuConsultar_Click);
//
// txtNumero
//
this.txtNumero.Location = new System.Drawing.Point(3, 25);
this.txtNumero.Size = new System.Drawing.Size(170, 24);
//
// label1
//
this.label1.Font = new System.Drawing.Font("Nina", 10F,
System.Drawing.FontStyle.Bold);
this.label1.Location = new System.Drawing.Point(3, 0);
this.label1.Size = new System.Drawing.Size(73, 22);
this.label1.Text = "Nmero:";
//
// label2
//
this.label2.Font = new System.Drawing.Font("Nina", 10F,
System.Drawing.FontStyle.Bold);
this.label2.Location = new System.Drawing.Point(4, 56);
this.label2.Size = new System.Drawing.Size(62, 22);
this.label2.Text = "Situao:";
//
// txtSituacao
//
this.txtSituacao.Font = new System.Drawing.Font("Nina", 10F,
System.Drawing.FontStyle.Regular);
this.txtSituacao.Location = new System.Drawing.Point(107,
53);
this.txtSituacao.Size = new System.Drawing.Size(66, 23);
//
// label3
//

61

this.label3.Font = new System.Drawing.Font("Nina", 10F,


System.Drawing.FontStyle.Bold);
this.label3.Location = new System.Drawing.Point(3, 85);
this.label3.Size = new System.Drawing.Size(63, 17);
this.label3.Text = "Nota:";
//
// label4
//
this.label4.Font = new System.Drawing.Font("Nina", 10F,
System.Drawing.FontStyle.Bold);
this.label4.Location = new System.Drawing.Point(3, 115);
this.label4.Size = new System.Drawing.Size(87, 17);
this.label4.Text = "Classificao:";
//
// txtNota
//
this.txtNota.Font = new System.Drawing.Font("Nina", 10F,
System.Drawing.FontStyle.Regular);
this.txtNota.Location = new System.Drawing.Point(107, 85);
this.txtNota.Size = new System.Drawing.Size(66, 23);
//
// txtClassificacao
//
this.txtClassificacao.Font = new System.Drawing.Font("Nina",
10F, System.Drawing.FontStyle.Regular);
this.txtClassificacao.Location = new
System.Drawing.Point(107, 116);
this.txtClassificacao.Size = new System.Drawing.Size(66, 23);
//
// frmNumero
//
this.ClientSize = new System.Drawing.Size(176, 180);
this.Controls.Add(this.label1);
this.Controls.Add(this.txtNumero);
this.Controls.Add(this.label2);
this.Controls.Add(this.txtSituacao);
this.Controls.Add(this.label3);
this.Controls.Add(this.label4);
this.Controls.Add(this.txtNota);
this.Controls.Add(this.txtClassificacao);
this.Menu = this.mainMenu1;
this.Text = "Consulta Nmero";
}
#endregion
private void menuVoltar_Click(object sender, EventArgs e)
{
// Instancia um objeto do tipo frmInicial
frmInicial frmNovo = new frmInicial();
// Chama o formulrio instanciado
frmNovo.ShowDialog();
}
private void menuConsultar_Click(object sender, EventArgs e)
{
DataSet ds =
objVestibular.consultarPorNumero(txtNumero.Text);

62

for (int i = 0; (i <= (ds.Tables[0].Rows.Count - 1)); i++)


{
txtNota.Text = ds.Tables[0].Rows[i].ItemArray[1];
txtSituacao.Text=ds.Tables[0].Rows[i].ItemArray[2];
txtClassificacao.Text =
ds.Tables[0].Rows[i].ItemArray[3];
}

}
}
}

63

ANEXO C
Classe gerada para referenciar o Web Service com a aplicao
Reference.cs

64

Reference.cs:
//----------------------------------------------------------------------------// <auto-generated>
//
This code was generated by a tool.
//
Runtime Version:2.0.50727.42
//
//
Changes to this file may cause incorrect behavior and will be lost
if
//
the code is regenerated.
// </auto-generated>
//----------------------------------------------------------------------------//
// This source code was auto-generated by
Microsoft.CompactFramework.Design.Data, Version 2.0.50727.42.
//
namespace sPhone.Vestibular {
using System.Diagnostics;
using System.Web.Services;
using System.ComponentModel;
using System.Web.Services.Protocols;
using System;
using System.Xml.Serialization;
using System.Data;

/// <remarks/>
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="ServiceSoap",
Namespace="http://tempuri.org/")]
public class Service :
System.Web.Services.Protocols.SoapHttpClientProtocol {
/// <remarks/>
public Service() {
this.Url = "http://localhost/WSSeguro/Service.asmx";
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempur
i.org/consultarPorNome", RequestNamespace="http://tempuri.org/",
ResponseNamespace="http://tempuri.org/",
Use=System.Web.Services.Description.SoapBindingUse.Literal,
ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public System.Data.DataSet consultarPorNome(string nomeCandidato,
int idCurso) {
object[] results = this.Invoke("consultarPorNome", new
object[] {
nomeCandidato,
idCurso});
return ((System.Data.DataSet)(results[0]));
}

65

/// <remarks/>
public System.IAsyncResult BeginconsultarPorNome(string
nomeCandidato, int idCurso, System.AsyncCallback callback, object
asyncState) {
return this.BeginInvoke("consultarPorNome", new object[] {
nomeCandidato,
idCurso}, callback, asyncState);
}
/// <remarks/>
public System.Data.DataSet
EndconsultarPorNome(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((System.Data.DataSet)(results[0]));
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempur
i.org/consultarPorNumero", RequestNamespace="http://tempuri.org/",
ResponseNamespace="http://tempuri.org/",
Use=System.Web.Services.Description.SoapBindingUse.Literal,
ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public System.Data.DataSet consultarPorNumero(string idCandidato)
{
object[] results = this.Invoke("consultarPorNumero", new
object[] {
idCandidato});
return ((System.Data.DataSet)(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginconsultarPorNumero(string
idCandidato, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("consultarPorNumero", new object[] {
idCandidato}, callback, asyncState);
}
/// <remarks/>
public System.Data.DataSet
EndconsultarPorNumero(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((System.Data.DataSet)(results[0]));
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempur
i.org/consultarCursos", RequestNamespace="http://tempuri.org/",
ResponseNamespace="http://tempuri.org/",
Use=System.Web.Services.Description.SoapBindingUse.Literal,
ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public System.Data.DataSet consultarCursos() {
object[] results = this.Invoke("consultarCursos", new
object[0]);
return ((System.Data.DataSet)(results[0]));
}
/// <remarks/>

66

public System.IAsyncResult
BeginconsultarCursos(System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("consultarCursos", new object[0],
callback, asyncState);
}
/// <remarks/>
public System.Data.DataSet EndconsultarCursos(System.IAsyncResult
asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((System.Data.DataSet)(results[0]));
}
}
}

Anda mungkin juga menyukai