Category Archives: 1417

Pergunta: Dúvidas sobre Windows Phone 7 e compatibilidade de aplicações antigas

Recebi a seguinte mensagem de um visitante deste blog, que espelha muitas das preocupações de empresas que desenvolvem para Windows Mobile, que tomo a liberdade de transcrever:

Com o lançamento do Windows Phone 7, tanto quanto tenho lido em blogs, o SQL SERVER COMPACT EDITION vai desaparecer certo? O meu problema é o seguinte, a empresa para a qual trabalho desenvolve software que usa bd em sql server ce, e é desenvolvido em VS 2005. A minha duvida é se voce sabe se o projecto será compativel no Windows Phone 7 ou se há alguma maneira de migrar, ou tendo em conta que o WP7 assenta em silverlight, a unica hipotese é desenvolver a solução de raiz??

A minha outra duvida é será que a Microsoft apesar de lançar o WP7, irá manter a venda de Windows Mobile 6.5 ? de modo a continuar a dar suporte e assistência às milhares de aplicações que existirão em todo o mundo?

Não sei se me pode ajudar, mas como sou leitor assíduo do seu blog, junto lhe envio as minhas preocupações, que de momento me causam grandes dores de cabeça :) Na expectativa que me possa transmitir alguma informação adicional

Começando pelo fim, o Windows Mobile 6.5 não morre! A Microsoft anunciou há meses – publiquei um post dobre o assunto na altura – o Windows Embedded Handheld como a nova incarnação do que actualmente conhecemos como Windows Mobile. Esse ‘novo’ sistema operativo, que a Motorola já começou a adoptar e que outros fabricantes adoptarão, tem já um roadmap conhecido, que prevê uma evolução futura baseada em CE 7.0, mantendo sempre compatibilidade com a .NET Compact Framework 3.5, o SQL Server CE 3.5, continuando para já a exigir o VS2008 para desenvolvimento. É um facto que os fabricantes mais ‘comerciais’ como a HTC não venham a adoptar este sistema operativo, mas por ex., com os preços dos novos Motorola ES400 a descer dos 600€, não há razão para as empresas não adoptarem equipamentos com fiabilidade e robustez acrescida face aos equipamentos de consumo.

Continuando no tema do desenvolvimento, as aplicações actualmente feitas para .NET CF 3.5 não correm de todo nos equipamentos Windows Phone 7. A boa notícia é que projectos bem estruturados em termos de separação de lógica de negócio, acesso a dados e apresentação facilitam a migração e/ou partilha de código entre projectos para as duas plataformas (nota: julgo que as class library a partilhar terão de ser desenvolvidas no VS2008 para .NET CF 3.5).

Para terminar, o SQL Server Compact Edition não desaparece! Para além de ter sido anunciado o seu suporte alargado do lado do PC, incluíndo suporte para projectos ASP.net, que não é o que interessa para a questão, o SQL Server Compact Edition estará presente nos Windows Phone 7, simplesmente não está acessível aos programadores nesta primeira versão do Windows Phone 7 e respectivas ferramentas de desenvolvimento. Desconhece-se qual a forma como será exposto, admitindo que venha a sê-lo.

Espero ter respondido ao autor da mensagem, qualquer questão pf. usem os comentários.

O Windows Mobile 6.5 condenado? Claro que não, digam olá ao Windows Embedded Handheld!

Desde o anúncio do Windows Phone 7 no MWC em Barcelona e depois no MIX em Las Vegas que muitos profetas condenaram à morte o Windows Mobile, quase a um ano do lançamento do Windows Phone 7. A verdade é que no mesmo MWC tinham sido divulgados novos equipamentos, como o HTC HD Mini, e desde então foram divulgados outros, como o Sony com teclado frontal e a semana passada dois novos equipamentos da Samsung. A par desses lançamentos, a Microsoft assegurou que não tiraria o tapete ao WM, que internamente passou da àrea de consumo para a àrea de embedded, mais ligada às soluções para profissionais. Paralelamente, por aquilo que se ia sabendo do WP7 em termos do modelo de sitribuição de aplicações, restrições para programadores e requisitos de hardware, não parecia fazer sentido que fabricantes de equipamentos profissionais, como o a Motorola, viessem a substituír comercialmente os equipamentos actuais e que continua a lançar por equipamentos com o Windows Phone 7, tal como não fazia sentido que a Microsoft se desse ao luxo de desprezar o mercado desse tipo de equipamentos, onde reina incontestavelmente, e dos ISV que desenvolvem aplicações profissionais para as suas plataformas móveis.

