Suporte para o ‘WISP’ do Windows Mobile 6 a partir de .NET CF 2.0

Uma das novidade do Windows Mobile 6 para programadores é o suporte para o modelo de ‘inking’ presente nos equipamentos ‘Classic’ e ‘Professional’, semelhante ao modelo dos Tablet PC, o que permite um muito melhor controlo do que o utilizador ‘desenha’ com o ponteiro, seja a desenhar um boneco, seja uma assinatura. Esse suporte passa por melhor registar as operações de escrita do utilizador, guardar essa informação e até reconhecer – ou pelo menos tentar – o que o utilizador escreveu!!!

(imagem retirada do blog do Alex Feiman)

As más notícias são, tal como já é sabido, que o Windows Mobile 6 SDK não expõe essa funcionalidade para os programadores de ‘managed code’, só para ‘código nativo’ (C++)… as boas notícias são que o Alex Feinman criou um wrapper que permite controlar esta funcionalidade a partir de .NET CF 2.0, que foi disponibilizado através da OpenNetCF:

Alex Feinman: WISPLite on Windows Mobile 6
http://blog.opennetcf.org/afeinman/PermaLink,guid,e6309045-3f60-4ec4-835f-34a7a98c3ab5.aspx

O download deste wrapper pode ser feito a partir do próprio artigo.

Novo livro sobre desenvolvimento para Windows Mobile

Do autor do excelente livro ‘.NET Compact Framework Core Reference’, o Andy Wigley, a par do Peter Foot e do Daniel Moth, foi agora lançado um novo livro que para além de fazer a necessária actualização de algumas questões para a .NET CompactFramework 2.0, desenvolve alguns outros temas pertinentes ao desenvolvimento para esta plataforma.

Microsoft® Mobile Development Handbook
Andy Wigley; Daniel Moth; Peter Foot

O livro destina-se principalmente aqueles que já desenvolvem para .NET CF, ou que conhecendo a .NET Framework, querem aventurar-se neste novo mundo.

Pela seguinte lista de capítulos, podem ficar com uma ideia mais aproximada dos temas cobertos pelo livro:

1. .NET Compact Framework—a Platform on the Move
2. Building a Microsoft Windows Forms GUI
3. Using SQL Server 2005 Compact Edition and Other Data Stores
4. Catching Errors, Testing, and Debugging
5. Understanding and Optimizing .NET Compact Framework Performance
6. Completing the Application: Packaging and Deployment
7. Exchanging Data with Backend Servers
8. Networking
9. Getting Connected
10. Security Programming for Mobile Applications
11. Threading
12. Graphics Programming
13. Direct3D Mobile
14. Interoperating with the Platform
15. Building Custom Controls
16. Internationalization
17. Developing with Windows Mobile
18. Introducing .NET Compact Framework Version 3.5 and Visual Studio “Orcas”

É improvável que o encontrem já por cá, por isso a melhor opção para já será encomendá-lo, por ex. da Amazon UK:

http://www.amazon.co.uk/Microsoft-Mobile-Development-Handbook-Pro/dp/0735623589

Eu vou já encomendar um para mim :)

Diferenças de performance entre SSCE 2.0 e 3.1 para a mesma instrução

Ao converter uma aplicação de .NET CF 1.0 com base de dados em SQL CE 2.0 para .NET CF 2.0 com SQL CE 3.1, constatei que uma instrução SQL que demorava poucos segundos, passou a demorar quase 30 segundos a ser executada!

A instrução em causa relacionava 3 tabelas, e estava ‘optimizada’ para SSCE 2.0, ou seja, em vez de JOINs explícitos, relacionava as tabelas na cláusula WHERE, algo como…

SELECT t1.c1, t1.c2
FROM t1, t2, t3
WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1

Bastou mudá-la para…

SELECT t1.c1, t1.c2
FROM t1 LEFT JOIN t2 ON t1.c1 = t2.c1 LEFT JOIN  t3 ON t2.c1 = t3.c1

…para que de quase 30 segundos passasse a ser executada em menos de 5 segundos!

Quem não utilizou SSCE 2.0, logo à partida escolheria esta segunda instrução, mas para os restantes, ao converterem aplicações em .NET CF 1.0 para .NET CF 2.0 vale a pena reverem as V/ instruções SELECT no sentido de procederem a esta modificação!