Desenvolvimento - Mobile

Microsoft .NET Compact Framework - Conheça a plataforma para dispositivos móveis criada pela Microsoft

Conheça a plataforma .NET Compact Framework da Microsoft e descubra como criar o software ideal para suprir sua necessidade.

por Max Mosimann Netto



Mobilidade é um tema que vem se mostrando cada dia mais presente em nossos dias. Celulares são tão comuns hoje em dia quando telefones fixos.

Computadores de bolso cada vez menores são lançados e passamos a utilizá-los como parte de nosso dia-a-dia. Porém, quando necessitamos de softwares muito específicos para estes dispositivos, precisamos criá-los. Conheça a plataforma .NET Compact Framework da Microsoft e descubra como criar o software ideal para suprir sua necessidade.

.NET Compact Framework

A Microsoft .NET Compact Framework é um subset da Microsoft .NET Framework, criada para possibilitar o desenvolvimento de aplicações para dispositivos inteligentes (smart devices) da mesma forma com que aplicativos para Windows desktop são desenvolvidos.

A estratégia .NET da Microsoft tem como objetivo alavancar o conceito da informação, ou seja: Levar a informação a qualquer hora, a qualquer lugar e em qualquer dispositivo.

Uma frase de muito efeito, que vem se mostrando possível se depender da gigantesca corporação.

Nos últimos anos, muito tem se ouvido sobre computação móvel e mobilidade, mas nada se compara a posição do mercado depois do lançamento da .NET Compact Framework. Pela primeira vez na história, desenvolver softwares para dispositivos móveis era simples e acessível.

Antigamente, se você quisesse desenvolver um simples "Hello World !" para rodar em um Pocket, uma linguagem de programação como Embedded Visual Basic ou Embedded Visual C deveriam ser escolhidas. Existiam aqueles que preferiam C puro ou até mesmo assembly, porém o trabalho de todos era árduo o bastante para não estimular uma grande onda de desenvolvimento para tais equipamentos.

Com o lançamento da .NET Compact Framework, os mesmos programadores que dominavam o Microsoft Visual Basic 6.0 ou o Microsoft Visual C poderiam desenvolver aplicações para smart devices, na linguagem com a qual mais de sentiam confortáveis.

A .NET Compact Framework, por ser um subconjunto da .NET Framework, herdou muitas de suas características e formas de execução. Todos os códigos desenvolvidos para serem executados sob a .NET CF são executados por um compilador de alta performance, denominado Compilador JIT (Just In Time Compiler). Este compilador é responsável por otimizar o código para o dispositivo onde o software será executado. Isto é: O mesmo software é otimizado para ser executado em dispositivos que possuem recursos de hardware ou software diferentes.

Por baixo do Compilador JIT, a CLR (Common Language Runtime) juntamente com uma coleção de classes (Class Library) permite uma gerência de processos otimizadas para ser executada em equipamentos limitados. Não entenda equipamentos limitados, como algo ultrapassado, e sim como um dispositivo, que por seu uso não possui grande capacidades físicas, como grandes displays, grandes quantidades de memória ou grande poder de processamento. Pensando nesses dispositivos, a CLR foi otimizada para que permitisse que tudo o que era possível ser feito com a .NET Framework, também fosse possível de ser feito com a .NET CF, sendo executada nos mais diversos e diferentes equipamentos.

A grande idéia da .NET Framework (entenda Compact Framework também) é a possibilidade do desenvolvimento multilinguagem. Em um mesmo projeto, podemos construir cada módulo em uma linguagem diferente. Podemos por exemplo construir as classes de acesso a dados em C# (C-Sharp) e os módulos de interface em Visual Basic.NET. Isso possibilita a programadores íntimos de uma determinada linguagem, que continue a trabalhar da mesma forma, porém, utilizando um conceito de última geração.

Juntamente com a estratégia .NET, a Microsoft lançou o Visual Studio.net, uma nova IDE para desenvolvimento de softwares com base na tecnologia .NET.