Esse era o ponto de situação aquando do TechDays, que serviu de base a algumas conversas interessantes com algumas pessoas que assistiram à minha sessão e nos ‘corredores’.

Esta semana chega o anúncio do ‘Windows Embedded Handheld’, que na prática no seu lançamento será na sua essência o Windows Mobile 6.5 que conhecemos, com as ferramentas de desenvolvimento actuais, presumo. Este lançamento, mais do que um ‘marco tecnológico’, confirma a aposta da Microsoft em continuar a disponibilizar e melhorar a melhor plataforma móvel para aplicações profissionais e que conta com as ferramentas de desenvolvimento mais produtivas, que no próximo ano conhecerá uma nova versão já com o Windows CE 7, agora chamado Windows Embedded Compact 7, com suporte por parte do VS2010.

Podem ler mais sobre este lançamento nos seguintes links e também sobre o equipamento anunciado pela Motorola que estreará já no Outono este novo sistema operativo. Logo que tenha acesso a um equipamento desses, partilharei a informação.

Microsoft Outlines Commitment to the Future of Enterprise Handheld Devices
http://robtiffany.com/uncategorized/microsoft-outlines-commitment-to-the-future-of-enterprise-handheld-devices

Microsoft spins new OS at Motorola’s handheld launch
http://www.windowsfordevices.com/c/a/News/Microsoft-Windows-Embedded-Handheld-and-Motorola-ES400-EDA

Microsoft Announces New Mobile Operating System for Enterprise Customers
http://windowsphonethoughts.com/news/show/98514/microsoft-announces-new-mobile-operating-system-for-enterprise-customers.html

Motorola ES400 Enterprise Digital Assistant (EDA) Press Kit
http://mediacenter.motorola.com/content/detail.aspx?ReleaseID=12940&NewsAreaId=17

SQL Server Compact 3.5 SP2: Activação do SqlCeChangeTracking

No desenvolvimento de aplicações para mobilidade que dependam de dados está sempre subjacente a questão de como transportar os dados entre o equipamento e um servidor, e se vale a pena investir num mecanismo de sincronização diferencial.

Este post não pretende comparar alternativas à questão da sincronização de dados, simplesmente divulgar uma funcionalidade exposta pelo SQL Server Compact 3.5 SP2, a possibilidade de ligar o tracking de alterações num SDF. Essa funcionalidade, apesar de divulgadas nos ‘what’s new’ associados ao lançamento deste SP2, não mereceu muita mais atenção em termos de documentação de como usá-la, pelo que a seguinte thread pode ser muito importante para quem se quiser debruçar sobre o tema:

Help with SqlCeChangeTracking
http://stackoverflow.com/questions/2834542/help-with-sqlcechangetracking

A solução poderá ser, depois de activar o SqlCeChangeTracking, fechar e voltar a abrir a ligação para que o mecanismo de tracking de alterações se torne efectivo.

Série de artigos interessante sobre desenvolvimento para Windows Mobile

Recebi no meu agregador de feeds RSS um conjunto de 7 artigos muito interessantes publicados no CodeProject sobre o desenvolvimento para Windows Mobile em diferentes vertentes.

Parte I – Instalação do Visual Studio 2008, ferramentas necessárias e primeira aplicação
http://www.codeproject.com/KB/mobile/MOB4DEVS01.aspx

