<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Alberto Silva : Desenvolvimento (.net CF)</title><link>http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx</link><description>Tags: Desenvolvimento (.net CF)</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Série de artigos interessante sobre desenvolvimento para Windows Mobile</title><link>http://msmvps.com/blogs/albertosilva/archive/2009/11/03/s-233-rie-de-artigos-interessante-sobre-desenvolvimento-para-windows-mobile.aspx</link><pubDate>Tue, 03 Nov 2009 12:58:09 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1737336</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1737336</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1737336</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2009/11/03/s-233-rie-de-artigos-interessante-sobre-desenvolvimento-para-windows-mobile.aspx#comments</comments><description>&lt;p&gt;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. &lt;/p&gt;  &lt;p&gt;Parte I – Instalação do Visual Studio 2008, ferramentas necessárias e primeira aplicação   &lt;br /&gt;&lt;a title="http://www.codeproject.com/KB/mobile/MOB4DEVS01.aspx" href="http://www.codeproject.com/KB/mobile/MOB4DEVS01.aspx"&gt;http://www.codeproject.com/KB/mobile/MOB4DEVS01.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Parte II – Utilização do Device Emulator, do Cellular Emulator e automação do Device Emulator   &lt;br /&gt;&lt;a title="http://www.codeproject.com/KB/mobile/MOB4DEVS02.aspx" href="http://www.codeproject.com/KB/mobile/MOB4DEVS02.aspx"&gt;http://www.codeproject.com/KB/mobile/MOB4DEVS02.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Parte III – Desenvolvimento de aplicações baseadas em forms com .NET Compact Framework   &lt;br /&gt;&lt;a title="http://www.codeproject.com/KB/mobile/MOB4DEVS03.aspx" href="http://www.codeproject.com/KB/mobile/MOB4DEVS03.aspx"&gt;http://www.codeproject.com/KB/mobile/MOB4DEVS03.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Parte IV – UserControls, integração com GPS e utilização do ‘emulador’ de GPS   &lt;br /&gt;&lt;a title="http://www.codeproject.com/KB/mobile/MOB4DEVS04.aspx" href="http://www.codeproject.com/KB/mobile/MOB4DEVS04.aspx"&gt;http://www.codeproject.com/KB/mobile/MOB4DEVS04.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Parte V – Introdução à utilização do SQL Compact com DataSet e SqlCeResultSet   &lt;br /&gt;&lt;a title="http://www.codeproject.com/KB/mobile/MOB4DEVS05.aspx" href="http://www.codeproject.com/KB/mobile/MOB4DEVS05.aspx"&gt;http://www.codeproject.com/KB/mobile/MOB4DEVS05.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Parte VI – Compreender o modelo de segurança do Windows Mobile e deployment de aplicações .NET CF   &lt;br /&gt;&lt;a title="http://www.codeproject.com/KB/mobile/MOB4DEVS06.aspx" href="http://www.codeproject.com/KB/mobile/MOB4DEVS06.aspx"&gt;http://www.codeproject.com/KB/mobile/MOB4DEVS06.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Parte VII – Desenvolvimento Web para Windows Mobile   &lt;br /&gt;&lt;a title="http://www.codeproject.com/KB/mobile/MOB4DEVS07.aspx" href="http://www.codeproject.com/KB/mobile/MOB4DEVS07.aspx"&gt;http://www.codeproject.com/KB/mobile/MOB4DEVS07.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Os artigos estão ligados ao ‘track’ de desenvolvimento para Windows Mobile do projecto RampUp:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/rampup/dd807370.aspx" href="http://msdn.microsoft.com/en-us/rampup/dd807370.aspx"&gt;http://msdn.microsoft.com/en-us/rampup/dd807370.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1737336" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_SQL+Server+CE_2900_/default.aspx">Desenvolvimento (SQL Server CE)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>SQL Compact: Sim, a performance conta muito</title><link>http://msmvps.com/blogs/albertosilva/archive/2009/09/11/sql-compact-sim-a-performance-conta-muito.aspx</link><pubDate>Fri, 11 Sep 2009 17:29:58 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1722633</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1722633</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1722633</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2009/09/11/sql-compact-sim-a-performance-conta-muito.aspx#comments</comments><description>&lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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!&lt;/p&gt;  &lt;p&gt;Hoje dei com &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/6b7274ce-0fbe-40a4-af22-ad3fad9eee96" target="_blank"&gt;esta pérola&lt;/a&gt; no fórum da MSDN &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/sqlce/threads" target="_blank"&gt;dedicado ao SQL Compact&lt;/a&gt;, um tipo que tinha uma instrução tão simples como:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;SELECT TOP(1) SysDate FROM Violator ORDER BY SysDate Desc&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;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 &lt;a href="http://erikej.blogspot.com/" target="_blank"&gt;EricEJ&lt;/a&gt;, um MVP de SQL Server Compact, sugeriu-lhe uma pequena modificação à instrução, acrescentando-lhe um WHERE inócuo…&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;SELECT TOP(1) SysDate FROM Violator &lt;strong&gt;WHERE SysDate &amp;lt; GETDATE() &lt;/strong&gt; ORDER BY SysDate Desc&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;… e automaticamente o comando passou a ser executado de forma muito mais rápida no emulador!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;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 :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1722633" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_SQL+Server+CE_2900_/default.aspx">Desenvolvimento (SQL Server CE)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Consultório: Há forma standardizada para controlar um GPS em equipamentos Windows Mobile?</title><link>http://msmvps.com/blogs/albertosilva/archive/2009/07/28/consult-243-rio-h-225-forma-standardizada-para-controlar-um-gps-em-equipamentos-windows-mobile.aspx</link><pubDate>Tue, 28 Jul 2009 10:28:34 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1710511</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1710511</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1710511</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2009/07/28/consult-243-rio-h-225-forma-standardizada-para-controlar-um-gps-em-equipamentos-windows-mobile.aspx#comments</comments><description>&lt;p&gt;Recebi a seguinte pergunta via mail…&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;Bom dia Alberto,&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;em&gt;Um colega meu desenvolveu um utilitátio para iPhone que indica qual a xxxxxxxxx mais perto de onde o iPhone se encontra. Eu já estive a ver o software e gostei muito e por isso pedi-lhe para ele fazer uma versão para Windows Mobile. Ele ainda não consegui concretizar esta portabilidade pois diz que cada aparelho Windows Mobile utiliza maneiras diferentes de comunicar com o GPS e por isso perguntou-me se eu conheço alguma livraria que ele pudesse usar para comunicar com os GPS’s.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;em&gt;Podes ajudar-me neste assunto?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;…e esta é a minha resposta…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Olá Jorge,&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Sim, há forma uniformizada de o fazer. Até há uns tempos atrás podia ser complicado, pois um PDA com Windows Mobile podia ou não ter GPS incorporado, e se não tivesse, podia ligar um GPS externo fosse através de bluetooth, fosse de um cabo série. O problema que isto apresentava era que a porta COM onde o GPS era exposto e os parâmetros da ligação variavam em função do modelo do PDA e da ligação escolhida, mas mais grave ainda, as portas COM não permitem ser acedidas de forma partilhada, ou seja, uma vez abertas por uma aplicação, não podem ser acedidas pelas outras.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Desde o Windows Mobile 5 que a Microsoft providenciou um método que permite contornar de algum modo estas questões, através de um ‘driver’ GPS que se liga ao dito cujo, e que permite que diferentes aplicações se alimentem do feed NMEA que o GPS vai enviando constantemente, o&lt;/em&gt; GPS Intermediate Driver&lt;em&gt;:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/windowsmobile/archive/2006/06/07/620387.aspx"&gt;&lt;strong&gt;&lt;em&gt;http://blogs.msdn.com/windowsmobile/archive/2006/06/07/620387.aspx&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Esse ‘driver’ é uma aplicação que nos equipamentos com ecrã táctil surge nos settings do PDA, no entanto há fabricantes que optaram por não o expor, sendo necessário proceder a uma modificação do registry do PDA&lt;/em&gt; (ver link anterior)&lt;em&gt;. Nesta aplicação definimos como nos pretendemos ligar ao GPS, seja incorporado, seja via bluetooth com uma porta virtual, e como pretendemos expor o feed do GPS.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Para poder consumir o feed sem nos termos de preocupar com a questão das portas COM, o Windows Mobile 6 Professional SDK traz um exemplo de como fazê-lo em C#:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF-3D48091A390B&amp;amp;displaylang=en"&gt;&lt;strong&gt;&lt;em&gt;http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF-3D48091A390B&amp;amp;displaylang=en&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;O mesmo SDK traz uma aplicação chamada Settings.exe na pasta Tools que permite controlar o GPS Intermediate Driver em equipamentos sem ecrã táctil.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;O que acham deste formato de partilha de informação, tipo consultório?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1710511" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Windows CE, Windows Mobile e construa o seu próprio equipamento</title><link>http://msmvps.com/blogs/albertosilva/archive/2009/07/08/windows-ce-windows-mobile-e-construa-o-seu-pr-243-prio-equipamento.aspx</link><pubDate>Wed, 08 Jul 2009 15:23:08 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1698754</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1698754</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1698754</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2009/07/08/windows-ce-windows-mobile-e-construa-o-seu-pr-243-prio-equipamento.aspx#comments</comments><description>&lt;p&gt;Muitos dos programadores para Windows Mobile desconhecem o que o Windows Mobile e Windows CE têm de diferente e de similar entre si.&lt;/p&gt;  &lt;p&gt;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. &lt;/p&gt;  &lt;p&gt;Por outro lado, o &lt;a href="http://en.wikipedia.org/wiki/Windows_CE" target="_blank"&gt;Windows CE&lt;/a&gt; é 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. &lt;/p&gt;  &lt;p&gt;Vamos imaginar que…&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;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. &lt;/li&gt;    &lt;li&gt;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. &lt;/li&gt;    &lt;li&gt;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&lt;/li&gt;    &lt;li&gt;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&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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:&lt;/p&gt;  &lt;h3&gt;MSDN Webcast: Windows Embedded CE and Handheld Solutions (Level 100)   &lt;br /&gt;&lt;a title="http://www.microsoft.com/events/series/detail/webcastdetails.aspx?seriesid=122&amp;amp;webcastid=5241" href="http://www.microsoft.com/events/series/detail/webcastdetails.aspx?seriesid=122&amp;amp;webcastid=5241"&gt;http://www.microsoft.com/events/series/detail/webcastdetails.aspx?seriesid=122&amp;amp;webcastid=5241&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/mikehall/archive/2009/07/07/imagine-cup-day-4-projects-and-walkabout.aspx"&gt;Imagine Cup – Day 4. Projects and Walkabout&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/mikehall/archive/2009/07/06/imagine-cup-windows-embedded-final-six-teams.aspx"&gt;Imagine Cup – Windows Embedded – Final six teams&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/mikehall/archive/2009/07/05/imagine-cup-2009-embedded-competition-day-two.aspx"&gt;Imagine Cup 2009 – Embedded Competition – Day Two&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/mikehall/archive/2009/07/05/imagine-cup-2009-egypt-embedded-competition-day-one.aspx"&gt;Imagine Cup 2009, Egypt – Embedded Competition Day One&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1698754" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_SQL+Server+CE_2900_/default.aspx">Desenvolvimento (SQL Server CE)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>SQL Compact: Utilizar o IN (…) com um comando preparado</title><link>http://msmvps.com/blogs/albertosilva/archive/2009/06/08/sql-compact-utilizar-o-in-com-um-comando-preparado.aspx</link><pubDate>Mon, 08 Jun 2009 21:11:10 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1694587</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1694587</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1694587</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2009/06/08/sql-compact-utilizar-o-in-com-um-comando-preparado.aspx#comments</comments><description>&lt;p&gt;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 &lt;em&gt;(no SQL Compact, o comando é efectivamente preparado na 1ª execução e não na invocação do método &lt;strong&gt;.Prepare&lt;/strong&gt;)&lt;/em&gt;. 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.&lt;/p&gt;  &lt;p&gt;Os parâmetros podem ser utilizados da forma mais convencional, como em…&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Consolas"&gt;UPDATE stocks SET qtd=@novaQtd WHERE artigo=@artigo&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;…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?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Consolas"&gt;UPDATE stocks SET qtd=0 WHERE artigo IN (@artigo1, @artigo2, …, @artigo&lt;em&gt;n&lt;/em&gt;)&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;Para o efeito podíamos preparar o seguinte comando…&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Consolas"&gt;UPDATE clientes SET activo = 1 WHERE Patindex(‘[‘ + codigopostal + ‘]’, &lt;strong&gt;@codPostal&lt;/strong&gt;) &amp;gt; 0&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;onde &lt;em&gt;codigopostal&lt;/em&gt; é o campo da tabela de &lt;em&gt;clientes&lt;/em&gt; com os códigos a procurar, e &lt;strong&gt;&lt;em&gt;@codPostal&lt;/em&gt;&lt;/strong&gt; um parâmetro a ser definido do tipo &lt;strong&gt;&lt;em&gt;nvarchar&lt;/em&gt;&lt;/strong&gt;. 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.&lt;/p&gt;  &lt;p&gt;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.:&lt;/p&gt;  &lt;p&gt;[3850-000]{3850-010][3000-000]&lt;/p&gt;  &lt;p&gt;Os parentesis rectos servem para ‘isolar’ cada um dos valores a ser procurados (ex., ao procurar &lt;strong&gt;&lt;em&gt;mar&lt;/em&gt;&lt;/strong&gt;, não fazer match com &lt;strong&gt;&lt;em&gt;Maria&lt;/em&gt;&lt;/strong&gt;, ou &lt;strong&gt;&lt;em&gt;Tomar&lt;/em&gt;&lt;/strong&gt;), assumindo que esses caracteres não são esperados dentro dos valores a serem pesquisados!&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1694587" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_SQL+Server+CE_2900_/default.aspx">Desenvolvimento (SQL Server CE)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Windows Mobile 6.5 – Emulador já disponível!!!</title><link>http://msmvps.com/blogs/albertosilva/archive/2009/06/04/windows-mobile-6-5-emulador-j-225-dispon-237-vel.aspx</link><pubDate>Thu, 04 Jun 2009 14:44:21 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1693876</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1693876</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1693876</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2009/06/04/windows-mobile-6-5-emulador-j-225-dispon-237-vel.aspx#comments</comments><description>&lt;p&gt;Acabam de ser disponibilizados os emuladores de Windows Mobile 6.5 Standard e Professional em Inglês e outros idiomas, entre os quais não está compreendido o Português. Estes emuladores ajudam a perceber enquanto utilizador as novidades expostas pela nova versão do sistema operativo, como o novo ecrã de stand-by e lançador de aplicações, novo Internet Explorer Mobile, Windows Marketplace e outros, e para os programadores, &lt;a href="http://blogs.msdn.com/windowsmobile/archive/2009/06/04/getting-started-with-widgets-on-windows-mobile-6-5.aspx" target="_blank"&gt;testarem os seus widgets&lt;/a&gt;, enquanto não chegam às prateleiras os equipamentos com este sistema operativo.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva.metablogapi/7457.image_5F00_68C93D31.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva.metablogapi/5710.image_5F00_thumb_5F00_4ABB0970.png" width="360" height="633" /&gt;&lt;/a&gt; &lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva.metablogapi/1172.image_5F00_74022BA1.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva.metablogapi/6787.image_5F00_thumb_5F00_4F40EE5D.png" width="360" height="633" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;O emulador de Windows Mobile 6.5 Proefessional prevê as resoluções QVGA (a mais habitual nos PDA touch-screen), VGA (ex. HTC Diamond), WQVGA (Samsung Omnia), WVGA (HTC Touch HD e Diamond II) e equipamentos com ecrã quadrado, enquanto a versão Standard prevê a variante clássica e a mais recente QVGA (Samsung i600, Motorola Q9, …).&lt;/p&gt;  &lt;p&gt;Não há nenhum SDK específico para o Visual Studio associado a estes emuladores dado que não há novas funcionalidades expostas aos programadores para .NET CF, cujos controlos passam a ter suporte a gestos e apresentação algo mais cuidada, como as list view, sendo no entanto disponibilizados alguns exemplos de como controlar programaticamente o suporte a gestos nas nossas aplicações.&lt;/p&gt;  &lt;p&gt;O download pode ser feito a partir da sequinte página:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=20686a1d-97a8-4f80-bc6a-ae010e085a6e" href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=20686a1d-97a8-4f80-bc6a-ae010e085a6e"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=20686a1d-97a8-4f80-bc6a-ae010e085a6e&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2 notas para terminar o post:&lt;/p&gt;  &lt;p&gt;- algumas pessoas têm vindo a instalar e promover a instalação do Windows Mobile 6.5 em equipamentos actuais. Para além do aspecto legal da coisa, queria chamar a atenção que muitas roms foram disponibilizadas ou assentam em bits disponibilizados ainda antes desta nova versão do Windows Mobile 6.5 ter sido dada como finalizada pela Microsoft, pelo que a sua qualidade não será a de um produto final&lt;/p&gt;  &lt;p&gt;- levantou alguma celeuma o facto da última CTP do Visual Studio 2010 não trazer suporte para projectos para Windows Mobile. A Microsoft já veio confirmar que tal facto não significa que de nenhum modo o suporte a desenvolvimento para Windows Mobile esteja comprometido, muito pelo contrário, simplesmente que até esse suporte, que se espera que seja melhorado, existir no Visual Studio 2010, teremos de continuar a usar o VS2008&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1693876" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>.NET CF e gestão de memória virtual – Será esta uma descoberta revolucionária?</title><link>http://msmvps.com/blogs/albertosilva/archive/2009/04/10/net-cf-e-gest-227-o-de-mem-243-ria-virtual-ser-225-esta-uma-descoberta-revolucion-225-ria.aspx</link><pubDate>Fri, 10 Apr 2009 18:28:54 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1686707</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1686707</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1686707</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2009/04/10/net-cf-e-gest-227-o-de-mem-243-ria-virtual-ser-225-esta-uma-descoberta-revolucion-225-ria.aspx#comments</comments><description>&lt;p&gt;Um título destes seria digno de abertura de um qualquer telejornal nacional!&lt;/p&gt;  &lt;p&gt;Recebi hoje pelo Newsgator/FeedDemon um artigo que a confirmar-se pode revolucionar tudo quanto tem sido escrito sobre as limitações de memória na execução de aplicações .NET Compact Framework. Eu assumo, não sou um entendido em arquitectura de computadores, mas em traços gerais, o panorama é mais ou menos este:&amp;#160; o Windows CE desde a versão 1.0 até à sua versão 5.0 permitem até 32 processos simultâneos, alocando até 32mb de memória a cada um, o que significa que cada aplicação vive dentro de um cubículo de até 32mb, independentemente da quantidade de memória que o equipamento tenha. Na prática, esses 32mb acabam por nunca estarem disponíveis… muitos equipamentos não dispoem sequer de 32mb livres de RAM e quando dispoem, a forma como são carregadas as DLL em código nativo leva a que o seu espaço seja reservado transversalmente entre todos os processos já criados, e mesmo os criados &lt;em&gt;a posteriori&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codeproject.com/KB/mobile/VirtualMemory.aspx"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;No caso das aplicações .NET CF, a limitação da memória virtual mantém-se, embora existam algumas diferenças para as aplicações em código nativo, nomeadamente as DLL não ocuparem ‘transversalmente’ o tal espaço em todos os processos referido acima. Posso dizer-vos que já dispendi mais do que um dia a ler blogs, artigos no CodeProject e documentação na MSDN sobre este assunto da gestão em memória em Windows CE e pela .NET CF e sobre o Garbage Collector&lt;em&gt; [1].&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Muitas vezes só nos lembramos destas questões da memória quando nos rebenta uma OutOfMemory (OOM) exception – oh p’ra mim a assobiar para o ar – e se algumas situações são facilmente contornáveis, outras podem levar a uma restruturação de trabalho já feito. Uma situação em particular que pode conduzir a estas OOM e potencialmente cada vez mais fre quente, é a realização de operações gráficas com manipulação em memória de bitmaps do tamanho do ecrã em equipamentos de alta resolução, como os VGA e o WVGA, onde um bitmap que num equipamento normal conta com as dimensões de 240x320 vê o seu tamanho multiplicado por 4 no caso do VGA e por 5 no caso do WVGA. A conta é fácil de fazer, se a cada pixel corresponderem dois bytes, de 153kb passamos a 614kb e 768kb respectivamente &lt;em&gt;[2].&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Até chegar um sistema operativo Windows Mobile baseado em Windows CE 6.0 ou posterior, o que se espera que aconteça com a próxima grande versão do Windows Mobile, &lt;a href="http://msdn.microsoft.com/en-us/library/aa914933.aspx" target="_blank"&gt;onde cada processo poderá contar com até 2GB para um máximo de 32000 processos a correr em simultâneo&lt;/a&gt;(!), pouco parecia haver a fazer para além de optimizar as aplicações actuais e usar as ferramentas das Powertoys (.NET CF CLR Profiler e .NET CF Remote Performance Monitor) para estudar o impacto das modificações efectuadas.&lt;/p&gt;  &lt;p&gt;O tal artigo que mencionei no início do tópico é este…&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx" href="http://blogs.msdn.com/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx"&gt;http://blogs.msdn.com/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;…e segundo o Rob Tifany, no caso das aplicações .NET CF, se criarmos um exe ‘vazio’ e colocarmos todo o resto do código numa DLL referenciada conseguimos ultrapassar a tal limitação dos 32mb por processo para a nossa aplicação! O artigo é um pouco extenso e técnico, mas é seguramente um &lt;em&gt;must-read &lt;/em&gt;por parte de quem desenvolve para .NET CF! A única limitação que a técnica sugerida não contornará será mesmo a limitação crónica de alguns equipamentos com 64mb e menos de RAM, que mesmo após um soft-reset apresentam uma quantidade de RAM disponível abaixo dos 32MB.&lt;/p&gt;  &lt;p&gt;Oportunamente testarei esta abordagem numa aplicação onde sei como provocar estes OOM :D&lt;/p&gt;  &lt;p&gt;---------------------&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;[1]&lt;/strong&gt; Para os interessados, a partir da seguinte série de artigos do Raffael poderão seguir outros links muito interessantes sobre esta temática:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/raffael/archive/tags/Memory/default.aspx" href="http://blogs.msdn.com/raffael/archive/tags/Memory/default.aspx"&gt;&lt;font size="2"&gt;http://blogs.msdn.com/raffael/archive/tags/Memory/default.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;[2 - Correcção]&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;O &lt;a href="http://nativemobile.blogspot.com" target="_blank"&gt;João Paulo Figueira&lt;/a&gt; alertou-me que cada pixel no ecrã representam dois bytes, e no caso de imagens do tipo PNG e alpha blending, cada pixel chega aos 4 bytes por pixel, ou seja, num equipamento como o HTC Touch HD, até 1,5mb!!!&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;[3 – Actualização em 2009/04/11 – 8:50]&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;a href="http://www.codeproject.com/KB/mobile/VirtualMemory.aspx"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;margin-left:0px;border-top:0px;margin-right:0px;border-right:0px;" title="VirtualMemory[1]" border="0" alt="VirtualMemory[1]" align="left" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva/VirtualMemory1_5F00_6D6B0687.gif" width="181" height="240" /&gt;&lt;/a&gt;&amp;#160;&lt;/font&gt;&lt;font size="2"&gt;A pedido de algumas famílias, a ferramenta que o Rob usa para visualizar a memória virtual ocupada por processo pode ser obtida a partir do seguinte artigo no CodeProject:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a title="http://www.codeproject.com/KB/mobile/VirtualMemory.aspx" href="http://www.codeproject.com/KB/mobile/VirtualMemory.aspx"&gt;&lt;font size="2"&gt;http://www.codeproject.com/KB/mobile/VirtualMemory.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; É mais um artigo de leitura recomendada!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1686707" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>SQL Server Compact 3.5: Será que já está *mesmo* a usar a versão SP1?</title><link>http://msmvps.com/blogs/albertosilva/archive/2009/04/10/sql-server-compact-3-5-ser-225-que-j-225-est-225-mesmo-a-usar-a-vers-227-o-sp1.aspx</link><pubDate>Fri, 10 Apr 2009 14:37:26 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1686643</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1686643</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1686643</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2009/04/10/sql-server-compact-3-5-ser-225-que-j-225-est-225-mesmo-a-usar-a-vers-227-o-sp1.aspx#comments</comments><description>&lt;p&gt;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. …&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;UPDATE Clientes SET saldo = ? WHERE nrcliente = ?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;…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:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;UPDATE Clientes SET saldo = @novoSaldo WHERE nrcliente = @cliente&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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…&lt;/p&gt;  &lt;p&gt;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 (&lt;a href="http://blogs.technet.com/comunidade_portuguesa_de_profissionais_de_ti/archive/2009/04/08/o-sp1-do-sql-server-2008-j-dispon-vel.aspx" target="_blank"&gt;o SP1 do SQL Server 2008 só saíu esta semana&lt;/a&gt; e ainda não o instalei) e com essas ferramentas, veio também o SQL Compact 3.5 SP1. &lt;strong&gt;O que eu me tinha esquecido&lt;/strong&gt; é 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 &lt;a href="http://blogs.msdn.com/sqlservercompact/archive/2008/02/08/sql-server-compact-release-versions.aspx" target="_blank"&gt;esta tabela&lt;/a&gt;, corresponde à versão RTM, portanto sem o SP1:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva/image_5F00_38324DBB.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva/image_5F00_thumb_5F00_3EB5A77E.png" width="423" height="517" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Rapidamente descarreguei o SP1 para Windows Mobile/Windows CE &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=FCE9ABBF-F807-45D6-A457-AB5615001C8F&amp;amp;displaylang=en" target="_blank"&gt;desta página&lt;/a&gt; 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 &lt;strong&gt;[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server Compact Edition\v3.5]&lt;/strong&gt; com o seguinte ecrã:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva/image_5F00_1BA5360E.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva/image_5F00_thumb_5F00_37E25261.png" width="897" height="357" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Outro stress ultrapassado… &lt;strong&gt;NEXT!!!&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1686643" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_SQL+Server+CE_2900_/default.aspx">Desenvolvimento (SQL Server CE)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Problemas após conversão de projecto .NET CF 2.0 para .NET CF 3.5: A aplicação deixou de funcionar e pendura o debugger do VS2008</title><link>http://msmvps.com/blogs/albertosilva/archive/2009/04/08/problemas-ap-243-s-convers-227-o-de-projecto-net-cf-2-0-para-net-cf-3-5-a-aplica-231-227-o-deixou-de-funcionar-e-pendura-o-debugger-do-vs2008.aspx</link><pubDate>Wed, 08 Apr 2009 22:59:41 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1686059</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1686059</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1686059</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2009/04/08/problemas-ap-243-s-convers-227-o-de-projecto-net-cf-2-0-para-net-cf-3-5-a-aplica-231-227-o-deixou-de-funcionar-e-pendura-o-debugger-do-vs2008.aspx#comments</comments><description>&lt;p&gt;Ao converter um projecto em .NET CF 2.0, que tinha uma série de dependências de outros projectos igualmente em CF 2.0 que foram sendo igualmente convertifos, consegui executar a aplicação nos emuladores umas quantas vezes, à medida que ia actualizando os projectos com as últimas versões de alguns controlos de terceiros. Subitamente, depois de um conjunto de alterações mais extensas, deixo de conseguir correr a aplicação a partir do Visual Studio 2008 num dos emuladores. Testo noutro, a mesma coisa. Tento correr em modo release, nada feito. Executar a aplicação a partir do PDA? Uma ampulheta que só desaparecia com um soft reset ao equipamento. Depois de ter reiniciado o VS umas quantas vezes, tal como os emuladores, pensei, o PC tá a precisar de um reboot, mas um download demorado impedia-me de o fazer, pelo que fui testanto diferentes coisas sempre sem sucesso.&lt;/p&gt;  &lt;p&gt;Após reiniciar o PC o problema mantem-se integralmente, e constato que se interromper a execução da aplicação – que ainda nem tinha arrancado – obtinha algo do género:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;The debugger was unable to terminate one or more processes: The debugger may be unstable.&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;A coisa estava a ficar preta, todos os meus outros projectos em .NET CF 2.0 e 3.5 continuavam a funcionar como sempre à excepção deste (as leis de Murphy encarregam-se de deixar à V/ imaginação a importância deste projecto…).&lt;/p&gt;  &lt;p&gt;Dado que pelo método da tentativa/erro não ia lá, e as pesquisas na internet se revelaram infrutíferas, passei para uma análise mais ‘científica’! No grupo dos Power Toys da .NET CF 3.5 no menu Iniciar, tem lá o .NET CF Logging Configuration…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva/image_5F00_6A357A78.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva/image_5F00_thumb_5F00_6020D94D.png" width="337" height="455" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;…que permite escolher os logs que queremos activar:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva/image_5F00_3C3801F3.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva/image_5F00_thumb_5F00_0EA6BC63.png" width="433" height="486" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;No caso, escolhi apenas o Loader porque era aquele fazia mais sentido, afinal a aplicação não chegava a arrancar e cliquei em Apply. De seguida, no PDA arranquei a aplicação e esperei uns minutos, e abri o log que foi gerado na pasta da aplicação (&lt;em&gt;netcf_m2uMobileSalesV3_Loader_2463895866.log&lt;/em&gt;), e posicionei-me no final onde encontrei uma referência a uma DLL que… não era de todo suposto lá estar, dado destinar-se a uma versão anterior da .NET CF. Voltei a verificar e corrigir todas as dependências e suas dependências, de modo a garantir que todas elas estavam a destinar-se à .NET CF 3.5 e que tinham as referências correctas aos controlos de terceiros. Nova tentativa e… a aplicação já corre de novo nos emuladores e PDAs!!!&lt;/p&gt;  &lt;p&gt;Mais um stress resolvido fora-de-horas… &lt;strong&gt;NEXT!!!&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1686059" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>2º Seminário de Tecnologias Móveis do PocketPT.net – sessão disponível para descarregamento</title><link>http://msmvps.com/blogs/albertosilva/archive/2009/03/29/2-186-semin-225-rio-de-tecnologias-m-243-veis-do-pocketpt-net-sess-227-o-dispon-237-vel-para-descarregamento.aspx</link><pubDate>Sun, 29 Mar 2009 19:50:27 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1682814</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1682814</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1682814</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2009/03/29/2-186-semin-225-rio-de-tecnologias-m-243-veis-do-pocketpt-net-sess-227-o-dispon-237-vel-para-descarregamento.aspx#comments</comments><description>&lt;p&gt;Fui convidado para apresentar uma sessão no &lt;a href="http://www.mtechseminar.com/09/index.htm" target="_blank"&gt;2º Seminário de Tecnologias Móveis&lt;/a&gt;, evento destinado a TI Pros &amp;amp; developers que teve lugar nos passados dias 11 e 12 de Março. A minha disponibilidade limitada desde o DevDays não me permitiram anunciar aqui o evento nem a minha participação no 1º dia. O 2º dia tinha como audiência privilegiada IT Pros e empresas, onde a empresa da qual sou sócio, a &lt;a href="http://www.moving2u.pt" target="_blank"&gt;moving2U&lt;/a&gt;, apresentou um business case de um cliente da nossa solução para automação de vendas, a &lt;a href="http://www.coimpack.pt/" target="_blank"&gt;Coimpack&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;A sessão que apresentei foi baseada na MOB202 do DevDays referida no ponto anterior, com a qual compartilha inteiramente o projecto de suporte, sendo válidas as mesmas considerações tecidas em relação ao projecto.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Explorar o SDK do Windows Mobile 6 com um caso prático&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Apresentação: &lt;a href="http://www.mundomovel.com/diversos/PocketPtNet09/TIPRO09_AlbertoSilva_Sessao.zip" target="_blank"&gt;TIPRO09_AlbertoSilva_pub.ppsx (zip)&lt;/a&gt; (~7,9mb, formato PowerPoint 2007) &lt;/li&gt;    &lt;li&gt;Código-fonte do projecto de suporte à sessão: &lt;a href="http://www.mundomovel.com/diversos/PocketPtNet09/TIPRO09_AlbertoSilva_Pub.zip" target="_blank"&gt;TIPRO09_AlbertoSilva_Pub.zip&lt;/a&gt; (~100kb, C#, Visual Studio 2008 + Windows Mobile 6 SDK) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;[Actualização em 29/03/2009, 23:45]&lt;/p&gt;  &lt;p&gt;Links corrigidos&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1682814" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>DevDays09 – Sessões MOB201/MOB202 disponíveis para descarregamento</title><link>http://msmvps.com/blogs/albertosilva/archive/2009/03/29/devdays09-sess-245-es-mob201-mob202-dispon-237-veis-para-descarregamento.aspx</link><pubDate>Sun, 29 Mar 2009 19:32:27 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1682813</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1682813</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1682813</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2009/03/29/devdays09-sess-245-es-mob201-mob202-dispon-237-veis-para-descarregamento.aspx#comments</comments><description>&lt;p&gt;Desde o DevDays que o tempo não tem permitido preparar os conteúdos do DevDays para disponibilização online. Na semana a seguir ao evento, eu e outros MVP portugueses seguimos até Seattle para o MVP Global Summit, e com o trabalho que já vinha a acumular desde a preparação das minhas sessões para o DevDays, não foi fácil voltar a reconciliar-me com o blog!&lt;/p&gt;  &lt;p&gt;A partir dos seguintes links podem descarregar os slides e material das minhas sessões no DevDays:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;MOB201 - Desenvolvimento para Windows Mobile – Por onde começar? &lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Apresentação: &lt;strong&gt;&lt;a href="http://www.mundomovel.com/diversos/DevDays09/DevDays09_MOB201_pub.zip" target="_blank"&gt;DevDays09_MOB101_pub.ppsx (zip)&lt;/a&gt;&lt;/strong&gt; (~2,3mb, formato PowerPoint 2007) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;MOB202 - Explorar o SDK do Windows Mobile 6 com um caso prático&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Apresentação: &lt;strong&gt;&lt;a href="http://www.mundomovel.com/diversos/DevDays09/DevDays09_MOB202_pub.zip" target="_blank"&gt;DevDays09_MOB202_pub.ppsx (zip)&lt;/a&gt;&lt;/strong&gt; (~7,8mb, formato PowerPoint 2007) &lt;/li&gt;    &lt;li&gt;Código-fonte do projecto de suporte à sessão: &lt;strong&gt;&lt;a href="http://www.mundomovel.com/diversos/DevDays09/MOB202_Pub.zip" target="_blank"&gt;MOB202_Pub.zip&lt;/a&gt;&lt;/strong&gt; (~100kb, C#, Visual Studio 2008 + Windows Mobile 6 SDK) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Em relação ao projecto da sessão MOB202 conto escrever brevemente um post que explique os passos necessários à sua reprodução no emulador. Fica desde já a indicação que deverão ter o IIS com suporte a WCF instalado no V/ PC de desenvolvimento, bem como que deverão abrir a solução no Visual Studio 2008 aberto com direitos de administrador.&lt;/p&gt;  &lt;p&gt;[Actualização em 29/03/2009, 23:50]&lt;/p&gt;  &lt;p&gt;Links corrigidos&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1682813" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/DevDays09/default.aspx">DevDays09</category></item><item><title>DevDays: Sessão “MOB101 – Desenvolvimento para Windows Mobile – Por onde começar?”</title><link>http://msmvps.com/blogs/albertosilva/archive/2009/02/01/devdays-sess-227-o-mob101-desenvolvimento-para-windows-mobile-por-onde-come-231-ar.aspx</link><pubDate>Sun, 01 Feb 2009 18:34:28 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1667878</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1667878</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1667878</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2009/02/01/devdays-sess-227-o-mob101-desenvolvimento-para-windows-mobile-por-onde-come-231-ar.aspx#comments</comments><description>&lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;Os temas que penso aflorar são…&lt;/p&gt;  &lt;blockquote&gt;   &lt;ul&gt;     &lt;li&gt;Requisitos e ferramentas necessárias e recomendadas para o desenvolvimento para Windows Mobile&lt;/li&gt;      &lt;li&gt;Criação de projectos para Windows Mobile e consequências das escolhas feitas na sua criação&lt;/li&gt;      &lt;li&gt;Utilização do emulador&lt;/li&gt;      &lt;li&gt;Lidar com as limitações dos equipamentos&lt;/li&gt;      &lt;li&gt;Opções para persistência de dados e sincronização com servidores&lt;/li&gt;      &lt;li&gt;Comunicações&lt;/li&gt;      &lt;li&gt;Packaging de aplicações&lt;/li&gt;      &lt;li&gt;Modelos de referência para desenvolvimento de aplicações para WM&lt;/li&gt;      &lt;li&gt;Recursos &lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;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!&lt;/p&gt;  &lt;p&gt;Caso queira comentar ou deixar alguma sugestão para esta sessão, esteja à vontade para adicionar o seu comentário a este post.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1667878" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_SQL+Server+CE_2900_/default.aspx">Desenvolvimento (SQL Server CE)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/DevDays09/default.aspx">DevDays09</category></item><item><title>DevDays: Sessão “MOB202 - Explorar o SDK do Windows Mobile 6”</title><link>http://msmvps.com/blogs/albertosilva/archive/2009/02/01/devdays-sess-227-o-mob202-explorar-o-sdk-do-windows-mobile-6.aspx</link><pubDate>Sun, 01 Feb 2009 18:08:01 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1667873</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1667873</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1667873</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2009/02/01/devdays-sess-227-o-mob202-explorar-o-sdk-do-windows-mobile-6.aspx#comments</comments><description>&lt;p&gt;Esta sessão é baseada conceptualmente numa sessão que apresentei o ano passado no TechDays, que partindo de um caso verosímil ilustra como podemos tirar o máximo partido dos equipamentos Windows Mobile e das funcionalidades que expoem.&lt;/p&gt;  &lt;p&gt;O ano passado o caso prática era o seguimento de reclamações de munícipes, este ano vestiremos a pele de um perito de uma companhia seguradora.&lt;/p&gt;  &lt;p&gt;Partindo da seguinte descrição para a aplicação…&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“José, perito de uma companhia de seguros, recebe um SMS com a indicação que tem uma perícia a fazer. Ao recebê-la, José pode aceitá-la ou recusá-la, enquanto a mesma é automaticamente adicionada ao Outlook do seu equipamento e adicionada à lista de tarefas a executar na aplicação em execução.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;A partir da aplicação, José pode pedir mais detalhes sobre a perícia, obtendo a partir do servidor a oficina onde se deve dirigir, os respectivos contactos e localização. Caso nesse momento não tenha cobertura de rede GPRS/3G, o pedido fica a aguardar pela sua disponibilidade.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Obtidos os detalhes da peritagem, José pode...&lt;/em&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;em&gt;Ligar para a oficna directamente da aplicação&lt;/em&gt;&lt;/li&gt;      &lt;li&gt;&lt;em&gt;Visualizar o percurso entre o local onde se encontra e o local da oficina&lt;/em&gt;&lt;/li&gt;      &lt;li&gt;&lt;em&gt;Iniciar a peritagem&lt;/em&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;em&gt;No decorrer da pré-peritagem, José pode...&lt;/em&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;em&gt;Capturar fotos e video da viatura sinistrada, com sobreposição da matrícula da viatura sobre a imagem&lt;/em&gt;&lt;/li&gt;      &lt;li&gt;&lt;em&gt;Relatar os danos identificados, gravando os seus próprios comentários&lt;/em&gt;&lt;/li&gt;      &lt;li&gt;&lt;em&gt;Ligar a um técnico para pedir opiniões&lt;/em&gt;&lt;/li&gt;      &lt;li&gt;&lt;em&gt;Dar a peritagem como terminada&lt;/em&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;em&gt;Ao ser terminada a peritagem, é enviado um email para um endereço pré-definido com os ficheiros multimedia em anexo”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;…demonstaremos como utilizar:&lt;/p&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;Intercepção de SMS&lt;/li&gt;      &lt;li&gt;Envio de SMS&lt;/li&gt;      &lt;li&gt;Criação de compromisso no Outlook&lt;/li&gt;      &lt;li&gt;Verificação de disponibilidade de rede (Device State and Notification broker)&lt;/li&gt;      &lt;li&gt;Consumo de serviços WCF&lt;/li&gt;      &lt;li&gt;Estabelecimento de chamadas&lt;/li&gt;      &lt;li&gt;Localização GPS&lt;/li&gt;      &lt;li&gt;Visualização de mapas&lt;/li&gt;      &lt;li&gt;Captura de imagens&lt;/li&gt;      &lt;li&gt;Captura de video&lt;/li&gt;      &lt;li&gt;Captura de som&lt;/li&gt;      &lt;li&gt;Sobreposição de texto sobre imagem&lt;/li&gt;      &lt;li&gt;Consulta de contactos com filtro&lt;/li&gt;      &lt;li&gt;Enviar mail com anexos&lt;/li&gt;      &lt;li&gt;Device Emulator 3.0&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;É possível que a ‘história’ sofra modificações, seja ajustando-a ao tempo previsto para a sessão – uma hora – seja em função de comentários que queiram desde já deixar à mesma.&lt;/p&gt;  &lt;p&gt;Ao contrário do ano passado – minha imperdoável culpa – a aplicação de demonstração será disponibilizada de imediato.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1667873" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/DevDays09/default.aspx">DevDays09</category></item><item><title>DevDays: Sessões dedicadas ao desenvolvimento para Windows Mobile</title><link>http://msmvps.com/blogs/albertosilva/archive/2009/02/01/devdays-sess-245-es-dedicadas-ao-desenvolvimento-para-windows-mobile.aspx</link><pubDate>Sun, 01 Feb 2009 16:56:33 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1667853</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1667853</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1667853</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2009/02/01/devdays-sess-245-es-dedicadas-ao-desenvolvimento-para-windows-mobile.aspx#comments</comments><description>&lt;p&gt;No próximo DevDays, entre outras temáticas, poderemos contar com um elenco interessante e diversificado de sessões dedicadas ao desenvolvimento de aplicações para Windows Mobile:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.devdays09.com/DevdaysDetalhe-MX/DesenvolvimentodeJogosparaWindowsMobile?ChID=5BB241AA-D836-4811-8676-725921F849CA&amp;amp;CID=AB11D867-AB7D-4D19-A064-E5DF76EC3777" target="_blank"&gt;ACA&lt;/a&gt; – Desenvolvimento de Jogos para Windows Mobile (&lt;a href="http://www.devdays09.com/DevdaysDetalhe-MX/NoelLopes?ChID=9F1A5C13-9FDB-437A-A0E1-CDAA5C1A76C8&amp;amp;CID=92F23922-C4CC-43A8-B8E2-3F4E9AC6BCC7" target="_blank"&gt;Noel Lopes&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.devdays09.com/DevdaysDetalhe-MX/DesenvolvimentoparaWindowsMobile%E2%80%93Porondecomecar?ChID=5BB241AA-D836-4811-8676-725921F849CA&amp;amp;CID=BB2D2098-CEC2-4C6B-B827-0DA804BA1141" target="_blank"&gt;MOB101&lt;/a&gt; – Desenvolvimento para Windows Mobile – Por onde começar? (&lt;a href="http://www.devdays09.com/DevdaysDetalhe-MX/AlbertoSilva?ChID=9F1A5C13-9FDB-437A-A0E1-CDAA5C1A76C8&amp;amp;CID=7E193845-5155-406B-BD67-0B8F802A1260" target="_blank"&gt;Alberto Silva&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.devdays09.com/DevdaysDetalhe-MX/ExploraroSDKdoWindowsMobile6?ChID=5BB241AA-D836-4811-8676-725921F849CA&amp;amp;CID=0F2E3223-4C15-430A-BCC7-39EB6E7BBA66" target="_blank"&gt;MOB202&lt;/a&gt; – Explorar o SDK do Windows Mobile 6 (&lt;a href="http://www.devdays09.com/DevdaysDetalhe-MX/AlbertoSilva?ChID=9F1A5C13-9FDB-437A-A0E1-CDAA5C1A76C8&amp;amp;CID=7E193845-5155-406B-BD67-0B8F802A1260" target="_blank"&gt;Alberto Silva&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.devdays09.com/DevdaysDetalhe-MX/NovidadesnoWindowsMobileLineofBusinessSolutionAccelerator2008?ChID=5BB241AA-D836-4811-8676-725921F849CA&amp;amp;CID=91657F64-5742-469E-B2AB-023A23B822AA" target="_blank"&gt;MOB204&lt;/a&gt; – Novidades do Windows Mobile Line of Business (LoB) Solution Accelerator 2008 (&lt;a href="http://www.devdays09.com/DevdaysDetalhe-MX/PedroLamas?ChID=9F1A5C13-9FDB-437A-A0E1-CDAA5C1A76C8&amp;amp;CID=ED27C064-CC11-43F0-A33E-484F673F7607" target="_blank"&gt;Pedro Lamas&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.devdays09.com/DevdaysDetalhe-MX/MicrosoftSQLServer2005CompactEditionUltimatePerformanceTuning?ChID=5BB241AA-D836-4811-8676-725921F849CA&amp;amp;CID=1566DCE5-CC9B-4316-BAF9-1890CB327524" target="_blank"&gt;MOB303&lt;/a&gt; – Microsoft SQL Server 2005 Compact Edition Ultimate Performance Tunning (&lt;a href="http://www.devdays09.com/DevdaysDetalhe-MX/JoaoPauloFigueira?ChID=9F1A5C13-9FDB-437A-A0E1-CDAA5C1A76C8&amp;amp;CID=75BDEF0B-E1B1-45A1-A0F1-7337B09A20EC" target="_blank"&gt;João Paulo Figueira&lt;/a&gt;)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Nos próximos posts no blog detalharei as minhas sessões e o que poderão esperar delas – não, ecrãs pretos não estão no programa ;) – e poderão deixar comentários às mesmas. Ao contrário do ano passado, os conteúdos das sessões serão disponibilizados de imediato.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1667853" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_SQL+Server+CE_2900_/default.aspx">Desenvolvimento (SQL Server CE)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/DevDays09/default.aspx">DevDays09</category></item><item><title>DevDays já em Fevereiro, o evento que os developers não podem perder!!!</title><link>http://msmvps.com/blogs/albertosilva/archive/2009/01/18/devdays-j-225-em-fevereiro-o-evento-que-os-developers-n-227-o-podem-perder.aspx</link><pubDate>Sun, 18 Jan 2009 21:52:37 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1662992</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1662992</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1662992</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2009/01/18/devdays-j-225-em-fevereiro-o-evento-que-os-developers-n-227-o-podem-perder.aspx#comments</comments><description>&lt;p&gt;Nos próximos dias 18 e 19 de Fevereiro terá lugar o DevDays no Instituto Superior Técnico, no Campus do TagusPark, aquele que será o maior evento técnico do ano promovido pela Microsoft.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva/devdaystopflash_5F00_1CC1711E.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="devdaystopflash" border="0" alt="devdaystopflash" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva/devdaystopflash_5F00_thumb_5F00_691904BF.jpg" width="579" height="145" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;São 2 dias de conteúdos técnicos avançados, com mais de 50 sessões e 40 laboratórios, onde irá conhecer as mais recentes novidades da tecnologia Microsoft e contactar com reconhecidos especialistas das nossas Comunidades Técnicas. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;2 dias de conteúdos técnicos avançados &lt;/li&gt;    &lt;li&gt;Mais de 50 sessões e cerca de 40 laboratórios &lt;/li&gt;    &lt;li&gt;Um evento para Programadores, Arquitectos e Designers &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Contacte com Especialistas &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Partilhe experiências, troque ideias, e aprenda com quem tem desafios semelhantes aos seus. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Inspire-se,&amp;#160; divirta-se e mergulhe na Inovação &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Encontre as melhores ideias e faça parte deste momento! &lt;/p&gt;  &lt;p&gt;Aprenda sobre as mais recentes novidades tecnológicas como o Windows 7, Internet Explorer 8, Windows Azure e aprofunde os seus conhecimentos sobre desenvolvimento, web, design e experiência de utilização. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Venha ao DevDays! &lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Saiba como&amp;#160; o &lt;strong&gt;TeamSystem&lt;/strong&gt; pode melhorar o desempenho da sua Equipa, tornando-a mais produtiva e eficiente &lt;/li&gt;    &lt;li&gt;A nova experiência de interacção digital com a &lt;strong&gt;Microsoft Surface&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Novos modelos de negócio potenciados pelo &lt;strong&gt;Windows Azure&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Veja como o &lt;strong&gt;Windows 7 e o IE8&lt;/strong&gt; elimina barreiras entre software, services e dispositivos e trazem ritmo acrescido ao seu dia-a-dia e da sua empresa &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Biztalk 2009&lt;/strong&gt; com uma solução de RFID muito interessante &lt;/li&gt;    &lt;li&gt;Consiga um novo nível de soluções Web com o &lt;strong&gt;Silverlight&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;O potencial da informação geo-referenciada com o &lt;strong&gt;SQL Server 2008&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Principais Conteúdos Temáticos &lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Visual Studio 10 e .Net 4 &lt;/li&gt;    &lt;li&gt;Microsoft Surface &lt;/li&gt;    &lt;li&gt;Windows 7 e Internet Explorer 8 &lt;/li&gt;    &lt;li&gt;Windows Azure e Azure Services Platform &lt;/li&gt;    &lt;li&gt;Biztalk 2009 &lt;/li&gt;    &lt;li&gt;Silverlight e WPF &lt;/li&gt;    &lt;li&gt;SQL Server 2008 &lt;/li&gt;    &lt;li&gt;ASP.NET &lt;/li&gt;    &lt;li&gt;Windows Live Services &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;A mobilidade também não foi esquecida, e poderemos contar com sessões e laboratórios dedicados ao desenvolvimento para a &lt;strong&gt;&lt;em&gt;.NET Compact Framework 3.5 &lt;/em&gt;&lt;/strong&gt;e o &lt;strong&gt;&lt;em&gt;SQL Compact 3.5&lt;/em&gt;&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;Logo que a agenda esteja fechada no que diz respeito aos conteúdos relacionados com a mobilidade, divulgarei os detalhes aqui. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Participe! &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;O evento tem um custo de 100€ (IVA incluído) por participante, contando com inscrições limitadas &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Mais informações e registo &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Visite o site oficial do evento em &lt;a href="http://www.devdays09.com/"&gt;http://www.devdays09.com/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1662992" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_SQL+Server+CE_2900_/default.aspx">Desenvolvimento (SQL Server CE)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/DevDays09/default.aspx">DevDays09</category></item><item><title>Gestão de forms em aplicações .NET CF (3.5)</title><link>http://msmvps.com/blogs/albertosilva/archive/2008/12/15/gest-227-o-de-forms-em-aplica-231-245-es-net-cf-3-5.aspx</link><pubDate>Mon, 15 Dec 2008 16:28:54 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1656782</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1656782</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1656782</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2008/12/15/gest-227-o-de-forms-em-aplica-231-245-es-net-cf-3-5.aspx#comments</comments><description>&lt;p&gt;Foi atribuída à &lt;a target="_blank" href="http://www.moving2u.pt"&gt;moving2u&lt;/a&gt; a tarefa de &amp;#39;simples&amp;#39; conversão de uma solução em .NET CF 1.0 para .NET CF 3.5, entre outras alterações, como suporte a diferentes resoluções e orientações de ecrã, passar a utilizar bases de daods SQL Compact localmente no PDA e suporte a impressão em impressoras portáteis A4 da HP. &lt;/p&gt; &lt;p&gt;Ao correr a nova aplicação nos novos equipamentos da HTC os utilizadores com frequência &amp;#39;perdiam-se&amp;#39;, pois ao invocar o &amp;#39;task manager&amp;#39; da HTC, surgiam várias &amp;#39;instâncias&amp;#39; activas da aplicação. Tal comportamento, completamente oposto ao que deve ser uma aplicação .NET CF bem comportada, derivava da forma como os forms eram geridos por quem desenvolveu a versão inicial.&lt;/p&gt; &lt;p&gt;Numa aplicação em que a navegação entre forms fosse &amp;#39;explícita&amp;#39;, ou seja, em que cada form antes de fechar-se abre sempre explicitamente outro form, assegurando-se que a cada momento há apenas um form activo, este problema não se colocaria, mas neste caso a &amp;#39;retro-navegação&amp;#39; era implícita dado que os forms eram sempre exibidos com o método .ShowDialog() e fechado com o .Close(), a &amp;#39;pilha&amp;#39; de forms activos era exibida no task manager.&lt;/p&gt; &lt;p&gt;Para contrariar esse comportamento, impõem-se algumas regras, a mais simples das quais indica que para uma instância de um form activo não constar na lista de programas em execução, deve colocar-se o respectivo título (propriedade .Text do form) a vazio. Para não ter de a cada chamada guardar o texto do título do form chamador, limpá-lo, exibir o novo form e ao fechá-lo repor o título no form chamador, criei o seguinte extenseion method:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:655px;padding-right:5px;height:439px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:monospace;font-size:12px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; FormExtensionMethods
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:monospace;font-size:12px;"&gt;    {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:monospace;font-size:12px;"&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; System.Windows.Forms.DialogResult ExibeDialogo(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; System.Windows.Forms.Form newForm, System.Windows.Forms.Form currentForm)
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:monospace;font-size:12px;"&gt;        {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:monospace;font-size:12px;"&gt;            &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; s = currentForm.Text;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:monospace;font-size:12px;"&gt;            currentForm.Text = &amp;quot;&lt;span style="color:#8b0000;"&gt;&lt;/span&gt;&amp;quot;;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:monospace;font-size:12px;"&gt;            System.Windows.Forms.DialogResult r = newForm.ShowDialog();
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:monospace;font-size:12px;"&gt;            currentForm.Text = s;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:monospace;font-size:12px;"&gt;            currentForm.Show();
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:monospace;font-size:12px;"&gt;            currentForm.BringToFront();
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:monospace;font-size:12px;"&gt;            &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; r;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:monospace;font-size:12px;"&gt;        }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:monospace;font-size:12px;"&gt;    }&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;Deste modo, bastou-me mudar as chamadas do tipo &lt;font face="Courier New"&gt;myForm.ShowDialog()&lt;/font&gt; por&lt;font face="Courier New"&gt; myForm.ExibeDialogo(this)&lt;/font&gt; para atingir o fim desejado :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1656782" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Como ir mais além em termos gráficos com a .NET CF 3.5?</title><link>http://msmvps.com/blogs/albertosilva/archive/2008/11/26/como-ir-mais-al-233-m-em-termos-gr-225-ficos-com-a-net-cf-3-5.aspx</link><pubDate>Wed, 26 Nov 2008 11:59:58 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1655118</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1655118</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1655118</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2008/11/26/como-ir-mais-al-233-m-em-termos-gr-225-ficos-com-a-net-cf-3-5.aspx#comments</comments><description>&lt;p&gt;A avaliação da apresentação gráfica nas aplicações é algo sempre subjectivo, mas é uma evidência que numa altura em que a nível das aplicações para desktop os programadores têm neste momento excelentes ferramentas e tecnologias para darem largas à criatividade dos designers, do lado do Windows Mobile as coisas ainda não são bem assim, continando em termos de código managed basicamente restritos ao que a .NET CF expõe.&lt;/p&gt; &lt;p&gt;No entanto, o &lt;a target="_blank" href="http://nativemobile.blogspot.com/"&gt;João Paulo Figueira&lt;/a&gt; acabou de me chamar a atenção para este artigo que demonstra como ir com a .NET CF 3.5 bastante mais além em termos de apresentação gráficado que aquilo que habitualmente fazemos:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Building Graphically Advanced Applications with the .NET Compact Framework 3.5&lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&lt;a title="http://expression.microsoft.com/en-us/dd279543.aspx" href="http://expression.microsoft.com/en-us/dd279543.aspx"&gt;http://expression.microsoft.com/en-us/dd279543.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;É claro que vai continuar a sobrar sempre espaço para a subjectividade, mas é inegável o nível do apuro gráfico conseguido com os exemplos do artigo:&lt;/p&gt; &lt;p&gt;&lt;img title="HTC sliding Panel" alt="" align="middle" src="http://i.expression.microsoft.com/dd279543.newsletter_HTC-slidingPanel(en-us,MSDN.10).png" /&gt;&lt;img title="" alt="" align="middle" src="http://i.expression.microsoft.com/dd279543.newsletter_HTC-addPhoto(en-us,MSDN.10).png" /&gt;&lt;img title="" alt="" align="left" src="http://i.expression.microsoft.com/dd279543.newsletter_HTC-slidingPanelContactNames(en-us,MSDN.10).png" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1655118" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Lançamento de livro em Português sobre desenvolvimento para .NET CF &amp; WM 6</title><link>http://msmvps.com/blogs/albertosilva/archive/2008/11/23/lan-231-amento-de-livro-em-portugu-234-s-sobre-desenvolvimento-para-net-cf-amp-wm-6.aspx</link><pubDate>Sun, 23 Nov 2008 19:56:25 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1654871</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1654871</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1654871</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2008/11/23/lan-231-amento-de-livro-em-portugu-234-s-sobre-desenvolvimento-para-net-cf-amp-wm-6.aspx#comments</comments><description>&lt;p&gt;O Ricardo Queirós acabou de ver publicado pela FCA o seu livro &amp;quot;Programação para Dispositivos Móveis em Windows Mobile 6 - Curso Completo&amp;quot;, que como o título deixa adivinhar, se destina aqueles que pretendem iniciar ou consolidar os seus conhecimentos de desenvolvimento para a plataforma Windows Mobile. Apesar do título referir explicitamente o Windows Mobile 6, a generalidade dos conteúdos também se aplica a versões anteriores, embora conte com um capítulo exclusivamente dedicado às funcionalidades expostas pelo SDK do Windows Mobile 6.&lt;/p&gt; &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva.LanamentodelivroemPortugussobre.NETCFWM6_5F00_11856/CAPA_5B00_1_5D005F00_2.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;border-top:0px;border-right:0px;" border="0" alt="CAPA[1]" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/albertosilva.LanamentodelivroemPortugussobre.NETCFWM6_5F00_11856/CAPA_5B00_1_5D005F00_thumb.jpg" width="277" height="392" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Dos tópicos abordados no livro que já será possível encontrar nas livrarias destacam-se:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Introdução ao Windows Mobile&lt;/li&gt; &lt;li&gt;Plataforma Microsoft .Net&lt;/li&gt; &lt;li&gt;A Minha Primeira Aplicação Mobile&lt;/li&gt; &lt;li&gt;Programação Orientada aos Objectos&lt;/li&gt; &lt;li&gt;Visual Studio e o Desenho de Interfaces&lt;/li&gt; &lt;li&gt;Teste, Debugging e Gestão de Erros&lt;/li&gt; &lt;li&gt;Empacotamento, Distribuição e Instalação&lt;/li&gt; &lt;li&gt;Persistência de Dados&lt;/li&gt; &lt;li&gt;Tópicos Avançados&lt;/li&gt; &lt;li&gt;Usando o SDK Windows Mobile 6&lt;/li&gt;&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1654871" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Novidades/default.aspx">Novidades</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>A arquitectura MVC aplicada à .NET Compact Framework 3.5</title><link>http://msmvps.com/blogs/albertosilva/archive/2008/11/13/a-arquitectura-mvc-aplicada-224-net-compact-framework-3-5.aspx</link><pubDate>Thu, 13 Nov 2008 12:53:01 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1654000</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1654000</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1654000</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2008/11/13/a-arquitectura-mvc-aplicada-224-net-compact-framework-3-5.aspx#comments</comments><description>&lt;p&gt;Nestas coisas das teorias sobre a melhor forma de separar as diferentes camadas de uma aplicação, há dois modelos que se destacam, o &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Model_View_Presenter"&gt;MVP&lt;/a&gt; e o &lt;a target="_blank" href="http://pt.wikipedia.org/wiki/Mvc"&gt;MVC&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Com a Mobile Client Software Factory, infelizmente descontinuada, uma das factory disponibilizadas dizia respeito ao modelo CAB, Composite Application Block, que seguia as linhas orientadoras do modelo MVP, mas cuja implementação não conquistou muitos seguidores, dada a elevada dificuldade de implementação e penalização na performance das aplicações que a implementavam.&lt;/p&gt; &lt;p&gt;Do modelo MVC não havia até agora que eu tivesse conhecimento nada dedicado ao assunto que se aplicasse à .NET Compact Framework, até que o Alex Yakhnin se lembrou de &lt;a target="_blank" href="http://blogs.msdn.com/priozersk/archive/2008/10/09/on-a-quest-for-mvc-framework.aspx"&gt;criar uma MVC Framework para .NET CF&lt;/a&gt;, e publicou uma série de 4 artigos introdutórios à mesma partindo de uma aplicação com funcionalidades de login, pesquisa e apresentação dos detalhes do item seleccionado...&lt;/p&gt; &lt;p&gt;&lt;a target="_blank" href="http://blogs.msdn.com/priozersk/archive/2008/10/10/mobile-mvc-framework-part-1.aspx"&gt;Mobile MVC framework (part 1)&lt;/a&gt; - O ecrã de login&lt;/p&gt; &lt;p&gt;&lt;a target="_blank" href="http://blogs.msdn.com/priozersk/archive/2008/10/13/mobile-mvc-framework-part-2.aspx"&gt;Mobile MVC framework (part 2)&lt;/a&gt; - O ecrã de pesquisa&lt;/p&gt; &lt;p&gt;&lt;a target="_blank" href="http://blogs.msdn.com/priozersk/archive/2008/10/16/mobile-mvc-framework-part-3-communicating-with-events.aspx"&gt;Mobile MVC framework (part 3)&lt;/a&gt; - idem, mas comunicando com eventos&lt;/p&gt; &lt;p&gt;&lt;a target="_blank" href="http://blogs.msdn.com/priozersk/archive/2008/11/04/mobile-mvc-framework-part-4-passing-data-between-controllers.aspx"&gt;Mobile MVC framework (part 4)&lt;/a&gt; - A apresentação dos detalhes, passando informação entre controladores&lt;/p&gt; &lt;p&gt;...que culminaram com a disponibilização no CodePlex:&lt;/p&gt; &lt;p&gt;&lt;a target="_blank" href="http://www.codeplex.com/MobileMVC"&gt;Mobile MVC Framework&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1654000" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Chat online sobre desenvolvimento para Windows Mobile a começar...</title><link>http://msmvps.com/blogs/albertosilva/archive/2008/11/11/chat-online-sobre-desenvolvimento-para-windows-mobile-a-come-231-ar.aspx</link><pubDate>Tue, 11 Nov 2008 17:05:26 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1653769</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1653769</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1653769</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2008/11/11/chat-online-sobre-desenvolvimento-para-windows-mobile-a-come-231-ar.aspx#comments</comments><description>&lt;p&gt;...dentro de 2 minutos! Desculpem o aviso tardio, a sessão deve durar cerca de uma hora durante a qual se tiverem alguma questão que não se sintam confortáveis a colocar em inglês, poderão colocá-la em Português e eu tentarei encaminhá-la.&lt;/p&gt; &lt;p&gt;Adicionalmente poderão usar os comentários a este post para colocar questões que não tenham visto respondidas na sessão.&lt;/p&gt; &lt;p&gt;O link para o chat é...&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/communities/chats/chatrooms/msdn.aspx"&gt;www.microsoft.com/communities/chats/chatrooms/msdn.aspx&lt;/a&gt; &lt;p&gt;...e terão como anfitriões funcionários da Microsoft e MVPs.  &lt;p&gt;[Actualização] &lt;p&gt;Devido a um pormenor na parametrização do chat, o mesmo está a requerer erradamente uma password. Até que o problema seja ultrapassado, o chat não terá lugar e é possível que venha a ser adiado. &lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1653769" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item></channel></rss>