O Visual Studio.net é a evolução do Visual Studio 6.0 que englobava entre outros softwares, o Visual Basic 6.0 e o Visual Intedev 6.0.

Com o Visual Studio.net, softwares para qualquer seguimento da plataforma podem ser criados na mesma interface. Podemos criar páginas para WEB (aspx) usando as linguagens VB.NET ou C#, podemos criar softwares para Windows desktop, utilizando as mesmas linguagens, e podemos criar softwares para dispositivos móveis, também utilizando as mesmas linguagens.

O conceito é: portabilidade e facilidade!

Sobre portabilidade não tem o que discutir, nunca conseguimos migrar tão facilmente softwares de uma linguagem para outra e de um segmento para outro como agora.

Sobre facilidade, temos menos ainda a dizer. Vejamos com um simples exemplo:

Iremos criar um simples "Hello World !" utilizando o Visual Studio.net 2003, para ser executado em um Pocket PC.

1 - Execute o Visual Studio.net;


Figura 1. Tela principal do Visual Studio.net 2 - Selecione File -> New -> Project;


Figura 2. Selecione o Project Type = Visual Basic Project, Template = Smart Device Application e informe o Name = HelloWorld. Após as configurações, pressione OK.

3 - Em "What plataform do you to target?" selecione Pocket PC, e em "What project type do you want to create?" selecione Windows Application, como mostra a Figura 3;


Figura 3. Escolha o tipo de aplicação para a qual deseja criar um projeto.

Após a escolha do projeto, o Visual Studio.net irá criar um projeto com base no template: projetos para dispositivos móveis.

Note que ao centro, um formulário muito parecido com os antigos formulários do Visual Basic 6.0 foi criado. É exatamente neste espaço que iremos "desenhar" os controles para criar nosso sistema, como mostra a Figura 4.


Figura 4. Eis nossa área de trabalho.

Vamos adicionar 2 controles: Um Label e um Button, como visto na figura abaixo:


Figura 5. Selecione os controle na toolbox à esquerda e arraste-os até a posição desejada no formulário. Selecionaremos o controle Button e mudaremos a propriedade Text para "Hello World !". Para isso selecione o controle button, clicando apenas uma vez sobre ele. Na parte inferior direita do Visual Studio.net esta a caixa Properties, onde podemos alterar as propriedades dos controles, inclusive do formulário.

Localize a propriedade Text e digite "Hello World" (sem aspas);

Selecione o controle Label, e apague o texto informado na propriedade Text do controle. Isso fará com que o controle não exiba nenhum texto de início.

Nosso formulário deverá ser semelhante ao da figura abaixo:


Figura 6. Posicione os controles da melhor forma.

Daremos um duplo clique no controle Button para colocarmos o código de ação para este botão.
Após o duplo clique, a seguinte tela será exibida:


Figura 7. A tela de edição de códigos é utilizada para associar linhas de códigos a controles.

Digitaremos o código para que ao botão ser clicado, o texto "Hello Word!" seja exibido no controle Label. O código para essa ação pode ser conferido logo abaixo:

Listagem 1. Código referente ao click do botão
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   Label1.Text = "Hello World!"
End Sub

Para executar nosso software, pressionaremos a tecla F5, responsável por conectar o Visual Studio.net ao emulador para Pocket PC (caso você não possua um dispositivo físico) e efetuar a instalação do software no sistema emulado. Caso o dispositivo (tanto físico quanto emulado), não possua a .NET Compact Framework instalada, o Visual Studio.net se encarrega deste trabalho, instalando a plataforma caso o dispositivo seja compatível.

Após a conexão estabelecida e o emulador pronto, nosso software será executado, como visto na figura abaixo.


Figura 8. Software sendo executado no emulador Pocket PC 2003.

Seguindo este simples roteiro, deu pra perceber o quão simples é a plataforma para desenvolvimento para dispositivos móveis criada pela Microsoft.