Parte II – Utilização do Device Emulator, do Cellular Emulator e automação do Device Emulator
http://www.codeproject.com/KB/mobile/MOB4DEVS02.aspx

Parte III – Desenvolvimento de aplicações baseadas em forms com .NET Compact Framework
http://www.codeproject.com/KB/mobile/MOB4DEVS03.aspx

Parte IV – UserControls, integração com GPS e utilização do ‘emulador’ de GPS
http://www.codeproject.com/KB/mobile/MOB4DEVS04.aspx

Parte V – Introdução à utilização do SQL Compact com DataSet e SqlCeResultSet
http://www.codeproject.com/KB/mobile/MOB4DEVS05.aspx

Parte VI – Compreender o modelo de segurança do Windows Mobile e deployment de aplicações .NET CF
http://www.codeproject.com/KB/mobile/MOB4DEVS06.aspx

Parte VII – Desenvolvimento Web para Windows Mobile
http://www.codeproject.com/KB/mobile/MOB4DEVS07.aspx

Os artigos estão ligados ao ‘track’ de desenvolvimento para Windows Mobile do projecto RampUp:

http://msdn.microsoft.com/en-us/rampup/dd807370.aspx

SQL Compact: Sim, a performance conta muito

Há tempos foi reportado que num dos nossos clientes da nossa solução de pré/auto-venda, o carregamento de uma lista com 60 a 70 registos demorava mais de 5 minutos, enquanto noutros clientes, com o mesmo volume de informação não demorava mais de uns breves segundos. A operação em causa dependia de uma consulta à base de dados no PDA que continha múltiplos JOIN, sobre um comando preparado, e a diferença entre clientes também poderia estar relacionada com os equipamentos utilizados, pois a tal operação de ‘5 minutos’ com a mesma base de dados demorava ‘apenas’ 40 segundos no meu emulador.

Para fazer o tunning à instrução, abri o SQL Server Management Studio, e estudei o Execution Plan da mesma, o que me foi dando ideias para índices a criar, mas sem que tal tivesse um impacto significativo em termos de performance. Aí vi que tinha que mudar a instrução e comecei a pensar como fazê-lo, pois era importante obter a informação das tais tabelas ligadas de uma só vez, mas identifiquei uma tabela de lookup, e tirei-a da instrução SQL, menos um JOIN portanto, e automaticamente o comando passou a ser executado quase instantaneamente. Como a tal tabela era importante, decidi pré-carregá-la numa colecção do tipo key, value, e a cada registo consultava essa colecção para recuperar o valor que necessitava.

Tudo embalado de novo (alteração ao comando, carregamento da lista e novos índexes), no PDA do cliente a tal operação que demorava mais de 5 minutos passou a ser executada em entre 1 e 2 segundos!

Hoje dei com esta pérola no fórum da MSDN dedicado ao SQL Compact, um tipo que tinha uma instrução tão simples como:

SELECT TOP(1) SysDate FROM Violator ORDER BY SysDate Desc

em que a tabela em causa tinha um index criado para a coluna em causa com ordem descendente. Ao executar a instrução no emulador demorava cerca de 35 segundos, o que para ele era inaceitável, e ao analisar o Execution Plan do comando no SQL Server Management Studio, concluíu que o SQL Compact estava a fazer um INDEX SCAN em vez de um INDEX SEEK, que se esperaria que fosse mais performante. O EricEJ, um MVP de SQL Server Compact, sugeriu-lhe uma pequena modificação à instrução, acrescentando-lhe um WHERE inócuo…

SELECT TOP(1) SysDate FROM Violator WHERE SysDate < GETDATE() ORDER BY SysDate Desc

… e automaticamente o comando passou a ser executado de forma muito mais rápida no emulador!

Conclusão

O Query Processor (QP) do SQL Compact tem o seu quê de feminino, é difícil compreender as suas decisões, e mesmo quando achamos que o conhecemos bem, lá aparece uma situação nova a mostrar-nos o contrário, e temos de usar de truques para o convencer a fazer o que queremos :)

