<?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 (SQL Server CE)</title><link>http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_SQL+Server+CE_2900_/default.aspx</link><description>Tags: Desenvolvimento (SQL Server CE)</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: Como abstraír conceptualmente uma aplicação para prever um modelo offline de forma passiva?</title><link>http://msmvps.com/blogs/albertosilva/archive/2009/09/08/consult-243-rio-como-abstra-237-r-conceptualmente-uma-aplica-231-227-o-para-prever-um-modelo-offline-de-forma-passiva.aspx</link><pubDate>Tue, 08 Sep 2009 15:50:51 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1721620</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=1721620</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1721620</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2009/09/08/consult-243-rio-como-abstra-237-r-conceptualmente-uma-aplica-231-227-o-para-prever-um-modelo-offline-de-forma-passiva.aspx#comments</comments><description>&lt;p&gt;No &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/sqlce/threads" target="_blank"&gt;fórum da MSDN dedicado ao SQL Compact&lt;/a&gt; surgiu uma questão arquitectural que, de forma resumida, pretende que se debata um modelo sobre &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/c7ac3577-3874-4cbd-9a9a-d125510ac255/?prof=required" target="_blank"&gt;como abstraír uma aplicação da questão se está ou não online&lt;/a&gt;. A minha resposta, em inglês foi a seguinte:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I think we can break this in two parts: getting data from the server and putting data on the server.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;To get data from the server, you have to think how much data you may need on the client side, and how often it may change on the server side. As app like a survey app is very different from an app where you can insert orders, getting the current stock level for each product you select and get the most up-to-date information about the customer credit balance.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;So, depending on those details you should consider a simple model, where the app on startup get&amp;#39;s all up to date information it needs and stores it in objects in memory or cached locally, or a more complex model, where while connected the client app has to keep a local cache up to date, either with a polling mechanism (the client checks for updates) or a notification mechanism (the server notifies the client).&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;About putting the infomation created/updated/deleted back on the server, I would consider a permanent cache, like a SQL Compact database, and a flag mechanism per record. All operations on the client app would be done locally on the cache, updating the flag status accordingly and whenever the server was reachable, a differnent thread would be uploading those operations and reseting the flag.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;The critical issue when you assume that your app has to work mostly online but also offline, is that in most scenarios you don&amp;#39;t know when you are going to offline, so no chance for a last breath to get up to date information.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;About the technology to sync information, you may roll out your own, or if your client app is a desktop app, take a look athe the ADO.net Sync Services, namely the current v2 CTP, which is a very optimized mechanism based on rules to synchronize databases.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Se tiverem dificuldade em perceber alguma coisa, ou quiserem partilhar um comentário sobre o tema, estejam à vontade para usar os comentários do blog.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1721620" width="1" height="1"&gt;</description><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 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>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>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õ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>Performance does matter...</title><link>http://msmvps.com/blogs/albertosilva/archive/2008/08/22/performance-does-matter.aspx</link><pubDate>Fri, 22 Aug 2008 11:55:28 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1645495</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1645495</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1645495</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2008/08/22/performance-does-matter.aspx#comments</comments><description>&lt;p&gt;Estava a persistir numa base de dados em SQL Compact 3.5 num equipamento Windows Mobile 2003SE cerca de 250 registos (40 colunas) numa tabela e 5700 registos noutra tabela (4 colunas), obtidos de um webservice. A operação estava a tomar cerca de 70 segundos para a 1ª tabela e 60 segundos para a 2ª, o que me pareceu tempo a mais, ainda que estivesse a utilizar comandos preparados, com os tipos de dados e respectivos comprimentos definidos para cada parâmetro.&lt;/p&gt; &lt;p&gt;Fui fazendo umas alterações, removendo índices, &amp;#39;foreign keys&amp;#39;, mas as poucas melhorias não me convenciam, até que me lembrei de utilizar o SqlCeResultSet, sobre um comando do tipo TableDirect, e passei a inserir a mesma informação em... 10 SEGUNDOS, repartidos por um segundo e meio para os 250 registos e 8 segundos e meio para os 5700!!!&lt;/p&gt; &lt;p&gt;Fica a dica!!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1645495" 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>SELECTs dentro de SELECTs em SQL Compact 3.5</title><link>http://msmvps.com/blogs/albertosilva/archive/2008/07/09/selects-dentro-de-selects-em-sql-compact-3-5.aspx</link><pubDate>Wed, 09 Jul 2008 11:39:49 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1639951</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=1639951</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1639951</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2008/07/09/selects-dentro-de-selects-em-sql-compact-3-5.aspx#comments</comments><description>&lt;p&gt;Uma das novidades do SQL Compact 3.5 sobre as versões anteriores, é a possibilidade de encadear SELECTs, mas de uma forma mais limitada que o SQL Server 2000/2005/2008.&lt;/p&gt; &lt;p&gt;Hoje precisei de recuperar de uma tabela qual o registo imediatamente anterior/a seguir ao actual para navegar entre eles, sendo que os ID dos registos não era sequencial. Algo como:&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2"&gt;  &lt;tr&gt; &lt;td&gt;&lt;strong&gt;ID&lt;/strong&gt;&lt;/td&gt; &lt;td&gt;&lt;strong&gt;Nome&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;1&lt;/td&gt; &lt;td&gt;Joaquim&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;4&lt;/td&gt; &lt;td&gt;Manuel&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;9&lt;/td&gt; &lt;td&gt;António&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;12&lt;/td&gt; &lt;td&gt;Maria&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;13&lt;/td&gt; &lt;td&gt;Josefina&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;15&lt;/td&gt; &lt;td&gt;Etelvina&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;18&lt;/td&gt; &lt;td&gt;Paulo&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;23&lt;/td&gt; &lt;td&gt;Rui&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;40&lt;/td&gt; &lt;td&gt;Teresa&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt; &lt;p&gt;&lt;em&gt;(tabela Nomes)&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Imaginando que estamos no registo 12, para obter o anterior no SQL Server poderia fazer algo como:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;SELECT &lt;strong&gt;id&lt;/strong&gt;, &lt;strong&gt;nome&lt;/strong&gt;&lt;br /&gt;FROM &lt;strong&gt;nomes&lt;/strong&gt;&lt;br /&gt;WHERE &lt;strong&gt;id&lt;/strong&gt; = (SELECT MAX(&lt;strong&gt;id&lt;/strong&gt;) FROM &lt;strong&gt;nomes&lt;/strong&gt; WHERE &lt;strong&gt;id&lt;/strong&gt; &amp;lt; 12)&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Ao testar a instrução no SQL Compact, verifica-se que esta sintaxe não é suportada, então lembrei-me de experimentar de outra forma:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;SELECT &lt;strong&gt;id&lt;/strong&gt;. &lt;strong&gt;nome&lt;/strong&gt;&lt;br /&gt;FROM &lt;strong&gt;nomes&lt;/strong&gt; INNER JOIN (SELECT MAX(&lt;strong&gt;id&lt;/strong&gt;) qID FROM &lt;strong&gt;nomes&lt;/strong&gt; WHERE &lt;strong&gt;id&lt;/strong&gt; &amp;lt; 12) &lt;strong&gt;t&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON &lt;strong&gt;nomes.id&lt;/strong&gt; =&lt;strong&gt; t.qid&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;E assim já funcionou :)&lt;/p&gt; &lt;p&gt;&lt;strong&gt;[ACTUALIZAÇÃO]&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Dado que para o meu caso real a pesquisa estava a tomar perto de meio segundo, a que se juntava 0,3 segundos para recuperar o resto da informação e carregar a informação para o ecrã, parti a instrução em 2, o que permitiu ganhar perto de 0,2s. Convém testarem sempre caso-a-caso o que é mais eficiente, uma instrução única como acima, ou partirem-na em 2 para na 1ª recuperar o ID do nome anterior com um ExecuteScalar e depois na 2ª obter os dados do registo.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1639951" 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>TechDays 2008 em Março</title><link>http://msmvps.com/blogs/albertosilva/archive/2008/01/10/techdays-2008-em-mar-231-o.aspx</link><pubDate>Thu, 10 Jan 2008 22:28:51 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1453795</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1453795</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1453795</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2008/01/10/techdays-2008-em-mar-231-o.aspx#comments</comments><description>&lt;p&gt;No seguimento do sucesso das edições anteriores, o próximo TechDays com data marcada para 12 a 14 de Março tem tudo para ser o melhor TechDays de sempre! Para além da experiência acumulada, a agenda terá especial atenção aos novos produtos a lançar no dia 11 de Março, o Windows Server 2008, o SQL Server 2008 e o Visual Studio 2008, e às tecnologias por estes disponibilizadas.&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.techdays.pt/images/mini_mrec.jpg" alt="" /&gt; &lt;/p&gt; &lt;p&gt;Este evento que cruza os interesses do pessoal IT Pro e dos Developers, e já consagrado como o maior evento técnico em Portugal, conta com a organização da Microsoft e voltará a decorrer no Centro de Congressos de Lisboa, se bem que este ano sejam esperadas novidades!&lt;/p&gt; &lt;p&gt;O valor da inscrição depende da antecedência com que for feita, não esquecendo que na edição do ano passado as inscrições foram fechadas algum tempo antes do evento:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Até 25 de Janeiro: 149€  &lt;li&gt;Até 22 de Fevereiro: 225€ (data limite para incrições)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Como não podia deixar de ser, este evento também contará com sessões sobre .NET Compact Framework, Windows Mobile e temas relacionados.&lt;/p&gt; &lt;p&gt;Para mais informações e inscrições, visitem o site oficial:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;TechDays 2008&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.techdays.pt"&gt;&lt;font size="1"&gt;http://www.techdays.pt&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Ou subscrevam o blog:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;TechDays 2008 - Blog&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a title="http://www.techdays.pt/Blog.aspx" href="http://www.techdays.pt/Blog.aspx"&gt;&lt;font size="1"&gt;http://www.techdays.pt/Blog.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1453795" 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/TechdaysPT08/default.aspx">TechdaysPT08</category></item><item><title>.NET Compact Framework 3.5 e SSCE 3.5 disponíveis para instalação!</title><link>http://msmvps.com/blogs/albertosilva/archive/2008/01/04/net-compact-framework-3-5-e-ssce-3-5-dispon-237-veis-para-instala-231-227-o.aspx</link><pubDate>Fri, 04 Jan 2008 01:33:46 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1435976</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=1435976</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1435976</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2008/01/04/net-compact-framework-3-5-e-ssce-3-5-dispon-237-veis-para-instala-231-227-o.aspx#comments</comments><description>&lt;p&gt;Está já disponível para download a versão &amp;#39;standalone&amp;#39; ou &amp;#39;redistribituível&amp;#39;, como preferirem, da&lt;strong&gt; .NET Compact Framework 3.5&lt;/strong&gt;, incluída igualmente no Visual Studio 2008 recentemente disponibilizado para subscritores MSDN.&lt;/p&gt; &lt;p&gt;Este download é imprescindível para poder correr aplicações .NET CF 3.5, não exisindo nenhum equipamento actualmente que já a inclua pré-instalada.&lt;/p&gt; &lt;p&gt;O seu download pode ser efectuado a partir de...&lt;/p&gt; &lt;p&gt;&lt;strong&gt;.NET Compact Framework 3.5 Redistributable&lt;br /&gt;&lt;/strong&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e3821449-3c6b-42f1-9fd9-0041345b3385&amp;amp;displaylang=en"&gt;&lt;font size="1"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=e3821449-3c6b-42f1-9fd9-0041345b3385&amp;amp;displaylang=en&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;...e pode ser instalada em equipamentos Windows Mobile 2003 (PocketPC), Windows Mobile 5.0 (PocketPC e Smartphone), Windows Mobile 6 (todas as edições), Windows CE 5.0 e 6.0.&lt;/p&gt; &lt;p&gt;Com o VS2008 foi igualmente disponibilizado o &lt;strong&gt;SQL Server Compact Edition 3.5&lt;/strong&gt;, cujos runtime podem ser instalados a partir de...&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Microsoft SQL Server Compact 3.5 for Windows Mobile&lt;br /&gt;&lt;/strong&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=38ed2670-a70a-43b3-87f3-7ab67b56cbf2&amp;amp;DisplayLang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=38ed2670-a70a-43b3-87f3-7ab67b56cbf2&amp;amp;DisplayLang=en"&gt;&lt;font size="1"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=38ed2670-a70a-43b3-87f3-7ab67b56cbf2&amp;amp;DisplayLang=en&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;A lista de compatibilidades é idêntica à da .NET CF 3.5.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1435976" 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/Base+de+dados+_2800_SqlServer+2000+_2600_+CE_2900_/default.aspx">Base de dados (SqlServer 2000 &amp; CE)</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/Base+de+dados+_2800_SqlServer+2000+_2600_amp_3B00_+CE_2900_/default.aspx">Base de dados (SqlServer 2000 &amp;amp; CE)</category></item><item><title>Série de videos 'How to...?' sobre desenvolvimento para Windows Mobile</title><link>http://msmvps.com/blogs/albertosilva/archive/2007/10/20/s-233-rie-de-videos-how-to-sobre-desenvolvimento-para-windows-mobile.aspx</link><pubDate>Sat, 20 Oct 2007 17:04:25 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1253365</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=1253365</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1253365</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2007/10/20/s-233-rie-de-videos-how-to-sobre-desenvolvimento-para-windows-mobile.aspx#comments</comments><description>&lt;p&gt;Estão disponíveis para download uma série de vídeos sobre desenvolvimento para a plataforma Windows Mobile, seja na vertente de desenvolvimento propriamente dito com Visual Studio, seja de utilização de bases de dados SQL Server Mobile e mecanismos de sincornização, contando nalguns casos com exemplos de código para descarregamento. Os videos têm entre 10 e 40 minutos de duração e são apresentados em inglês.&lt;/p&gt; &lt;p&gt;A lista de videos até ao momento inclui:&lt;/p&gt; &lt;p&gt;- Como determinar se um equipamento Windows Mobile suporta ASP.NET AJAX?&lt;br /&gt;- Como ver e controlar um equipamento Windows Mobile a partir do seu PC?&lt;br /&gt;- Como determinar as àreas de armazenamento persistentes do equipamento?&lt;br /&gt;- Como assegurar que a minha aplicação inclui os privilégios necessários?&lt;br /&gt;- Como limitar as notificações de sistema às que incluem determinada informação em particular?&lt;br /&gt;- Como implementar mecanismos de descarregamento (download)?&lt;br /&gt;- Como anexar um ficheiro a uma mensagem de email e exibi-lo?&lt;br /&gt;- Como monitorizar a hora do PDA sem descarregar rapidamente a bateria?&lt;br /&gt;- Como detectar e verificar ligações de rede?&lt;br /&gt;- Como detectar e identificar um equipamento Windows Mobile?&lt;br /&gt;- Como determinar programaticamente se uma tabela existe numa base de dados SQL Server Compact Edition (SSCE)?&lt;br /&gt;- Como utilizar certificados de desenvolvimento para assinar uma aplicação?&lt;br /&gt;- Como lançar aplicações em Smartphones a partir do Visual Studio?&lt;br /&gt;- Como determinar programaticamente se um PDA conta com teclado físico?&lt;br /&gt;- Como automatizar a configuração do Device Emulator?&lt;br /&gt;- Como monitorizar e gerir as alterações à orientação do ecrã?&lt;br /&gt;- Como iniciar uma aplicação?&lt;br /&gt;- Como esconder elementos standard da interface com o utilizador em aplicações .NET CF?&lt;br /&gt;- Como agendar uma aplicação para correr a determinada hora?&lt;br /&gt;- Como determinar se uma combo box se encontra visível com a .NET CF?&lt;br /&gt;- Como criar um servidor HTTP de testes com o Windows Mobile 6 SDK?&lt;br /&gt;- Como configurar o emulador para simular a presença de uma rede celular?&lt;br /&gt;- Como programar uma aplicação para ser executada sempre que o equipamento &amp;#39;acorda&amp;#39;?&lt;br /&gt;- Como fazer o debug de código nativo (C++) numa aplicação .NET CF?&lt;br /&gt;- Como reagir a callbacks de uma API nativa a partir de uma aplicação Windows Mobile&lt;br /&gt;- Como criar um projecto de setup para PC para instalar aplicações Windows Mobile via ActiveSync?&lt;br /&gt;- Como utilizar o Merge Replication para sincronização de dados entre SQL Server e SQL Server Compact Edition? (2 partes)&lt;br /&gt;- Como melhorar a performance de acesso a dados?&lt;br /&gt;- Como efectuar chamadas dinâmicas em Java Script &amp;#39;JSON&amp;#39; a partir do Internet Explorer Mobile?&lt;br /&gt;- Como maximizar a eficiência nas comunicações na sincronização de dados com o SSCE?&lt;/p&gt; &lt;p&gt;Esta lista encontra-se em crescimento, pelo que vá monitorizando a página abaixo indicada, ou melhor, subscreva o fluxo &lt;a href="http://www.microsoft.com/feeds/msdn/en-us/videos/devices.xml" target="_blank"&gt;RSS&lt;/a&gt; para receber notificações de novos videos.&lt;/p&gt; &lt;p&gt;&lt;font size="5"&gt;&amp;quot;How Do I?&amp;quot; Videos for Devices&lt;/font&gt;&lt;br /&gt;&lt;a title="http://msdn2.microsoft.com/en-us/netframework/bb495180.aspx" href="http://msdn2.microsoft.com/en-us/netframework/bb495180.aspx"&gt;&lt;font size="1"&gt;http://msdn2.microsoft.com/en-us/netframework/bb495180.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1253365" 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/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>Novo newsgroup em Português dedicado ao desenvolvimento para Windows Mobile e contactos directos</title><link>http://msmvps.com/blogs/albertosilva/archive/2007/10/17/novo-newsgroup-em-portugu-234-s-dedicado-ao-desenvolvimento-para-windows-mobile-e-contactos-directos.aspx</link><pubDate>Wed, 17 Oct 2007 08:34:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1248687</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=1248687</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1248687</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2007/10/17/novo-newsgroup-em-portugu-234-s-dedicado-ao-desenvolvimento-para-windows-mobile-e-contactos-directos.aspx#comments</comments><description>&lt;p&gt;Este post é uma &amp;#39;reedição&amp;#39; de um mais antigo, &amp;#39;justificado&amp;#39; por haver um newsgroup novo em Português dedicado ao desenvolvimento para Windows Mobile (e Windows CE também), mas também por continuar a receber pedidos directos de ajuda no meu mail.&lt;/p&gt;
&lt;p&gt;O que sugeriria era que em vez de me contactarem directamente, que usassem os newsgroup oficiais em português da Microsoft dedicados à utilização de equipamentos Windows Mobile/Windows CE&amp;nbsp;e ao desenvolvimento para esta plataforma. Ao colocarem as V/ questões nos newsgroup, que acompanho regularmente, têm uma garantia que um maior número de pessoas pode ver e participar na discussão, para além de outras pessoas poderem beneficiar das experiências dos outros.&lt;/p&gt;
&lt;p&gt;Os newsgroups&amp;nbsp;são o &lt;strong&gt;microsoft.public.pt.pocketpc&lt;/strong&gt; (questões gerais) e &lt;strong&gt;microsoft.public.pt.windows.mobile.desenvolvimento&lt;/strong&gt; (questões sobre desenvolvimento), e podem ser acedidos livremente utilizando um newsreader, como o &lt;strong&gt;Outlook Express&lt;/strong&gt; do Windows XP, o &lt;strong&gt;Windows Mail&lt;/strong&gt; do Windows Vista, o muito interessante &lt;strong&gt;Windows Live Mail &lt;/strong&gt;(beta) ou o excelente, gratuito e pesado, &lt;strong&gt;&lt;a href="http://www.jetbrains.com/omea" target="_blank"&gt;Omea Pro/Reader&lt;/a&gt;&lt;/strong&gt;. O servidor a utilzar é o &lt;strong&gt;msnews.microsoft.com&lt;/strong&gt; e não carece de autenticação.&lt;/p&gt;
&lt;p&gt;Também podem aceder ao newsgroup, seja utilizando o interface web da Microsoft...&lt;/p&gt;
&lt;p&gt;&lt;a title="Newsgroup Português sobre WindowsMobile" href="http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.pt.pocketpc" target="_blank"&gt;http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.pt.pocketpc&lt;/a&gt;&lt;br /&gt;&lt;a title="Newsgroup Português sobre WindowsMobile" href="http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.pt.windows.mobile.desenvolvimento" target="_blank"&gt;http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.pt.windows.mobile.desenvolvimento&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;...seja o Google Groups...&lt;/p&gt;
&lt;p&gt;&lt;a title="http://groups.google.pt/group/microsoft.public.pt.pocketpc/topics" href="http://groups.google.pt/group/microsoft.public.pt.pocketpc/topics" target="_blank"&gt;http://groups.google.pt/group/microsoft.public.pt.pocketpc/topics&lt;/a&gt;&lt;br /&gt;&lt;a title="http://groups.google.pt/group/microsoft.public.pt.pocketpc/topics" href="http://groups.google.pt/group/microsoft.public.pt.windows.mobile.desenvolvimento/topics" target="_blank"&gt;http://groups.google.pt/group/microsoft.public.pt.windows.mobile.desenvolvimento/topics&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Claro que podem continuar a contactar-me directamente, e responderei logo que possível. Contactos &amp;#39;profissionais&amp;#39; que passem pelo desenvolvimento de soluções de mobilidade à medida, consultoria ou outros assuntos relacionados com a &lt;strong&gt;&lt;a href="http://www.moving2u.pt/" target="_blank"&gt;&lt;font color="#ff8000"&gt;moving2u&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;, empresa da qual sou sócio, nomeadamente sobre a nossa solução de &lt;a href="http://www.moving2u.pt/Files/m2uMobileSalesPT.pdf" target="_blank"&gt;Pré-Venda/Auto-Venda&lt;/a&gt;, deverão ser encaminhadas para alberto.silva(@)moving2u.pt (retirar os parentesis à volta da @)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1248687" 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/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/Base+de+dados+_2800_SqlServer+2000+_2600_amp_3B00_+CE_2900_/default.aspx">Base de dados (SqlServer 2000 &amp;amp; CE)</category></item><item><title>Novo livro sobre desenvolvimento para Windows Mobile</title><link>http://msmvps.com/blogs/albertosilva/archive/2007/06/19/novo-livro-sobre-desenvolvimento-para-windows-mobile.aspx</link><pubDate>Mon, 18 Jun 2007 23:27:28 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:972322</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=972322</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=972322</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2007/06/19/novo-livro-sobre-desenvolvimento-para-windows-mobile.aspx#comments</comments><description>&lt;p&gt;Do autor do excelente livro &amp;#39;.NET Compact Framework Core Reference&amp;#39;, o Andy Wigley, a par do Peter Foot e do Daniel Moth, foi agora lançado um novo livro que para além de fazer a necessária actualização de algumas questões para a .NET CompactFramework 2.0, desenvolve alguns outros temas pertinentes ao desenvolvimento para esta plataforma.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/mspress/books/10294.aspx"&gt;&lt;img height="130" alt="" src="http://www.microsoft.com/MSPress/books/imgt/10294.gif" width="130" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;Microsoft® Mobile Development Handbook &lt;br /&gt;Andy Wigley; Daniel Moth; Peter Foot &lt;/b&gt;&lt;/p&gt; &lt;p&gt;O livro destina-se principalmente aqueles que já desenvolvem para .NET CF, ou que conhecendo a .NET Framework, querem aventurar-se neste novo mundo.&lt;/p&gt; &lt;p&gt;Pela seguinte lista de capítulos, podem ficar com uma ideia mais aproximada dos temas cobertos pelo livro:&lt;/p&gt; &lt;p&gt;1. .NET Compact Framework—a Platform on the Move&lt;br /&gt;2. Building a Microsoft Windows Forms GUI&lt;br /&gt;3. Using SQL Server 2005 Compact Edition and Other Data Stores&lt;br /&gt;4. Catching Errors, Testing, and Debugging&lt;br /&gt;5. Understanding and Optimizing .NET Compact Framework Performance&lt;br /&gt;6. Completing the Application: Packaging and Deployment&lt;br /&gt;7. Exchanging Data with Backend Servers&lt;br /&gt;8. Networking&lt;br /&gt;9. Getting Connected&lt;br /&gt;10. Security Programming for Mobile Applications&lt;br /&gt;11. Threading&lt;br /&gt;12. Graphics Programming&lt;br /&gt;13. Direct3D Mobile&lt;br /&gt;14. Interoperating with the Platform&lt;br /&gt;15. Building Custom Controls&lt;br /&gt;16. Internationalization&lt;br /&gt;17. Developing with Windows Mobile&lt;br /&gt;18. Introducing .NET Compact Framework Version 3.5 and Visual Studio &amp;quot;Orcas&amp;quot;&lt;/p&gt; &lt;p&gt;É improvável que o encontrem já por cá, por isso a melhor opção para já será encomendá-lo, por ex. da Amazon UK:&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.amazon.co.uk/Microsoft-Mobile-Development-Handbook-Pro/dp/0735623589" href="http://www.amazon.co.uk/Microsoft-Mobile-Development-Handbook-Pro/dp/0735623589"&gt;http://www.amazon.co.uk/Microsoft-Mobile-Development-Handbook-Pro/dp/0735623589&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Eu vou já encomendar um para mim :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=972322" 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/Base+de+dados+_2800_SqlServer+2000+_2600_+CE_2900_/default.aspx">Base de dados (SqlServer 2000 &amp; CE)</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>Diferenças de performance entre SSCE 2.0 e 3.1 para a mesma instrução</title><link>http://msmvps.com/blogs/albertosilva/archive/2007/06/18/diferen-231-as-de-performance-entre-ssce-2-0-e-3-1-para-a-mesma-instru-231-227-o.aspx</link><pubDate>Mon, 18 Jun 2007 12:29:04 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:971311</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=971311</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=971311</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2007/06/18/diferen-231-as-de-performance-entre-ssce-2-0-e-3-1-para-a-mesma-instru-231-227-o.aspx#comments</comments><description>&lt;p&gt;Ao converter uma aplicação de .NET CF 1.0 com base de dados em SQL CE 2.0 para&amp;nbsp;.NET CF 2.0 com SQL CE 3.1, constatei que uma instrução SQL que demorava poucos segundos, passou a demorar quase 30 segundos a ser executada!&lt;/p&gt; &lt;p&gt;A instrução em causa relacionava 3 tabelas, e estava &amp;#39;optimizada&amp;#39; para SSCE 2.0, ou seja, em vez de JOINs explícitos, relacionava as tabelas na cláusula WHERE, algo como...&lt;/p&gt; &lt;p&gt;SELECT&amp;nbsp;t1.c1, t1.c2&lt;br /&gt;FROM t1, t2, t3&lt;br /&gt;WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1&lt;/p&gt; &lt;p&gt;Bastou mudá-la para...&lt;/p&gt; &lt;p&gt;SELECT&amp;nbsp;t1.c1, t1.c2&lt;br /&gt;FROM t1 LEFT JOIN t2 ON t1.c1 = t2.c1 LEFT JOIN &amp;nbsp;t3 ON t2.c1 = t3.c1&lt;/p&gt; &lt;p&gt;...para que de quase 30 segundos passasse a ser executada em menos de 5 segundos!&lt;/p&gt; &lt;p&gt;Quem não utilizou SSCE 2.0, logo à partida escolheria esta segunda instrução, mas para os restantes, ao converterem aplicações em .NET CF 1.0 para .NET CF 2.0 vale a pena reverem as V/ instruções SELECT no sentido de procederem a esta modificação!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=971311" 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/Base+de+dados+_2800_SqlServer+2000+_2600_+CE_2900_/default.aspx">Base de dados (SqlServer 2000 &amp; CE)</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>Questões enviadas para este blog(ue)...</title><link>http://msmvps.com/blogs/albertosilva/archive/2007/04/01/quest-es-enviadas-para-este-blog-ue.aspx</link><pubDate>Sun, 01 Apr 2007 20:30:41 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:740001</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=740001</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=740001</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2007/04/01/quest-es-enviadas-para-este-blog-ue.aspx#comments</comments><description>&lt;p&gt;Ao formatar o meu PC de casa, reinstalei o Outlook e configurei as minhas diversas contas de mail. Foi com surpresa que constatei que da conta ligada a este blog começaram a 'caír' inúmeras mensagens que ainda não haviam sido descarregadas, algumas quase com 1 ano!&lt;/p&gt; &lt;p&gt;Resolvida esta questão 'técnica', começo por pedir desculpas a todos que me enviaram questões directamente por esse meio, e caso a razão que vos levou a contactarem-me persista, poderão fazê-lo de novo, pedindo que tenham em consideração o próximo parágrafo. De todo o modo, respondi a (quase) todas as mensagens, pelo que também poderão fazer reply à mesma.&lt;/p&gt; &lt;p&gt;O que também sugeriria era que em vez de me contactarem directamente, que usassem o newsgroup oficial em português da Microsoft dedicado à utilização de equipamentos Windows Mobile/Windows CE&amp;nbsp;e ao desenvolvimento para esta plataforma. Ao colocarem as V/ questões no newsgroup, que acompanho diariamente, têm uma garantia que um maior número de pessoas pode ver e participar na discussão, para além de outras pessoas poderem beneficiar das experiências dos outros.&lt;/p&gt; &lt;p&gt;O newsgroup é o &lt;strong&gt;microsoft.public.pt.pocketpc&lt;/strong&gt; , e pode ser acedido livremente utilizando um newsreader, como o &lt;strong&gt;Outlook Express&lt;/strong&gt; do Windows XP, o &lt;strong&gt;Windows Mail&lt;/strong&gt; do Windows Vista, ou o excelente, gratuito e pesado, &lt;strong&gt;&lt;a href="http://www.jetbrains.com/omea" target="_blank"&gt;Omea Pro/Reader&lt;/a&gt;&lt;/strong&gt;. O servidor a utilzar é o &lt;strong&gt;msnews.microsoft.com&lt;/strong&gt; e não carece de autenticação.&lt;/p&gt; &lt;p&gt;Também podem aceder ao newsgroup, seja utilizando o interface web da Microsoft...&lt;/p&gt; &lt;p&gt;&lt;a title="Newsgroup Portugu&amp;ecirc;s sobre WindowsMobile" href="http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.pt.pocketpc" target="_blank"&gt;http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.pt.pocketpc&lt;/a&gt;&lt;/p&gt; &lt;p&gt;...seja o Google Groups...&lt;/p&gt; &lt;p&gt;&lt;a title="http://groups.google.pt/group/microsoft.public.pt.pocketpc/topics" href="http://groups.google.pt/group/microsoft.public.pt.pocketpc/topics" target="_blank"&gt;http://groups.google.pt/group/microsoft.public.pt.pocketpc/topics&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Claro que podem continuar a contactar-me directamente, e responderei logo que possível. Contactos 'profissionais' que passem pelo desenvolvimento de soluções de mobilidade à medida, consultoria ou outros assuntos relacionados com a &lt;strong&gt;&lt;a href="http://www.moving2u.pt/" target="_blank"&gt;&lt;font color="#ff8000"&gt;moving2u&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;, empresa da qual sou sócio, nomeadamente sobre a nossa solução de &lt;a href="http://www.moving2u.pt/Files/m2uMobileSalesPT.pdf" target="_blank"&gt;Pré-Venda/Auto-Venda&lt;/a&gt;, deverão ser encaminhadas para alberto.silva(@)moving2u.pt (retirar os parentesis à volta da @)&lt;/p&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=740001" 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>TechDays 2007 - Apresentação e código das demonstrações</title><link>http://msmvps.com/blogs/albertosilva/archive/2007/03/26/techdays-2007-apresenta-o-e-c-digo-das-demonstra-es.aspx</link><pubDate>Mon, 26 Mar 2007 22:49:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:712453</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=712453</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=712453</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2007/03/26/techdays-2007-apresenta-o-e-c-digo-das-demonstra-es.aspx#comments</comments><description>&lt;P&gt;Brevemente serão disponibilizadas no site do TechDays as apresentações das diversas sessões que fizeram parte do evento.&lt;/P&gt;
&lt;P&gt;Entretanto poderão já descarregar minha sessão (formato PowerPoint 2007), que espero que constitua um guia útil para descarregarem as ferramentas indicadas ao longo da apresentação, bem como pelos links para os diversos artigos...&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;FONT size=4&gt;MOB001 - Desenvolvimento de Aplicações para Windows Mobile (PPSx, ZIP)&lt;/FONT&gt;&lt;BR&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;A title=http://www.mundomovel.com/blog/downloads/MOB001_AlbertoSilva_DesenvolvimentoDeAplicacoesParaWindowsMobile.ppsx href="http://www.mundomovel.com/blog/downloads/MOB001_AlbertoSilva_DesenvolvimentoDeAplicacoesParaWindowsMobile.zip"&gt;&lt;EM&gt;&lt;FONT size=1&gt;http://www.mundomovel.com/blog/downloads/MOB001_AlbertoSilva_DesenvolvimentoDeAplicacoesParaWindowsMobile.zip&lt;/FONT&gt;&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;E também o código usado na demo do OrientationAwareControl (a tal que falhou das 2 vezes)...&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;FONT size=4&gt;DemoOrientationAwareControl* (C#)&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;A title=http://www.mundomovel.com/blog/downloads/DemoOrientationAwareControl.zip href="http://www.mundomovel.com/blog/downloads/DemoOrientationAwareControl.zip"&gt;&lt;EM&gt;&lt;FONT size=1&gt;http://www.mundomovel.com/blog/downloads/DemoOrientationAwareControl.zip&lt;/FONT&gt;&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;...e a aplicação que procedeu ao sorteio, com uma pequena correcção e comentários:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;FONT size=4&gt;TechDays2007Sorteio (VB.net)&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;A title=http://www.mundomovel.com/blog/downloads/TechDays2007Sorteio.zip href="http://www.mundomovel.com/blog/downloads/TechDays2007Sorteio.zip"&gt;&lt;EM&gt;&lt;FONT size=1&gt;http://www.mundomovel.com/blog/downloads/TechDays2007Sorteio.zip&lt;/FONT&gt;&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Podem usar o código de ambas livremente, sem qualquer garantia ou responsabilidade minha, o bla-bla do costume. O Visual Studio 2005 é requerido para abrir os projectos.&lt;/P&gt;
&lt;P&gt;Sobre a apresentação, caso pretendam dar-lhe um fim que não visualização 'em privado', agradecia que me contactassem previamente.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;[UPDATE - 2007-03-27]&lt;/EM&gt;&lt;BR&gt;Compactei a apresentação PowerPoint 2007 em zip por dificuldades no seu download.&lt;BR&gt;&lt;BR&gt;&lt;FONT size=1&gt;* Ainda não tive oportunidade de alterar a aplicação para carregar informação a partir do Registry do PDA&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=712453" 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/TechDays07/default.aspx">TechDays07</category></item><item><title>SQL Server 2005 Compact Edition: A performance também depende de nós...</title><link>http://msmvps.com/blogs/albertosilva/archive/2007/03/26/sql-server-2005-compact-edition-a-performance-tamb-m-depende-de-n-s.aspx</link><pubDate>Sun, 25 Mar 2007 23:25:53 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:709693</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=709693</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=709693</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2007/03/26/sql-server-2005-compact-edition-a-performance-tamb-m-depende-de-n-s.aspx#comments</comments><description>&lt;p&gt;O &lt;a href="http://nativemobile.blogspot.com/" target="_blank"&gt;João Paulo Figueira&lt;/a&gt; apresentou durante a sua sessão no TechDays 2007 uma demonstração em que ilustrava diferentes formas de inserir 'em massa' 10 000 registos numa tabela, que deu que falar, pois a expressividade dos números ficou na memória de algumas das pessoas que assistiram à sessão e com quem posteriormente falei.&lt;/p&gt; &lt;p&gt;O João acaba de disponibilizar um artigo no 'portal' para programadores para plaformas móveis da Microsoft, o &lt;a href="http://www.pocketpcdn.com/" target="_blank"&gt;PocketPC Developer Network&lt;/a&gt;, onde ilustra a diferença entre inserir esses registos com comandos INSERT não preparados, com comandos INSERT preparados, com o SqlCeResultSet e com OLE DB.&lt;/p&gt; &lt;p&gt;Vejam o artigo e tirem as V/ conclusões...&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;&lt;font size="4"&gt;&lt;strong&gt;SQL Compact Edition Insert Performance&lt;br&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/em&gt;&lt;a title="http://www.pocketpcdn.com/articles/articles.php?&amp;amp;atb.set(c_id)=74&amp;amp;atb.set(a_id)=11003&amp;amp;atb.perform(details)=&amp;amp;" href="http://www.pocketpcdn.com/articles/articles.php?&amp;amp;atb.set(c_id)=74&amp;amp;atb.set(a_id)=11003&amp;amp;atb.perform(details)=&amp;amp;"&gt;&lt;em&gt;&lt;font size="1"&gt;http://www.pocketpcdn.com/articles/articles.php?&amp;amp;atb.set(c_id)=74&amp;amp;atb.set(a_id)=11003&amp;amp;atb.perform(details)=&amp;amp;&lt;/font&gt;&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;A propósito, João, achas que nalgumas circunstâncias pode fazer sentido remover os índices antes da operação de inserção em massa e recriá-los no final?&lt;/p&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=709693" 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/TechDays07/default.aspx">TechDays07</category></item></channel></rss>