A plataforma, possibilita o desenvolvimento de softwares com recursos de última geração, permitindo o desenvolvimento de softwares com muito valor agregado, pois a .NET CF permite o uso de Bancos de Dados (SQL Server CE Edition), manipula arquivos XML, acessa Web Services e manipula dados de retorno, tem amplo acesso a biblioteca gráfica GDI, possui recursos para Infravermelho (IrDA), possui recursos para Bluetooth entre outros.

A cada novo dia, um novo dispositivo é lançado no mercado. A cada novo dia, novas formas de programação são descobertas e com isso devemos estar sempre acompanhando o mercado.

A estratégia de acesso móvel permite que o que antes era feito com papel, hoje seja feito com o uso de redes sem fio (WiFi) e computadores.

Podemos ter equipes em campo fazendo vendas e consultando produtos em real time. Os índices de vendas podem ser acompanhados com um delay muito baixo, visto que a cada nova venda, ou a cada nova compra os dados na central são atualizados. Todos sempre tem as últimas versões dos dados.

Esse conceito de trabalho real time é o que vem motivando centenas de novas empresas a procurarem software houses para planejarem softwares que sejam executados em smart devices e possuam a estrutura básica abaixo.


Figura 9. Topologia de aplicações para força de venda.

Outra grande vantagem da computação móvel, é a qualidade dos dados obtidos, sejam eles de vendas ou comprar. Os dados validados em um sistema, tem uma garantia muito mais alta de serem verídicos. Erros de interpretação de nomes, valores e dados em gerais escritos em papeis são um problema ao serem consolidados em uma base de dados. Utilizando um computador (entenda Pocket PC), esses riscos são insignificantes ou até mesmo inexistentes, pois os dados são legíveis por qualquer um, e as informações são sempre validadas e recentes. Quando o software é bem construído, não teríamos o problema por exemplo de cadastrar dois clientes "João Alberto Silva" e "João A. Silva" pois a checagem de nomes é em tempo real.

Mas do que comprovado, esta o fato de que ao ser informado sobre os status dos produtos e/ou serviços comprados, o cliente acaba criando uma relação de confiança com a empresa fornecedora do produto e/ou serviço. Essa relação de confiança e comprometimento, estreitam os laços entre vendedor e comprador, fazendo com que o comprador se interesse outras vezes pelas ofertas dos vendedores.

Mais uma vez, devemos levar em consideração, que a relação é muito importante mediante uma compra ou uma venda. A presença humana, carisma e outros fatores, é o que conquista o cliente. Imagine a situação onde ao fazer um compra, o cliente recebe e-mails periódicos informando como anda o status e em que posição da linha esta o produto adquirido. Isso é muito simples e totalmente viável quando falamos de computação certo? Mas imagine o necessário para criar o mesmo efeito no modelo tradicional, aonde o vendedor vai até o cliente com papeis e formulários ! O delay necessário para o envio dos e-mails seria muito alto, correndo o risco de a mercadoria ser entregue e nenhum e-mail ser disparado.

Links úteis:

http://www.codificando.net

http://msdn.microsoft.com/smartclient/understanding/netcf/gettingstarted/default.aspx?pull=/library/en-us/dnnetcomp/html/netcfgetstarted.asp

http://msdn.microsoft.com/smartclient/understanding/netcf/gettingstarted/default.aspx?pull=/library/en-us/dnnetcomp/html/net_vs_netcf.asp

Conclusões

A mobilidade é algo muito novo, e cada vez mais presente em nosso dia-a-dia. Devemos ter muito planejamento ao implementar recursos sobre dispositivos móveis para que o resultado desejado seja obtido. E nada mais útil para o desenvolvimento para tais dispositivos do que a Microsoft .NET Compact Framework!

Max Mosimann Netto

Max Mosimann Netto - Fundador e coordenador do grupo Codificando.net (http://www.codificando.net). Atualmente presta consultoria na área de mobile business, desenvolvendo aplicações para web, pocket, celular e smartphone.
TheSpoke: http://br.thespoke.net/MyBlog/max/MyBlog.aspx