Consultório: Como abstraír conceptualmente uma aplicação para prever um modelo offline de forma passiva?

No fórum da MSDN dedicado ao SQL Compact surgiu uma questão arquitectural que, de forma resumida, pretende que se debata um modelo sobre como abstraír uma aplicação da questão se está ou não online. A minha resposta, em inglês foi a seguinte:

I think we can break this in two parts: getting data from the server and putting data on the server.

To get data from the server, you have to think how much data you may need on the client side, and how often it may change on the server side. As app like a survey app is very different from an app where you can insert orders, getting the current stock level for each product you select and get the most up-to-date information about the customer credit balance.

So, depending on those details you should consider a simple model, where the app on startup get’s all up to date information it needs and stores it in objects in memory or cached locally, or a more complex model, where while connected the client app has to keep a local cache up to date, either with a polling mechanism (the client checks for updates) or a notification mechanism (the server notifies the client).

About putting the infomation created/updated/deleted back on the server, I would consider a permanent cache, like a SQL Compact database, and a flag mechanism per record. All operations on the client app would be done locally on the cache, updating the flag status accordingly and whenever the server was reachable, a differnent thread would be uploading those operations and reseting the flag.

The critical issue when you assume that your app has to work mostly online but also offline, is that in most scenarios you don’t know when you are going to offline, so no chance for a last breath to get up to date information.

About the technology to sync information, you may roll out your own, or if your client app is a desktop app, take a look athe the ADO.net Sync Services, namely the current v2 CTP, which is a very optimized mechanism based on rules to synchronize databases.

Se tiverem dificuldade em perceber alguma coisa, ou quiserem partilhar um comentário sobre o tema, estejam à vontade para usar os comentários do blog.

Windows CE, Windows Mobile e construa o seu próprio equipamento

Muitos dos programadores para Windows Mobile desconhecem o que o Windows Mobile e Windows CE têm de diferente e de similar entre si.

Em resumo, “Windows Mobile” é uma plataforma definida pela Microsoft, que tem um conjunto de requisitos de hardware e de implementação da plataforma em si, que tornam cada versão do Windows Mobile um sistema operativo muito homogéneo, independente do fabricante do hardware, o que para quem desenvolve software é muito importante, pois é a garantia que salvaguardadas algumas questões de pormenor, uma mesma aplicação corre numa diversidade de equipamentos diferentes, espremendo o que de melhor têm para dar.

Por outro lado, o Windows CE é um sistema operativo altamente modular, que corre numa diversidade enorme de plataformas de hardware (x86, ARM, SH, MIPS, …) e que pode ser personalizado até à exaustão! Cada fabricante que licencia o Windows CE, escolhe os componentes de hardware que quiser, desenvolvendo ou utilizando os drivers dos respectivos fabricantes, e escolhendo que componentes do sistema operativo e aplicações desenvolvidas por eles próprios ou por terceiros que pretendem implementar, conseguindo iludir perfeitamente o mais conhecedor dos utilizadores sobre a plataforma em que determinado equipamento funciona. E por falar em equipamentos Windows CE, temos desde os terminais tipo PDA mais robustos, aos sistemas de navegação de diversos fabricantes, aos leitores Zune e consolas Sega Dreamcast, a muitas set-up boxes e cada vez mais, equipamentos industriais e de consumo perfeitamente insuspeitos.

