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 TarifaComparando 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:
Nome | Valor | |
Name | lstProdutos | |
Columns | Coluna1 | |
Name | colProduto | |
Text | Produto | |
Coluna2 | ||
Name | colValor | |
Text | Valor | |
View | Details |
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
- Entity Framework 4: Repositório GenéricoVisual Basic .NET
- As edições 14 da Easy .net Magazine e 88 da .net Magazine já estão disponíveis.ADO.NET
- Postando no Twiiter com .NET e Migre.meC#
- Setup ApplicationsVisual Basic .NET
- Problemas na manipulação de arquivos do MS Excel com .NETVisual Basic .NET