Desenvolvimento - Visual Basic .NET

Desenvolvendo aplicações para SmartPhones

Pensando sempre em: “A INFORMAÇÃO EM QUALQUER LUGAR, EM QUALQUER MOMENTO”, foi lançado no Brasil recentemente um novo dispositivo, já conhecido por muitos, o SmartPhone.

por Alexandre Tarifa



Pensando sempre em: "A INFORMAÇÃO EM QUALQUER LUGAR, EM QUALQUER MOMENTO", foi lançado no Brasil recentemente um novo dispositivo, já conhecido por muitos, o SmartPhone. Comparando com os dispositivos móveis existentes está entre um Pocket Pc e um celular comum.

Comparando diretamente com um Pocket Pc ele traz a vantagem da conexão e em relação a um celular comum ele traz muitas coisas: Windows, sincronização com ActiveSync do Outlook e de dados e a possibilidade de instalação de forma simples de diversos aplicativos, Internet Explorer, Media Player, Messenger além de trazer o Compact Framework já instalado. Acredito que a última característica citada é a que faz aos programadores .Net entrarem neste modelo de desenvolvimento. Neste artigo estarei mostrando como desenvolver uma simples aplicação e uma outra aplicação utilizando WebService.

Instalação

Para o início do desenvolvimento através do Visual Studio a única instalação a ser feita é do SDK (http://www.microsoft.com/downloads/details.aspx?familyid=a6c4f799-ec5c-427c-807c-4c0f96765a81&displaylang=en) que é um complemento do Visual Studio específico para a criação de aplicações para Smart Phones. Por padrão o Visual Studio traz alguns tipos de aplicações como Web, Windows, Pocket PC, etc. os tipos adicionais são adicionados pelos SDK´s.

Após a instalação o Visual Studio já é capaz de desenvolver aplicações para SmartPhones em C++, C# e VB.Net.

Prática

Para iniciar o primeiro projeto abra o Visual Studio 2003 clique em File> New> Project com o Nome ContaFacil. Selecione agora a linguagem VB.Net e o Template Smart Device Application. Uma segunda caixa de seleção é aberta onde será listado todos os SDK´s instalador (imagem 1), selecione SmartPhone e Windows Application.


Imagem 1 - Lista de SDK´s instalados.

Com a criação do projeto a primeira impressão que temos é de um formulário Windows pequeno. Na realidade é isso o que ocorre, desenvolver aplicações para SmartPhones é praticamente a mesma coisa do que para WinForms e Pocket Pc, claro que com as adaptações específicas para o dispositivo. A primeira diferença é fácil de ser notada, abra a ToolBox (Ctrl + Alt + X) e note que muitos controles estão desabilitados.

Dica: o controle DataGrid vem habilitado, porém seu uso não é suportado.

Por Default, um menu já vem adicionado no formulário, selecione o controle e crie um menu simples, conforme imagem abaixo:

Dica: O menu deve sempre ter somente duas colunas, sendo que a primeira coluna da esquerda não pode ter subitens.

Adicione no formulário o controle PictureBox. Vá na propriedade Image do controle e selecione uma imagem qualquer.

Abra o Sotution Explorer (Ctrl + Alt + L), clique com o botão direito do mouse sobre o projeto ContaFacil> Add> Add Windows Form. Coloque o nome de frmConta.vb. O novo formulário é criado, ele será responsável pelo fechamento da conta. Crie um formulário conforme imagem abaixo:

Renomeie os TextBox para txtPessoa, txtValor e txtGorjeta.

Adicione um controle MainMenu com dois itens Voltar e Calcular.

Dica: Note que não existe botão (desabilitado) portanto todas as ações devem ser feitas com o controle de menu.

A programação deste exemplo será bem simples. No form1, formulário inicial de um duplo clique sobre o item de menu Fechar Conta e digite o seguinte código:

"Instancia um objeto do tipo frmConta
Dim frmNovo As New frmConta
"Chama o formulário instanciado
frmNovo.ShowDialog()

E no item Sair digite:

Me.Close()

Com a tela de chamada pronta, no formulário frmConta no item voltar repita o código do Sair e no item calcular entre com o seguinte código:

"Exibe uma mensagem com o cálculo (cdbl - converte para Boolean)
MsgBox((CDbl(txtValor.Text) + CDbl(txtGorjeta.Text)) / CDbl(txtPessoa.Text), MsgBoxStyle.Information, 
"Valor por pessoa")

Execute (F5) e teste a aplicação no emulador.

Dica: Se o Micro for muito lento, o emulador demora para abrir e dará um erro no projeto. Execute novamente a aplicação que o erro não acontecerá novamente.

Caso a ordenação dos TextBox do formulário de conta esteja fora de ordem, no meu selecione View> SmartPhone Tab Order e ordene os controles:

Consumindo WebServices

Crie uma nova aplicação File> New> Project. Selecione a linguagem Visual Basic.Net e o Template Asp.Net Web Service com o nome WSSmartPhone e clique em OK. No Solution Explorer delete o arquivo Service1.asmx e crie outro clicando com o botão direito do mouse sobre o projeto> Add>Add Web Service com o nome Produtos.asmx. A fonte de dados para o WebService será um arquivo XML. Para criar clique com o botão direito do mouse sobre o projeto> Add>Add New Item> XML File com o nome Produtos e adicione a seguinte estrutura:

<?xml version="1.0" encoding="utf-8" ?> 
<Produtos>
	<Produto>
		<Codigo>1</Codigo>
		<Nome>Pera</Nome>
		<Valor>5</Valor>
	</Produto>
	<Produto>
		<Codigo>2</Codigo>
		<Nome>Maça</Nome>
		<Valor>3</Valor>
	</Produto>
	<Produto>
		<Codigo>3</Codigo>
		<Nome>Banana</Nome>
		<Valor>4</Valor>
	</Produto>
	<Produto>
		<Codigo>4</Codigo>
		<Nome>Morango</Nome>
		<Valor>12</Valor>
	</Produto>
	<Produto>
		<Codigo>5</Codigo>
		<Nome>Jaca</Nome>
		<Valor>50</Valor>
	</Produto>
</Produtos>

Volte para o Produtos.asmx, pressione F7 e digite o seguinte código:

<WebMethod(Description:="Consumindo WS no Smart Phone")> _
    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

Para testar, no Solution Explorer clique com o botão direito do mouse sobre Produtos.asmx e selecione Set as Startup Page. Execute (F5) e teste a aplicação.

Com a criação do WebService crie um novo projeto: File > New > Project. Selecione Visual Basic.Net e Smart Device Application com o nome Produtos. Selecione novamente SmarPhone e clique em OK.

O primeiro passo é adicionar a referência ao WebService. No Solution Explorer clique com o botão direito do mouse sobre References >Add Web References. Na URL digite o caminho do WebService: http://10.127.0.1(IP Local)/Documentacao/WebService1/Produtos.asmx e a Web Reference Name coloque Produtos e clique em Add Reference.

Dica: Sempre substitua o Localhost pelo IP da Máquina.

A etapa de referencia está pronta, agora a aplicação terá que mostrar os registros vindos do WebService. Para isso adicione no formulário o controle ListView com as seguintes propriedades:

O ListView é o substituto direto do DataGrid e carregaremos os dados nele, para isso adicione o seguinte código no Form Load.

Dim i As Integer

        "Instancia WS como um objeto do tipo Produtos (do WebService)
        Dim WS As New WebReference.Produtos
        "Declara um novo DataSet
        Dim ds As New DataSet
       "Carrega o DataSet com o retorno da função
        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

Execute (F5) e teste a aplicação no emulador.

Links

http://www.codificando.net/View_Artigos.aspx?IDArtigo=38&TipoArtigo=False&PathArtigo=&IDColunista=e35a96bb-c47a-4a64-98ab-532206fbb55b&imagem=1
http://www.microsoft.com/mobile
http://br.thespoke.net/MyBlog/Jalf/MyBlog.aspx

Se você tem interesse em aprender .net ou discutir .net entre no grupo de usuários Codificando.net - São Paulo.

Se tiver alguma dúvida, crítica, sugestão de artigo, fale comigo: alexandretarifa@gmail.com.

Abraços.
Alexandre Tarifa
Líder Codificando.net SP

Alexandre Tarifa

Alexandre Tarifa - Ministra palestras e treinamentos, MVP (Most Valuable Professional), MCAD (Microsoft Certified Application Developer) e MCT (Microsoft Certified Trainer). Bacharel pela UMESP e pós-graduando pela Universidade Federal de São Carlos em Ciência da Computação. Analista de Sistemas e Líder do grupo de usuários Codificando.net São Paulo (sp.codificando.net). Escreve artigos para a revista MSDN Magazine e para os sites Linha de Código, MSDN Brasil e Enterpriseguys.
Visite o blog do autor: http://weblogs.pontonetpt.com/alexandretarifa/.