Vamos imaginar que…

  • querem ‘criar’ um robot telecomandado ou com sensores para ter alguma autonomia, capaz de tirar fotos e gravar videos e fazer o upload dos mesmos para um webservice, com uma placa WiFi ou modem 3G, com GPS para informar onde se encontra, com um servidor HTTP para que remotamente se possa configurá-lo via browser de qualquer equipamento e com uma porta USB para tocar uns ficheiros MP3 à medida que se passeia.
  • que precisam de controlar uma linha de montagem, avançando-a à medida que se concretizam determinadas condições, reagindo a sensores e equipamentos de visão artificial, actuando sobre mecanismos que rejeitam peças não conformes, com um simples display de segmentos LED daqueles verdinhos, ligado a uma LAN e enviando alertas via mail acompanhados de fotos quando determinadas condições se verificam.
  • ou até, que têm ideias muito concretas sobre um módulo multi-funções de localização e controlo remoto de viaturas, que ligado a um GPS, sensores, actuadores e sistema ODBII do carro vos permite saber onde está o carro, despoletar alertas quando se aproxima de um ponto, enviar para o carro coordenadas para onde o condutor se deve dirigir, serem avisados que o motor de frio de uma viatura de transporte de congelados avariou ou que um airbag disparou, que o condutor ultrapassou determinada velocidade, ou que está há demasiado tempo parado no mesmo local, ou ainda imobilizar o carro à distância ou destrancá-lo com um SMS
  • isto sem falar naquele sistema de rega automática para o V/ jardim, que controla as condições de humidade do solo e as previsões metereológicas, e se desliga automaticamente quando detecta que o V/ cão se passeia pela relva

Em qualquer um destes cenários, a opção por uma plataforma Windows CE que preveja um conjunto de entradas/saídas analógicas e digitais é sem dúvida alguma a melhor opção para a sua implementação, pois permite que quem a implemente se concentre nos aspectos funcionais da mesma e atinja um nível de funcionalidade que seria inimaginável com uma solução baseada em autómatos. Para além das funcionalidades base do sistema operativo em si, que suporta directamente desenvolvimento em código nativo C++, pode escolher-se do catálogo de funcionalidades por ex. a .NET Compact Framework e o SQL Compact, e utilizar VB.net e C# para controlar o comportamento do sistema.

Voltando ao Windows Mobile, a cada versão deste está intimamente associada uma versão do Windows CE, da qual vários componentes são usados, e sobre os quais recaem outros componentes específicos que tornam o Windows Mobile aquilo que vemos, garantindo a tal homogeneidade que o Windows CE em si não pode oferecer, pois fabricantes diferentes são livres de escolherem a forma como querem implementar a sua plataforma, não podendo garantir que um determinado componente de hardware ou software exista em equipamentos diferentes, ou até que exiba o mesmo comportamento. Um exemplo perfeito disto é a diferença entre a forma como o Windows Mobile e o Windows CE gerem o módulo de comunicações GSM/GPRS/3G dos equipamentos, em que nos primeiros o Connection Manager nos abstrai dos detalhes da implementação do mesmo, enquanto que no Windows CE temos que utilizar SDK específicos de cada fabricante para utilizar as funcionalidades que o fabricante decide expor.

A opção pela construção de um equipamento baseado em Windows CE é similar à construção de um carro: se for uma pequena série, usamos um chassis tubular e componentes mecânicos de outros fabricantes, para minimizar o custo inicial, enquanto que para uma grande série, podemos planear um chasis monobloco e soluções mecânicas próprias. Da mesma forma, com o Windows CE, podemos usar uma board de referência que se adeque genericamente ao pretendido, ou conceber o esquema em que serão montados os circuitos e hardware requerido para personalizar a implementação ao máximo.

Para saber mais sobre a forma como o Windows CE pode ajudá-lo na implementação daquele projecto sobre o qual tem ideias muito concretas, mas não sabe como implementá-lo, assista ao seguinte webcast com a duração de 60 minutos:

MSDN Webcast: Windows Embedded CE and Handheld Solutions (Level 100)
http://www.microsoft.com/events/series/detail/webcastdetails.aspx?seriesid=122&webcastid=5241

Se manifestarem interesse sobre este tema, poderei transmiti-lo à Microsoft no sentido de lhe ser dada mais atenção em futuros eventos cá em Portugal. Até lá, acompanhem os seguintes videos da Imagine Cup 2009 no Egipto com o Windows Embedded CE como mote.

Imagine Cup – Day 4. Projects and Walkabout

Imagine Cup – Windows Embedded – Final six teams 

Imagine Cup 2009 – Embedded Competition – Day Two

Imagine Cup 2009, Egypt – Embedded Competition Day One

SQL Compact: Utilizar o IN (…) com um comando preparado

Já não é novidade para ninguém que a preparação de um comando que precisa de ser executado múltiplas vezes com diferentes valores melhora de forma muito sensivel a performance de execução da 2ª execução e das seguintes (no SQL Compact, o comando é efectivamente preparado na 1ª execução e não na invocação do método .Prepare). Para além disso, usar comandos SQL com parâmetros elimina os problemas por muitos conhecidos de ‘qual o formato da data’ ou ‘qual o separador decimal’ a utilizar ao passar valores deste tipo para o comando a executar.

Os parâmetros podem ser utilizados da forma mais convencional, como em…

UPDATE stocks SET qtd=@novaQtd WHERE artigo=@artigo

…mas uma questão encontrada com frequência é, como preparar um comando com uma cláusula WHERE com o operador IN, em que o nº de valores a procurar é desconhecido à partida ou até variável?

UPDATE stocks SET qtd=0 WHERE artigo IN (@artigo1, @artigo2, …, @artigon)

Nas versões completas do SQL, a solução proposta passa quase sempre por criar uma stored procedure para o efeito, mas o SQL Compact não suporta stored procedures, pelo que parecia não haver solução para este problema.

Ao encontrar esta questão pela enésima vez num fórum, reflecti mais um pouco e apresentei uma solução que produz o mesmo efeito.

Vamos supor que temos uma tabela clientes, da qual queremos actualizar o campo activo para 1 de acordo com a lista de códigos postais escolhidos pelo utilizador.

Para o efeito podíamos preparar o seguinte comando…

UPDATE clientes SET activo = 1 WHERE Patindex(‘[‘ + codigopostal + ‘]’, @codPostal) > 0

onde codigopostal é o campo da tabela de clientes com os códigos a procurar, e @codPostal um parâmetro a ser definido do tipo nvarchar. A função Patindex devolve a posição em que a 1ª string é encontrada na 2ª, devolvendo um valor superior a zero sempre que seja encontrada.

Para utilizá-lo, bastaria passar como valor para o parâmetro @codPostal, a lista de códigos escolhidos pelo utilizador, tendo o cuidado de ao compor a string com os mesmos, colocar parentesis rectos à volta de cada um deles, como por ex.:

[3850-000]{3850-010][3000-000]

Os parentesis rectos servem para ‘isolar’ cada um dos valores a ser procurados (ex., ao procurar mar, não fazer match com Maria, ou Tomar), assumindo que esses caracteres não são esperados dentro dos valores a serem pesquisados!

Caso queiram procurar datas ou valores numéricos, terão de os converter para string de modo a poderem ser concatenados com os parantesis rectos.

SQL Server Compact 3.5: Será que já está *mesmo* a usar a versão SP1?

Como referi em posts anteriores, tenho estado de volta do upgrade de uma aplicação para .NET CF 3.5 e SQL Compact 3.5. A aplicação já vem do tempo da .NET CF 1.0 e SSCE 2.0, altura em que não havia suporte por parte do SSCE a parâmetros com nomes, utilizando-se o ponto de interrogação para identificar o local dos parâmetros, por ex. …

UPDATE Clientes SET saldo = ? WHERE nrcliente = ?

…passando-se os parâmetros ao objecto SqlCeCommand pela ordem pela qual apareciam na instrução SQL. O suporte a parâmetros com nomes veio com o SQL Server 2005 Mobile Edition (3.0), passando-se a poder utilizar a notação mais comum:

UPDATE Clientes SET saldo = @novoSaldo WHERE nrcliente = @cliente

Ao executar a aplicação já em .NET CF 3.5 com SSC 3.5, dou-me conta de um erro numa instrução que ainda vinha do tempo do SSCE 2.0 e como tal ainda tinha os tais pontos de interrogação. Alguma investigação em torno da situação leva-me a experimentar substituír os ? por parâmetros com nomes, e ao executar de novo a instrução, a dita já funcionava… a causa? O SQL Compact 3.5 não estava a respeitar a ordem pela qual os parâmetros eram passados ao comando. A alternativa era óbvia, substituír as potenciais dezenas de instruções com os ditos pontos de interrogação por parâmetros com nomes.

No entanto, isto para mim não fazia sentido, não me lembro de ter lido nada que me alertasse para este novo comportamento, e após alguma investigação fui confirmar se já estaria a utilizar o SP1 do SQL Compact 3.5…

Nesta minha nova máquina de desenvolvimento, um Toshiba Tecra S10-128, pensava ter instalado tudo quanto há de mais recente, nomeadamente o Visual Studio 2008 SP1 e o SQL Server 2008 (o SP1 do SQL Server 2008 só saíu esta semana e ainda não o instalei) e com essas ferramentas, veio também o SQL Compact 3.5 SP1. O que eu me tinha esquecido é que essas actualizações não incluem o SP1 para os devices, e ao copiar o ficheiro sqlceca35.dll da pasta \Programas\Microsoft SQL Server Compact Edition\3.5 do PDA para o PC e com o explorer aberto as suas propriedades, constatei que estava a usar a build 3.5.5386, que de acordo com esta tabela, corresponde à versão RTM, portanto sem o SP1:

image

Rapidamente descarreguei o SP1 para Windows Mobile/Windows CE desta página e instalei-o. Actualizei a referência ao System.Data.SqlServerCe.dll para ter a certeza que estava tudo bem, e fiz o deploy da aplicação. Ao testar de novo a situação descrita no início do post, o problema deixou de ser reproduzido, ou seja, foi resolvido no SP1, ainda que não tenha obtido confirmação nas listas de fixes que verifiquei. Pode confirmar no PDA/emulador se está a usar a versão SP1 comparando no registry a chave [HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server Compact Edition\v3.5] com o seguinte ecrã:

image

Outro stress ultrapassado… NEXT!!!

DevDays: Sessão “MOB101 – Desenvolvimento para Windows Mobile – Por onde começar?”

Esta sessão será destinada aqueles que vão dar os primeiros passos no domínio do desenvolvimento para Windows CE e Windows Mobile utilizando o Visual Studio 2008 e a .NET Compact Framework. Esta introdução é importante para não defraudar as expectativas daqueles que já tendo dado alguns passos e assistido a sessões minhas no passado possam esperar o aprofundamento de algum tema ligado ao desenvolvimento para .NET CF.

A sessão vai contar com algumas pequenas demos, mas será baseada num slideshow Powerpoint, que será preparado de modo a servir de referência futura para aqueles que, particpando ou não na sessão, pretendem mais tarde em frente aos seus comnputadores reproduzir e aprofundar o que foi exposto.

Os temas que penso aflorar são…

  • Requisitos e ferramentas necessárias e recomendadas para o desenvolvimento para Windows Mobile
  • Criação de projectos para Windows Mobile e consequências das escolhas feitas na sua criação
  • Utilização do emulador
  • Lidar com as limitações dos equipamentos
  • Opções para persistência de dados e sincronização com servidores
  • Comunicações
  • Packaging de aplicações
  • Modelos de referência para desenvolvimento de aplicações para WM
  • Recursos

Como podem observar, a ideia é mesmo dar o chamado ‘lamiré’ que estimule e guie aqueles programadores que desenvolvendo já em .NET querem espreitar este novo paradigma de desenvolver para equipamentos que andam nos bolsos das pessoas. Não nos podemos esquecer também daqueles que já tenham tido uma experiência menos positiva no desenvolvimento para a .NET CF, fruto eventualmente de não terem tomado na altura as melhores opções, e pretendem descobrir afinal porque é que há cada vez mais programadores para esta ‘pequena’ plataforma!

Caso queira comentar ou deixar alguma sugestão para esta sessão, esteja à vontade para adicionar o seu comentário a este post.