<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0UGQH45fSp7ImA9WhRWGEg.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654</id><updated>2012-01-06T10:00:21.025-02:00</updated><category term="Windows Mobile" /><category term="Visual Studio" /><category term="Analytics" /><category term="Microsoft Expression" /><category term="MVC" /><category term="Silverlight 5" /><category term="RTM" /><category term="Download" /><category term="Dicas" /><category term="SQL" /><category term="Palestras" /><category term="Binding" /><category term="Podcast" /><category term="Service Pack" /><category term="Expression Blend" /><category term="Deep Zoom" /><category term="Windows Live" /><category term="Community Zone" /><category term="Tutorial" /><category term="Windows" /><category term="Visual Studio 2010" /><category term="ASP.NET" /><category term="Steve Jobs" /><category term="MEF" /><category term="Visual Studio 2008" /><category term="Expression Web" /><category term="The Developer's Conference" /><category term="Beta" /><category term="Smartphone" /><category term="Eventos" /><category term="Código" /><category term="ReMIX Brasil" /><category term="Silverlight 3" /><category term="XAMLCast" /><category term="HTML5" /><category term="Windows 7" /><category term="Sketchflow" /><category term="Express Editions" /><category term="Blend 3" /><category term="Silverlight 4" /><category term="MVP" /><category term="Segurança" /><category term="MIX09" /><category term="Behavior" /><category term="Webcast" /><category term="TechEd" /><category term="MIX10" /><category term="Open Source" /><category term="Windows Phone 7" /><category term="Expression Gallery" /><category term="IE8" /><category term="Blend 4" /><category term="RTW" /><category term="MIX08" /><category term="Release Candidate" /><category term="IE" /><category term="WPF" /><category term="Silverlight" /><category term="MIX" /><title>Kelps' SilverBox</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.kelps.net/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.kelps.net/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>87</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/DevNewsAndOldsByKelps" /><feedburner:info uri="devnewsandoldsbykelps" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;C0UGQH4_eip7ImA9WhRWGEg.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-6364091768507549857</id><published>2012-01-06T09:58:00.001-02:00</published><updated>2012-01-06T10:00:21.042-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-06T10:00:21.042-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="HTML5" /><category scheme="http://www.blogger.com/atom/ns#" term="Dicas" /><title>Veja o suporte dos browsers às novidades de html5, css3 e javascript</title><content type="html">&lt;p&gt;Hoje eu reencontrei um site muito útil que eu já havia visto algum tempo atrás mas havia perdido o link. O site se chama “&lt;a title="tabelas de compara&amp;ccedil;&amp;atilde;o de suporte dos browsers &amp;agrave;s diversas novidades de css3, html5, svg, javascript, etc" href="http://caniuse.com/" target="_blank"&gt;When can I use…&lt;/a&gt;” e contém diversas tabelas comparativas mostrando o suporte dos principais browsers às novidades de CSS, HTML5, SVG, Javascript e outros.&lt;/p&gt; &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="When can I use rodando no IE9" border="0" alt="When can I use rodando no IE9" src="http://lh4.ggpht.com/-MNQqzsl-paU/Twbh00quejI/AAAAAAAAA9A/vZyyQ0F5bhU/image%25255B8%25255D.png?imgmax=800" width="660" height="429"&gt;&lt;/p&gt; &lt;a name='more'&gt;&lt;/a&gt; &lt;p&gt;Clicando nos links das funcionalidades é possível ver as tabelas comparativas de suporte dos browsers e também é possível mudar os filtros para exibir outras funcionalidades. &lt;/p&gt; &lt;p&gt;As tabelas de comparação contam também com alguns browsers de smartphone, mas o Windows Phone não consta na lista (tem apenas iOS, Android, Opera Mini e Opera Mobile). Mas isso não é um problema pois o IE do Windows Phone usa a mesma engine de renderização do desktop, com a única diferença de que não suporta plug-ins, então basta olhar a versão do IE normal na lista para ver se suporta a funcionalidade desejada. O IE do Windows Phone 7.0 (versão lançada na Europa e EUA em 2010) usa a engine do IE 7 e o Windows Phone 7.1 (Mango, lançado em 2011, inclusive no Brasil) usa a engine do IE 9.&lt;/p&gt; &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="tabelas de compara&amp;ccedil;&amp;atilde;o com filtros expandidos, permitindo filtras as funcionalidades e browsers procurados" border="0" alt="tabelas de compara&amp;ccedil;&amp;atilde;o com filtros expandidos, permitindo filtras as funcionalidades e browsers procurados" src="http://lh3.ggpht.com/--P3WBmnbNAU/Twbh2cKXkVI/AAAAAAAAA9I/RlUsoZtQX5Q/image%25255B9%25255D.png?imgmax=800" width="660" height="430"&gt;&lt;/p&gt; &lt;p&gt;Se você estiver trabalhando em um projeto usando HTML5, este site com certeza será muito útil para ajudar a identificar os pontos críticos do projeto do ponto de vista de suporte e portabilidade entre plataformas.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-6364091768507549857?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/v1NrObQdgnb3JFFVDBtBuO0ui30/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v1NrObQdgnb3JFFVDBtBuO0ui30/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/v1NrObQdgnb3JFFVDBtBuO0ui30/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v1NrObQdgnb3JFFVDBtBuO0ui30/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/i9UTtTtUwu0" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=6364091768507549857" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/6364091768507549857?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/6364091768507549857?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/i9UTtTtUwu0/lista-suporte-html5-browsers.html" title="Veja o suporte dos browsers às novidades de html5, css3 e javascript" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/-MNQqzsl-paU/Twbh00quejI/AAAAAAAAA9A/vZyyQ0F5bhU/s72-c/image%25255B8%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.kelps.net/2012/01/lista-suporte-html5-browsers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YFRno5cSp7ImA9WhRWFUw.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-3412246044089612263</id><published>2012-01-02T11:21:00.001-02:00</published><updated>2012-01-02T11:31:57.429-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-02T11:31:57.429-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2010" /><category scheme="http://www.blogger.com/atom/ns#" term="Dicas" /><title>Exibir/Ocultar caracteres ocultos no Visual Studio 2010</title><content type="html">&lt;p&gt;O Visual Studio 2010 tem diversos recursos que estão muito bem escondidos nos seus vários menus e telas de configuração, mas são acessíveis por teclas de atalho. Isso é vantajoso em diversas situações pois pode agilizar a utilização desses recursos mas também pode se tornar uma irritação ou mesmo um problema se você por acaso acionar uma dessas teclas de atalho por acidente e não souber como voltar atrás. Foi o que aconteceu com um colega no trabalho recentemente.&lt;/p&gt; &lt;a name='more'&gt;&lt;/a&gt; &lt;p&gt;Por acidente esse colega acionou uma tecla de atalho do Visual Studio 2010 que ativa a exibição de caracteres ocultos (white space). Em outras palavras, o Visual studio passou a exibir todos os espaços e marcação de final de arquivo na tela. O resultado foi algo semelhante à imagem abaixo:&lt;/p&gt; &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Editor de c&amp;oacute;digo do Visual Studio 2010 com a op&amp;ccedil;&amp;atilde;o de exibir caracteres ocultos ativada" border="0" alt="Editor de c&amp;oacute;digo do Visual Studio 2010 com a op&amp;ccedil;&amp;atilde;o de exibir caracteres ocultos ativada" src="http://lh6.ggpht.com/-GqWNCPOCp2U/TwGvYB5spII/AAAAAAAAA8w/0Ag_OBz3W7I/image%25255B2%25255D.png?imgmax=800" width="408" height="196"&gt;&lt;/p&gt;  &lt;p&gt;Não parece ser algo muito irritante neste exemplo pois há pouco código, mas em arquivos com centenas de linhas de código e em arquivo com html esse modo de visualização é bastante irritante e chega a atrapalhar a produtividade pois polue visualmente a tela. Esse colega passou quase 2 meses trabalhando com essa configuração pois não conseguia encontrar um meio de desfazer e voltar ao modo normal de visualização. Ele chegou inclusive a reinstalar o Visual Studio mas não adiantou pois o instalador não removeu as configurações problematicas.&lt;/p&gt; &lt;p&gt;Hoje eu dei uma pesquisada um pouco mais a fundo e acabei encontrando a solução. A opção do menu para essa configuração se encontra em &lt;strong&gt;Edit &amp;gt; Advanced &amp;gt; View White Space&lt;/strong&gt; e pode ser acionada pela tecla de atalho &lt;strong&gt;Ctrl+E, S&lt;/strong&gt; (que foi o que aconteceu com meu colega).&lt;/p&gt; &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Menu do VS2010 mostrando a op&amp;ccedil;&amp;atilde;o Edit &amp;gt; Advanced &amp;gt; View White Space" border="0" alt="Menu do VS2010 mostrando a op&amp;ccedil;&amp;atilde;o Edit &amp;gt; Advanced &amp;gt; View White Space" src="http://lh6.ggpht.com/-SRj1adXBeTM/TwGvZa371jI/AAAAAAAAA84/8x8AP5CB8nA/image%25255B5%25255D.png?imgmax=800" width="625" height="469"&gt;&lt;/p&gt; &lt;p&gt;Mas existe mais um “alerta” aqui: O submenu Advanced só aparece se houver um arquivo de código aberto. Se o seu Visual Studio não estiver com um arquivo de código aberto ou estiver em modo design, esse submenu não aparece e, consequentemente fica impossível achar a configuração apenas explorando a interface do Visual Studio.&lt;/p&gt; &lt;p&gt;Portanto, tome cuidado com as combinações de teclas que usa e não saia digitando teclas aleatórias enquanto estiver pressionando as teclas &lt;strong&gt;Ctrl&lt;/strong&gt; ou &lt;strong&gt;Alt&lt;/strong&gt;, pois você pode acionar acidentalmente uma configuração oculta do Visual Studio ou mesmo executar uma ação indesejada (como fazer um check-in de código incompleto, por exemplo).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-3412246044089612263?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iJ35Iw7hapmCrZuALcbwAbZ_k4k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iJ35Iw7hapmCrZuALcbwAbZ_k4k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iJ35Iw7hapmCrZuALcbwAbZ_k4k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iJ35Iw7hapmCrZuALcbwAbZ_k4k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/1oNWd4yNbU8" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=3412246044089612263" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/3412246044089612263?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/3412246044089612263?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/1oNWd4yNbU8/exibir-caracteres-ocultos-vs2010.html" title="Exibir/Ocultar caracteres ocultos no Visual Studio 2010" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-GqWNCPOCp2U/TwGvYB5spII/AAAAAAAAA8w/0Ag_OBz3W7I/s72-c/image%25255B2%25255D.png?imgmax=800" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.kelps.net/2012/01/exibir-caracteres-ocultos-vs2010.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIESH88cCp7ImA9WhRQGUo.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-7156779786176919698</id><published>2011-12-15T16:24:00.001-02:00</published><updated>2011-12-15T16:25:09.178-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-15T16:25:09.178-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="IE" /><title>Atualizações automáticas silenciosas no Internet Explorer a partir de Janeiro/2012</title><content type="html">&lt;p&gt;Uma excelente notícia para quem desenvolve para Web: Hoje &lt;a href="http://windowsteamblog.com/members/rgavin/default.aspx" target="_blank"&gt;Ryan Gavin&lt;/a&gt; anunciou no &lt;a href="http://windowsteamblog.com/ie/b/ie/" target="_blank"&gt;blog oficial do Internet Explorer (em inglês)&lt;/a&gt; os &lt;a href="http://windowsteamblog.com/ie/b/ie/archive/2011/12/15/ie-to-start-automatic-upgrades-across-windows-xp-windows-vista-and-windows-7.aspx" target="_blank"&gt;planos para implementação de atualizações automáticas silenciosas no IE&lt;/a&gt;, começando já em&lt;strong&gt; janeiro de 2012&lt;/strong&gt; no &lt;strong&gt;Brasil&lt;/strong&gt; e Austrália (isso mesmo, Brasil fará parte do piloto).&lt;/p&gt; &lt;p&gt;Essas atualizações ocorrerão, como o próprio nome diz, de forma automática e silenciosa, sem necessidade de nenhuma intervenção do usuário e possivelmente (pele menos é o que esperamos) sem reiniciar o computador. Esse tipo de atualização já é comum para usuários do Google Chrome.&lt;/p&gt; &lt;p&gt;Mesmo sendo automáticas e sem intervenção, ainda será possível optar por não atualizar (há casos de empresas que têm aplicações que dependem de versões específicas do browser e não podem simplesmente atualizar), ou mesmo remover a atualização e voltar para a versão anterior, mas o padrão agora será a atualização automática para a última versão.&lt;/p&gt; &lt;p&gt;A atualização será para a última versão disponível na plataforma do usuário, ou seja, usuários do Windows XP receberão o IE8 e usuários do Vista e Windows 7 receberão o IE9 (e IE10, quando for lançado).&lt;/p&gt; &lt;p&gt;Agora é esperar que essa atualização realmente diminua de forma substancial o tamanho da base instalada de IE6 e IE7 (e talvez IE8 também, mas não tanto) para que possamos desenvolver sites e aplicações com mais tranquilidade e menos dores de cabeça, além de ajudar a convencer os clientes de que não será mais tão imprescindível suportar versões tão antigas do browser da Microsoft.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoftinsidersbrasil.com.br/BlogMicrosoftBrasil.aspx?cod=346" target="_blank"&gt;versão traduzida para português do post sobre este anuncio&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-7156779786176919698?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5IPrHnuUliuxKWx8MJP6LKOwvuI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5IPrHnuUliuxKWx8MJP6LKOwvuI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5IPrHnuUliuxKWx8MJP6LKOwvuI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5IPrHnuUliuxKWx8MJP6LKOwvuI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/lqXk9uM4dnA" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=7156779786176919698" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/7156779786176919698?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/7156779786176919698?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/lqXk9uM4dnA/atualizacao-automatica-ie.html" title="Atualizações automáticas silenciosas no Internet Explorer a partir de Janeiro/2012" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.kelps.net/2011/12/atualizacao-automatica-ie.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4AQnk4eSp7ImA9WhdUGU0.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-5719689588785231315</id><published>2011-10-05T22:18:00.000-03:00</published><updated>2011-10-06T10:15:43.731-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-06T10:15:43.731-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Steve Jobs" /><title>Steve Jobs, 1955 - 2011</title><content type="html">&lt;p&gt;Não sou um Mac, sou um PC, mas isso não muda em nada o fato de que o mundo ficou um pouco mais feio e triste hoje, com a perda de Steve Jobs para um câncer no pâncreas.&lt;/p&gt; &lt;p&gt;&lt;a title="Homenagem na Wired.com &amp;agrave; Steve Jobs" href="http://www.wired.com/" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Homenagem na Wired.com &amp;agrave; Steve Jobs" border="0" alt="Homenagem na Wired.com &amp;agrave; Steve Jobs" src="http://lh4.ggpht.com/-MmKLRWrfhYQ/To2Ge5mHxgI/AAAAAAAAA7A/6jCMwdi9-vE/s288/rip-jobs.jpg" width="313" height="226"&gt;&lt;/a&gt;&amp;nbsp;&lt;a title="Nota na Apple.com sobre o falecimento de Jobs." href="http://www.apple.com/stevejobs/" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Nota na Apple.com sobre o falecimento de Jobs." border="0" alt="Nota na Apple.com sobre o falecimento de Jobs." src="http://lh3.ggpht.com/-Ghqi_EDFxv8/To2Get4nSKI/AAAAAAAAA68/uTnu02pr5Rw/s288/rip-steve.jpg" width="297" height="226"&gt;&lt;/a&gt;&lt;/p&gt; &lt;a name='more'&gt;&lt;/a&gt; &lt;p&gt;Desde quando comecei minha carreira como desenvolvedor, em 2000, eu trabalho com PCs e tecnologia primariamente da Microsoft, então acho que deve ser no mínimo estranho me ver fazendo aqui um post sobre o falecimento de Steve Jobs, mas ninguém pode negar que ele revolucionou todo o mercado de tecnologia.&lt;/p&gt; &lt;p&gt;Minha carreira começou como programador web, mas eu sempre me interessei bastante em fazer as coisas de forma a serem simples para o usuário (e se possível, para o desenvolvedor também). Na época esse conceito não tinha um nome nem era muito difundido, mas hoje chamamos de UX (experiência do usuário). Em toda minha carreira eu me dediquei a criar software seguindo o que considerava a melhor experiência possível. Comecei a focar mais intensamente nessa área a partir de 2007, com o surgimento do Silverlight, inicio da difusão do HTML5 e a crescente atenção dada pela Microsoft a design e UX. Hoje, sou o especialista de UX e novas tecnologias na &lt;a href="http://www.webfoundations.com.br" target="_blank"&gt;empresa onde trabalho&lt;/a&gt; e adoro o que faço. Devo muito ao Steve, pois se há alguém responsável por UX finalmente ter se tornado um assunto importante, ele foi esse alguém.&lt;/p&gt; &lt;p&gt;O único iProduto que tenho é um iPod Touch, que foi comprado 6 meses atrás quando eu estava ajudando em um projeto para portar uma aplicação de iOS para Windows Phone 7. É um bom aparelho e não me arrependo da compra, mas uso apenas para jogar e fazer testes de desenvolvimento. &lt;/p&gt; &lt;p&gt;Apesar de eu não ser muito fã da linguagem de design dos softwares da Apple, é impossível negar o impacto que eles têm no nosso mercado atual. Steve mudou o mundo ao mostrar que a experiência do usuário é o mais importante, não a tecnologia. As coisas devem ser fáceis de usar, simples de entender, práticas e belas ao mesmo tempo. Se não tiver esses 4 requisitos, não terá o sucesso que poderia ter.&lt;/p&gt; &lt;p&gt;A morte de Steve serve também para mostrar que ele era humano, como nós. Um humano extraordinário, mas humano, o que significa que todos temos esse potencial de mudar o mundo, fazer a diferença, mas apenas poucos conseguimos.&lt;/p&gt; &lt;p&gt;Para mostrar como Steve Jobs foi importante, basta olhar para quem já fez algum pronunciamento sobre seu falecimento e prestar atenção na mensagem que cada um tentou passar: &lt;a title="Nota de Bill Gates no Twitter - &amp;quot;Para aqueles de n&amp;oacute;s sortudos o suficiente em ter trabalhado com ele, foi uma honra enorme. Sentirei falta de Steve imensamente.&amp;quot;" href="http://twitter.com/#!/BillGates/status/121746029308678145" target="_blank"&gt;Bill Gates&lt;/a&gt;, &lt;a title="Nota de Barak Obama - &amp;quot;Ele mudou a forma com cada um de n&amp;oacute;s v&amp;ecirc; o mundo&amp;quot;" href="http://www.whitehouse.gov/blog/2011/10/05/president-obama-passing-steve-jobs-he-changed-way-each-us-sees-world" target="_blank"&gt;Barak Obama&lt;/a&gt;, &lt;a title="Michael Bloomberg (prefeito de NY) - &amp;quot;Hoje a Am&amp;eacute;rica perdeu um g&amp;ecirc;nio que ser&amp;aacute; lembrado ao lado de Edison e Einstein...&amp;quot;" href="http://www.mikebloomberg.com/index.cfm?objectid=D6B0FDDF-C29C-7CA2-FB86D55317402D79" target="_blank"&gt;Michael Bloomberg&lt;/a&gt;, &lt;a title="Steve Wozniak  - &amp;quot;N&amp;oacute;s perdemos algo que jamais iremos recuperar&amp;quot;" href="http://hosted2.ap.org/APDEFAULT/f70471f764144b2fab526d39972d37b3/Article_2011-10-06-Obit-Jobs-Wozniak/id-21c4598911374e7399c08867cc3f8885" target="_blank"&gt;Steve Wozniak&lt;/a&gt;, e muitos outros que nem dá pra citar aqui.&lt;/p&gt; &lt;p&gt;Por tudo isso, obrigado Steve. O mundo ficou um pouco mais feio e triste hoje. Meus mais sinceros sentimentos a todos seus amigos e familiares. Descanse em paz.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-5719689588785231315?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-JRMo2fBNy_aR6xaCO67tOrHzOk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-JRMo2fBNy_aR6xaCO67tOrHzOk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-JRMo2fBNy_aR6xaCO67tOrHzOk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-JRMo2fBNy_aR6xaCO67tOrHzOk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/_4DwUqyemlY" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=5719689588785231315" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/5719689588785231315?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/5719689588785231315?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/_4DwUqyemlY/rip-steve-jobs.html" title="Steve Jobs, 1955 - 2011" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/-MmKLRWrfhYQ/To2Ge5mHxgI/AAAAAAAAA7A/6jCMwdi9-vE/s72-c/rip-jobs.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.kelps.net/2011/10/rip-steve-jobs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYGQnw4fip7ImA9WhdUFUQ.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-7879082435883768258</id><published>2011-10-02T19:01:00.001-03:00</published><updated>2011-10-02T19:05:23.236-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-02T19:05:23.236-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TechEd" /><category scheme="http://www.blogger.com/atom/ns#" term="Download" /><category scheme="http://www.blogger.com/atom/ns#" term="Código" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight 5" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><title>Exemplo do novo PivotViewer do Silverlight 5 apresentado no TechEd Brasil 2011</title><content type="html">&lt;p&gt;Na &lt;a href="http://blog.kelps.net/2011/08/lista-palestras-teched11.html"&gt;palestra de Silverlight 5&lt;/a&gt; que apresentei este ano com &lt;a title="Twitter: Rodrigo Kono" href="http://twitter.com/rodrigokono"&gt;Rodrigo Kono&lt;/a&gt; no &lt;a href="http://www.teched.com.br"&gt;TechEd Brasil&lt;/a&gt;, mostramos a nova versão do PivotViewer que vem no SDK do Silverlight 5.&lt;/p&gt; &lt;p&gt;Esta nova versão tem diversas melhorias, principalmente no que diz respeito à forma de montar e utilizar a coleção de dados. Nesta nova versão não é mais necessário pré-processar a coleção usando Excel ou DeepZoom Composer e praticamente tudo pode ser feito usando Binding.&lt;/p&gt; &lt;p&gt;Abaixo tem um link para fazer download do código fonte do exemplo que apresentamos. Para usar&amp;nbsp; este exemplo é necessário ter instalado o Tools do Silverlight 5 RC. Em breve vou publicar novos posts com mais detalhes sobre esta e outras novidades do Silverlight 5, mas por enquanto, aproveitem este exemplo.&lt;/p&gt; &lt;p&gt;&lt;a title="PivotViewerSample.zip" href="https://skydrive.live.com/self.aspx/Exemplos%20Blog/PivotViewerSample.zip?cid=c15a3c05f395fee5"&gt;&lt;img src="http://secure.wlxrs.com/1ZnS7zxdhAO5PBVJ5oK5JQ/images/icons/Small/Zip.png"&gt;PivotViewerSample.zip&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-7879082435883768258?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rNOBx1lvjjk8GCQHtrvW1aSUvNY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rNOBx1lvjjk8GCQHtrvW1aSUvNY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rNOBx1lvjjk8GCQHtrvW1aSUvNY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rNOBx1lvjjk8GCQHtrvW1aSUvNY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/excqvXbG96I" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=7879082435883768258" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/7879082435883768258?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/7879082435883768258?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/excqvXbG96I/pivotviewer-silverlight-5.html" title="Exemplo do novo PivotViewer do Silverlight 5 apresentado no TechEd Brasil 2011" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.kelps.net/2011/10/pivotviewer-silverlight-5.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQHQnY-fyp7ImA9WhdUFUQ.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-1399288825436054613</id><published>2011-10-01T10:13:00.000-03:00</published><updated>2011-10-02T19:25:33.857-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-02T19:25:33.857-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MVP" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><title>Fui nomeado MVP em Silverlight por mais 1 ano!</title><content type="html">&lt;p&gt;&lt;a href="https://mvp.support.microsoft.com/profile=10F4FD38-C58A-4232-9F7A-398EC5C12E54"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="MVP_Horizontal_FullColor" border="0" alt="MVP_Horizontal_FullColor" src="http://lh6.ggpht.com/-Tbz9tAZwO_w/Tojkch4L-mI/AAAAAAAAA6U/q5My8mCPltg/MVP_Horizontal_FullColor%25255B4%25255D.png?imgmax=800" width="240" height="97"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Acabei de receber o comunicado oficial da Microsoft de que fui nomeado como MVP de Silverlight pelo segundo ano consecutivo.&lt;/p&gt; &lt;p&gt;Devo esse título a todos vocês que, assim como, eu adoram essa tecnologia. Estou muito animado com todas as novidades que a Microsoft vem anunciando e com a crescente importância que o XAML está ganhando em todas suas principais plataformas de desenvolvimento. Espero continuar fazendo parte dessa comunidade por muitos anos ainda. &lt;/p&gt; &lt;p&gt;Que venha mais um ano de muito XAML para todos nós!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-1399288825436054613?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/W8dCUSVONSHSkalXlXJXDELdT7U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/W8dCUSVONSHSkalXlXJXDELdT7U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/W8dCUSVONSHSkalXlXJXDELdT7U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/W8dCUSVONSHSkalXlXJXDELdT7U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/TXnbz0z63Pk" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=1399288825436054613" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/1399288825436054613?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/1399288825436054613?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/TXnbz0z63Pk/mvp-silverlight-novamente.html" title="Fui nomeado MVP em Silverlight por mais 1 ano!" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-Tbz9tAZwO_w/Tojkch4L-mI/AAAAAAAAA6U/q5My8mCPltg/s72-c/MVP_Horizontal_FullColor%25255B4%25255D.png?imgmax=800" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.kelps.net/2011/10/mvp-silverlight-novamente.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8MQnYzfyp7ImA9WhdQEks.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-6465022608991747822</id><published>2011-08-09T11:44:00.001-03:00</published><updated>2011-08-13T17:54:43.887-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-13T17:54:43.887-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TechEd" /><category scheme="http://www.blogger.com/atom/ns#" term="Eventos" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Phone 7" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight 5" /><title>Minhas palestras confirmadas para o TechEd 2011</title><content type="html">&lt;p&gt;&lt;a href="http://www.teched.com.br/"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="TechEd Brasil 2011" border="0" alt="TechEd Brasil 2011" src="http://lh6.ggpht.com/-zVZi2ka870w/TkbkklAp-CI/AAAAAAAAA54/tjV86jHNHc4/image%25255B5%25255D.png?imgmax=800" width="591" height="159"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Saiu a &lt;a href="http://www.teched.com.br/Conteudo/Palestras"&gt;lista de palestras do TechEd Brasil 2011&lt;/a&gt;. Para o evento deste ano eu tenho 2 palestras confirmadas, ambas em parceria com o amigo &lt;a title="Rodrigo Kono no Twitter" href="http://twitter.com/rodrigokono"&gt;Rodrigo Kono&lt;/a&gt;. As palestras serão:&lt;/p&gt; &lt;p&gt; &lt;h4&gt;WEB303 – Novidades do Silverlight 5&lt;/h4&gt;&lt;br&gt;Venha ver o que há de novo e emocionante no Silverlight 5. Aprenda sobre os recursos para o desenvolvimento de aplicações de negócios, visualização e jogos. Nesta sessão iremos apresentar os principais recursos do Silverlight 5 assim como as atividades futuras desta tecnologia. Esteja preparado para ser produtivo com a última versão do Silverlight.&lt;br&gt;Palestrantes : &lt;a title="Kelps no Twitter" href="http://twitter.com/kelps"&gt;Kelps Leite de Sousa&lt;/a&gt; e &lt;a title="Rodrigo Kono no Twitter" href="http://twitter.com/rodrigokono"&gt;Rodrigo Kono&lt;/a&gt;  &lt;p&gt; &lt;h4&gt;WPH305 – XAML Avançado para Windows Phone 7&lt;/h4&gt;&lt;br&gt; &lt;p&gt;Entenda o que é e como funciona o XAML e aprenda a aproveitar suas capacidades ao máximo, criando aplicações de alta padrão para Windows Phone 7. Nessa palestra serão abordados temas como Binding, Templates, Styles, Value Converters, Dependency e Attached Properties. Também será demonstrado como utilizar ferramentas como Visual Studio e Expression Blend para trabalhar com XAML de forma eficiente e como trabalhar em uma equipe composta de designers e desenvolvedores. &lt;br&gt;Palestrantes : &lt;a title="Kelps no Twitter" href="http://twitter.com/kelps"&gt;Kelps Leite de Sousa&lt;/a&gt; e &lt;a title="Rodrigo Kono no Twitter" href="http://twitter.com/rodrigokono"&gt;Rodrigo Kono&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Assim que eu tiver mais detalhes sobre as palestas (como dias e horários) publicarei aqui. Espero vocês lá!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-6465022608991747822?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HTV0kah0pg99HC_N12xOR5DyHaw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HTV0kah0pg99HC_N12xOR5DyHaw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HTV0kah0pg99HC_N12xOR5DyHaw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HTV0kah0pg99HC_N12xOR5DyHaw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/r6imRvOcMAM" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=6465022608991747822" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/6465022608991747822?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/6465022608991747822?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/r6imRvOcMAM/lista-palestras-teched11.html" title="Minhas palestras confirmadas para o TechEd 2011" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-zVZi2ka870w/TkbkklAp-CI/AAAAAAAAA54/tjV86jHNHc4/s72-c/image%25255B5%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.kelps.net/2011/08/lista-palestras-teched11.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4BQ38yeCp7ImA9WhdSGUU.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-7237669375451760073</id><published>2011-07-29T20:08:00.001-03:00</published><updated>2011-07-29T20:09:12.190-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-29T20:09:12.190-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight 4" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><category scheme="http://www.blogger.com/atom/ns#" term="Expression Gallery" /><category scheme="http://www.blogger.com/atom/ns#" term="Behavior" /><title>ClickCountTrigger para Silverlight no Expression Gallery</title><content type="html">&lt;p&gt;&lt;a href="http://lh6.ggpht.com/-KGrFLZdzBmU/TjM9WlVwxWI/AAAAAAAAA5c/EdmwwJTi268/s1600-h/double-click-icon%25255B9%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="double-click-icon" border="0" alt="double-click-icon" align="left" src="http://lh6.ggpht.com/-jjQ4v65KZKY/TjM9XNtaQQI/AAAAAAAAA5g/7oaFW3VxOkU/double-click-icon_thumb%25255B7%25255D.png?imgmax=800" width="60" height="60"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt; Acabei de publicar uma nova trigger no &lt;a href="http://gallery.expression.microsoft.com/site/search?f%5B0%5D.Type=User&amp;amp;f%5B0%5D.Value=Kelps%20Leite%20de%20Sousa&amp;amp;f%5B0%5D.Text=Kelps%20Leite%20de%20Sousa&amp;amp;sortBy=Date"&gt;Expression Gallery&lt;/a&gt;, chamada &lt;a href="http://gallery.expression.microsoft.com/ClickCountTrigger"&gt;ClickCountTrigger&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Esta trigger serve para simplificar nossa vida quando queremos implementar duplo click em Silverlight, já que a plataforma não fornece uma implementação nativa desse evento. Decidi fazer a trigger de forma genérica e por isso implementei como click count ao invés de double click. Sendo assim, tornei possível que essa trigger seja utilizada para adicionar cliques triplos, quaduplos ou até mais em aplicações Silverlight. Eu não consigo imaginar situações onde mais do que 3 cliques façam algum sentido, mas a minha imaginação não deve limitar a sua &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh6.ggpht.com/-BmNrKVoVJN4/TjM9XZdpoEI/AAAAAAAAA5k/JHOrxOqHguY/wlEmoticon-winkingsmile%25255B2%25255D.png?imgmax=800"&gt;.&lt;/p&gt; &lt;p&gt;Para configurar a trigger no Expression Blend, basta escolher um controle que deverá ter algum comportamento ao receber um duplo click, adicionar uma Action a ele e depois mudar a trigger padrão dessa Action para ClickCountTrigger e configurar quantos cliques disparam a ação. Abaixo temos alguns prints mostrando a trigger configurada em um botão, em conjunto com a Action &lt;a href="http://gallery.expression.microsoft.com/FullScreenAction"&gt;ToggleFullScreenAction&lt;/a&gt;. Este exemplo é do código do live sample que está na página da trigger na galeria.&lt;/p&gt; &lt;p&gt;Action aplicada no botão&lt;/p&gt; &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Action ToggleFullScreenAction configurada em um Button" border="0" alt="Action ToggleFullScreenAction configurada em um Button" src="http://lh4.ggpht.com/-Xr6wRUm8OyU/TjM9Xwz5VVI/AAAAAAAAA5o/5NK6U3Tzn9o/image%25255B11%25255D.png?imgmax=800" width="211" height="56"&gt;&lt;/p&gt; &lt;p&gt;Janela de propriedades da Action, mostrando sua configuração e a da trigger.&lt;/p&gt; &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Propriedades da trigger ClickCountTrigger e da action de fullscreen" border="0" alt="Propriedades da trigger ClickCountTrigger e da action de fullscreen" src="http://lh3.ggpht.com/-IIETR5nYYpc/TjM9YMUbNHI/AAAAAAAAA5s/O6Gsld3QlUY/image%25255B12%25255D.png?imgmax=800" width="340" height="235"&gt;&lt;/p&gt; &lt;p&gt;Configuração da trigger e action no xaml&lt;/p&gt;&lt;pre style="line-height: normal; font-family: ; background: white; color: "&gt;&lt;font face="Consolas"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size: 9.8pt"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;Button&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#ff0000"&gt; Content&lt;/font&gt;&lt;/span&gt;&lt;font color="#0000ff"&gt;&lt;span style="color: "&gt;=&lt;/span&gt;&lt;span style="color: "&gt;"Double-Click to Toggle Full Screen"&lt;/span&gt;&lt;span style="color: "&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;i&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;Interaction.Triggers&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;cnzk&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;ClickCountTrigger&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#ff0000"&gt; ClickCount&lt;/font&gt;&lt;/span&gt;&lt;font color="#0000ff"&gt;&lt;span style="color: "&gt;=&lt;/span&gt;&lt;span style="color: "&gt;"2"&lt;/span&gt;&lt;span style="color: "&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;cnzk&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;ToggleFullScreenAction&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt; /&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;cnzk&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;ClickCountTrigger&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;i&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;Interaction.Triggers&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;Button&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Declaração no xaml dos namespaces necessários para utilizar tanto a trigger quanto a action:&lt;/p&gt;&lt;pre style="line-height: normal; font-family: ; background: white; color: "&gt;&lt;font face="Consolas"&gt;&lt;span style="color: "&gt;&lt;font color="#ff0000"&gt;&lt;font style="font-size: 9.8pt"&gt;xmlns&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#ff0000"&gt;i&lt;/font&gt;&lt;/span&gt;&lt;font color="#0000ff"&gt;&lt;span style="color: "&gt;=&lt;/span&gt;&lt;span style="color: "&gt;"http://schemas.microsoft.com/expression/2010/interactivity"&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#ff0000"&gt;cnzk&lt;/font&gt;&lt;/span&gt;&lt;font color="#0000ff"&gt;&lt;span style="color: "&gt;=&lt;/span&gt;&lt;span style="color: "&gt;"http://schemas.cnzk.com.br/library"&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Se você utilizar algumas das minhas behaviors, triggers ou actions publicadas no Expression Gallery e tiver algum tipo de feedback ou bug para reportar, pode postar um comentário aqui no blog ou na &lt;a href="http://cnzklibrary.codeplex.com/"&gt;página do projeto no codeplex&lt;/a&gt;. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Espero que esta trigger seja útil para vocês, pois pra mim ela já está sendo.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-7237669375451760073?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hAdLM5sqXfBxprmWw31ENnbjiKU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hAdLM5sqXfBxprmWw31ENnbjiKU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hAdLM5sqXfBxprmWw31ENnbjiKU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hAdLM5sqXfBxprmWw31ENnbjiKU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/v4t__xHk0Ds" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=7237669375451760073" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/7237669375451760073?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/7237669375451760073?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/v4t__xHk0Ds/clickcount-trigger-silverlight-gallery.html" title="ClickCountTrigger para Silverlight no Expression Gallery" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-jjQ4v65KZKY/TjM9XNtaQQI/AAAAAAAAA5g/7oaFW3VxOkU/s72-c/double-click-icon_thumb%25255B7%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.kelps.net/2011/07/clickcount-trigger-silverlight-gallery.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4MR3g6fip7ImA9WhdSGUo.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-6006587722196254028</id><published>2011-07-29T19:13:00.001-03:00</published><updated>2011-07-29T19:19:46.616-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-29T19:19:46.616-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Código" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><category scheme="http://www.blogger.com/atom/ns#" term="Dicas" /><title>Busca por controles na árvore visual de aplicações Silverlight e WPF</title><content type="html">&lt;p&gt;Ontem eu vi uma pergunta no &lt;a href="http://social.msdn.microsoft.com/Forums/pt-BR/silverlightpt/threads"&gt;fórum de Silverlight do MSDN&lt;/a&gt; sobre &lt;a href="http://social.msdn.microsoft.com/Forums/pt-BR/silverlightpt/thread/d862de91-2e02-4808-9d55-9c7157e99e26"&gt;como achar todos os campos TextBox que existem dentro de uma ChildWindow&lt;/a&gt;. Já havia algumas respostas para a pergunta mas elas eram bem pontuais para aquele problema específico e necessitavam de várias suposições sobre a estrutura da aplicação para funcionar sem problemas (por exemplo, saber quais tipos de Panel estão sendo usados). Alguns anos atrás, quando eu comecei a fazer uma das minhas primeiras behaviors para publicar na &lt;a href="http://gallery.expression.microsoft.com/site/search?f%5B0%5D.Type=User&amp;amp;f%5B0%5D.Value=Kelps%20Leite%20de%20Sousa&amp;amp;f%5B0%5D.Text=Kelps%20Leite%20de%20Sousa"&gt;galeria do Expression Blend&lt;/a&gt;, eu descobri uma classe do Silverlight (também existe no WPF) que serve justamente para permitir navergarmos na árvore visual de uma aplicação, tanto procurando controles filhos quanto pais de um determinado controle.&lt;/p&gt; &lt;p&gt;A behavior em questão é a que permitia que se fizesse &lt;a href="http://gallery.expression.microsoft.com/MouseWheelScroll"&gt;scroll com a wheel do mouse (a rodinha) em controles que apresentassem scrollbar para aplicações feitas em Silverlight 3&lt;/a&gt;. Hoje essa behavior praticamente não é mais necessárias pois o Silverlight 4 já implementa esse comportamento nativamente, mas não era esse o caso na época. Para poder implementar essa função eu precisei criar um código que fosse capaz de ler toda a hierarquia visual do controle (vasculhando todos os componentes do qual o template do controle era composto), procurando por algum ScrollViewer. Se eu o encontrasse, a behavior assinava os eventos necessários do controle para que o scroll funcionasse como esperado.&lt;/p&gt; &lt;p&gt;Para navegar pela árvore visual, a classe que utilizei foi a VisualTreeHelper. Voltando à dúvida do fórum, eu decidi criar um método genérico que fosse capaz de encontrar todos os controles de um determinado tipo em uma hierárquia utilizando essa classe, assim estaria garantindo que não precisaria ficar colocando “if”s para cada tipo de painel diferente que aparecesse na minha frente. Sem mais delongas, segue abaixo o método que eu fiz.&lt;/p&gt;&lt;pre style="line-height: normal; font-family: ; background: white; color: "&gt;&lt;font face="Consolas"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size: 9.8pt"&gt;public&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; T[] SearchUIElements&amp;lt;T&amp;gt;(&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;UIElement&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; root, &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; maxlevel = &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.MaxValue, &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; level = 0) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;where&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; T : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;UIElement&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; {&lt;br&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; result = &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;List&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&amp;lt;T&amp;gt;();&lt;br&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (root != &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (root &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;is&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; T) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result.Add(root &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;as&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; T);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; (level &amp;lt; maxlevel) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; childrencount = &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;VisualTreeHelper&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;.GetChildrenCount(root);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DependencyObject&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; child;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;for&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; i = 0; i &amp;lt; childrencount; i++) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; child = &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;VisualTreeHelper&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;.GetChild(root, i);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (child &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;is&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;UIElement&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result.AddRange(SearchUIElements&amp;lt;T&amp;gt;(child &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;as&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;UIElement&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;font color="#000000"&gt;, maxlevel, level + 1));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; result.ToArray();&lt;br&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Como vocês podem ver o método não é grande e é bem simples. Ele aceita 3 parâmetros:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;root&lt;/strong&gt;: controle raiz a partir de onde será iniciada a busca. Por exemplo: LayoutRoot. &lt;br /&gt;&lt;li&gt;&lt;strong&gt;maxlevel&lt;/strong&gt;: número máximo de níveis que a busca irá “descer” nos descendentes. Este parâmetro é opcional e o seu valor padrão é int.MaxValue, garantindo que será lida a hierarquia inteira a partir do ponto inicial. &lt;br /&gt;&lt;li&gt;&lt;strong&gt;level&lt;/strong&gt;: nível atual da busca. Esse parâmetro é utilizado apenas pela própria função para controlar quando a busca atingirá o nível máximo solicitado pelo usuário.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;A função é genérica. O parâmetro T serve para indicar qual tipo de controle será procurado, assim como permitir que o retorno sejá tipado corretamente. A é executada de forma recursiva, chamando a si mesma para cada novo ítem na hierarquia.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;O resultado da função é sempre um array do tipo de controle solicitado. Esta função sempre retorna uma array, mesmo que seja vazio (não será retornado null). &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Abaixo temos um xaml de exemplo e algumas chamada à função com a descrição do que será encontrado em cada caso.&lt;/p&gt;&lt;pre style="line-height: normal; font-family: ; background: white; color: "&gt;&lt;font face="Consolas"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size: 9.8pt"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;Grid&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#ff0000"&gt; x&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#ff0000"&gt;Name&lt;/font&gt;&lt;/span&gt;&lt;font color="#0000ff"&gt;&lt;span style="color: "&gt;=&lt;/span&gt;&lt;span style="color: "&gt;"LayoutRoot"&lt;/span&gt;&lt;span style="color: "&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;TextBox&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt; /&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;TextBox&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt; /&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;Grid&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;TextBox&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt; /&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;TextBox&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt; /&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;Grid&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;TextBox&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt; /&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;Grid&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;Grid&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;Grid&lt;/font&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="line-height: normal; font-family: ; background: white; color: "&gt;&lt;font face="Consolas"&gt;&lt;span style="color: "&gt;&lt;font color="#008000"&gt;&lt;font style="font-size: 9.8pt"&gt;//acha TODOS os 5 campos TextBox &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; textboxes = SearchUIElements&amp;lt;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TextBox&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&amp;gt;(LayoutRoot);&lt;br /&gt; &lt;br /&gt;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#008000"&gt;//acha apenas os 2 campos TextBox de LayoutRoot&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#000000"&gt;textboxes = SearchUIElements&amp;lt;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TextBox&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&amp;gt;(LayoutRoot, 1);&lt;br /&gt; &lt;br /&gt;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#008000"&gt;//acha 4. Os 2 acima e os 2 que estão no primeiro Grid filho&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#000000"&gt;textboxes = SearchUIElements&amp;lt;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TextBox&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;font color="#000000"&gt;&amp;gt;(LayoutRoot, 2);&lt;br /&gt; &lt;br /&gt;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#008000"&gt;//acha TODOS os Grids a partir de LayoutRoot, inclusive ele mesmo &lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; grids = SearchUIElements&amp;lt;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Grid&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(LayoutRoot);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Agora que eu já mostrei como faz, você acha que consegue fazer uma função semelhante que navegue ao contrário na hierárquia? (procurando nos pais de um controle até chegar na raíz da aplicação…). Fica o desafio. &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh3.ggpht.com/-LMChAXUOhI0/TjMvydL6SvI/AAAAAAAAA5U/s0i6CGl29to/wlEmoticon-winkingsmile%25255B2%25255D.png?imgmax=800"&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-6006587722196254028?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1spKMVRzP1FfoPY8eabmLgO0UtI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1spKMVRzP1FfoPY8eabmLgO0UtI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1spKMVRzP1FfoPY8eabmLgO0UtI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1spKMVRzP1FfoPY8eabmLgO0UtI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/bQJlKedM0k8" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=6006587722196254028" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/6006587722196254028?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/6006587722196254028?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/bQJlKedM0k8/busca-arvore-visual-silverlight.html" title="Busca por controles na árvore visual de aplicações Silverlight e WPF" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-LMChAXUOhI0/TjMvydL6SvI/AAAAAAAAA5U/s0i6CGl29to/s72-c/wlEmoticon-winkingsmile%25255B2%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.kelps.net/2011/07/busca-arvore-visual-silverlight.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcMRnYzeSp7ImA9WhdSGUo.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-5995913874916916300</id><published>2011-07-28T18:19:00.000-03:00</published><updated>2011-07-29T19:21:27.881-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-29T19:21:27.881-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="Código" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight 4" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><title>Estratégia para lidar com callbacks assíncronos em Silverlight</title><content type="html">&lt;p&gt;Recentemente, conversando com alguns desenvolvedores no trabalho e verificando algumas perguntas publicadas nos fóruns do MSDN, eu notei que ainda há uma dificuldade muito grande tanto de compreensão quanto de implementação para trabalhar com métodos assincronos. Isso se torna um problema particularmente importante em aplicações Silverlight pois todas as chamadas a web services, RIA services, web requests, etc são obrigatoriamente feitos de forma assincrona, não havendo opções para executar essas mesmas operações da forma sincrona e linear à qual a maioria dos desenvolvedores está acostumada.&lt;/p&gt; &lt;p&gt;Acontece que desenvolvimento assincrono não é difícil e, depois que você aprende e se acostuma, você acaba percebendo que suas aplicações passam a funcionar muito melhor. Sim, não vou argumentar aqui contra o fato de que é necessário se acostumar e que começo seja realmente algo estranho, mas posso garantir que demora pouco tempo para se acostumar e os benefícios são muitos.&lt;/p&gt; &lt;p&gt;Há muitas abordagens e estratégias possíveis para desenvolvimento assíncrono e eu vou apresentar aqui uma delas que é bem simples e que eu usei em praticamente todos os projetos Silverlight em dos quais participei. Essa abordagem não envolve o uso de nenhum framework ou biblioteca externa e pode ser utilizada tranquilamente também em projetos que não sejam Silverlight.&lt;/p&gt; &lt;p&gt;Digamos que você precisa obter o html de uma página web por algum motivo. Uma forma de fazer isso seria criando uma nova instância de WebClient, assinando o evento DownloadStringCompleted e depois chamando o método DownloadString passando a url. Ok, não é difícil, mas é um código repetitivo que poderia facilmente ser reaproveitado ao invés de ser copiado por toda sua aplicação em todo lugar onde você precisar fazer download de uma página. O que eu costumo fazer para esse tipo de chamada é criar um método estático em uma classe utilitária e simplesmente chamar esse método passando, nesse caso, minha url e um ponteiro de callback. É mais fácil mostrar:&lt;/p&gt;&lt;pre style="line-height: normal; font-family: ; background: white; color: "&gt;&lt;font face="Consolas"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size: 9.8pt"&gt;public&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; HttpGet(&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; url, Action&amp;lt;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Exception&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&amp;gt; callback) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (!&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;.IsNullOrWhiteSpace(url)) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; client = &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;WebClient&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; client.DownloadStringCompleted += (sender, e) =&amp;gt; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (callback != &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;font color="#000000"&gt;) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; callback(e.Result, e.Error);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; client.DownloadStringAsync(&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Uri&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;(url));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Quais são as vantagens desse método:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;para executá-lo não é necessário instanciar nenhuma classe &lt;br /&gt;&lt;li&gt;é facil de reutilizar &lt;br /&gt;&lt;li&gt;permite que a lógica da minha aplicação fique um pouco mais simples, já que não me obriga a assinar nenhum evento no meu código&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Para executar esse método, eu posso usar 2 abordagens.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Abordagem 1 – Delegar o retorno para outro método. Nessa abordagem eu chamo o método HttpGet passando a url desejada e o ponteiro de um método que será executado quando o request for concluído.&lt;/p&gt;&lt;pre style="line-height: normal; font-family: ; background: white; color: "&gt;&lt;font face="Consolas"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size: 9.8pt"&gt;private&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; LoadData() {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpGet(&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;"http://kelps.net"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;, DataLoaded);&lt;br&gt;}&lt;br&gt; &lt;/font&gt;&lt;br&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; DataLoaded(&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; data, &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Exception&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; error) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (error == &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;font color="#000000"&gt;) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#008000"&gt;//utiliza os dados retornados na variável "data"&lt;/font&gt;&lt;/span&gt;&lt;br&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Abordagem 2 – Utilizar uma expressão lambda para criar um método anônimo inline no meu código, ao invés de criar uma função separada apenas para processar os dados retornados.&lt;/p&gt;&lt;pre style="line-height: normal; font-family: ; background: white; color: "&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.8pt"&gt;HttpGet(&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;"http://twitter.com/kelps"&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;, (data, error) =&amp;gt; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (error == &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size: 9.8pt"&gt;&lt;font color="#000000"&gt;) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#008000"&gt;//utiliza os dados retornados na variável "data"&lt;/font&gt;&lt;/span&gt;&lt;br&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;});&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;A única diferença de funcionamento entre as 2 abordagens acima é que na segunda seria possível utilizar variáveis que estiverem no mesmo escopo da chamada que está sendo feita, ao passo que na primeira seria necessário que essas variáveis fossem globais da classe para que isso funcione. Nos projetos em que trabalho eu costumo utilizar ambas as abordagens, de acordo com o que faz mais sentido em cada situação. Expressões lambda são bem concisas e compactas, mas são claras para qualquer desenvolvedor. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Este foi apenas um pequeno exemplo de como trabalhar com chamadas assincronas sem ficar se perdendo com assinaturas e liberação de eventos. Há outras formas mais complexas e robustas de lidar com isso mas a minha intenção hoje era simplesmente mostrar como dá pra trabalhar de forma simples com código assíncrono, mesmo sem utilizar nenhuma biblioteca externa.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-5995913874916916300?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iCDC9AmqIx2D9oOWUZJIK5KKyz0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iCDC9AmqIx2D9oOWUZJIK5KKyz0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iCDC9AmqIx2D9oOWUZJIK5KKyz0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iCDC9AmqIx2D9oOWUZJIK5KKyz0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/aFzapDOQINw" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=5995913874916916300" title="1 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/5995913874916916300?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/5995913874916916300?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/aFzapDOQINw/estrategia-callback-assincrono.html" title="Estratégia para lidar com callbacks assíncronos em Silverlight" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.kelps.net/2011/07/estrategia-callback-assincrono.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cFSHg5eCp7ImA9WhdREUk.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-935871383117293563</id><published>2011-07-27T20:19:00.000-03:00</published><updated>2011-07-31T16:36:59.620-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-31T16:36:59.620-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Download" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Phone 7" /><category scheme="http://www.blogger.com/atom/ns#" term="Beta" /><title>Windows Phone SDK 7.1 Beta 2 Refresh disponível para desenvolvedores</title><content type="html">&lt;p&gt;Quem está participando do beta do Windows Phone Mango para desenvolvedores recebeu uma agradável notícia hoje: Foi disponibilizada uma atualização para os aparelhos com um build mais recente do sistema operacional.&lt;/p&gt; &lt;p&gt;O novo build é o 7712, não o 7720, que é a versão RTM. Foi necessário que usássemos essa versão anterior pois é a versão que é compativel com a atualização do SDK e do Zune que estão sendo disponibilizadas neste refresh.&lt;/p&gt; &lt;p&gt;Está previsto que até o final de agosto O Marketplace será aberto para começarmos a publicar aplicações que funcionarão apenas em aparelhos com Windows Phone 7.5, o que nos dará uma chance de testar bem nossas aplicações em vários aparelhos de desenvolvedores antes que esta versão do SO esteja disponível para o público geral. Isso é interessante pois significa que quando a nova versão do SO estiver disponível para o público já haverá várias aplicações no Marketplace tirando proveito das novas capacidades do sistema operacional. Esta atualização de agosto provavelmente virá junto com uma versão RC (Release Candidate) do SDK. &lt;/p&gt; &lt;p&gt;Se você é um desenvolvedor cadastrado no Marketplace, tem um aparelho com Windows Phone e está participando do Beta do Windows Phone Mango, vá agora mesmo ao Connect e instale este refresh, mas não se esqueça de fazer backup dos backups dos seus backups antes de fazer isso, para garantir que você conseguirá voltar o seu telefone para a versão normal quando a versão RTM estiver disponível pois não será possível ir da versão beta diretamente para a versão RTM do WP7.&lt;/p&gt; &lt;p&gt;PS.: Quando você instalar o novo SDK ele vai aparecer como sendo RC na janela de adicionar e remover programas do Windows, mas na verdade esta ainda não é a versão RC do SDK.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-935871383117293563?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kKbKNGnyjVK1SgihM0KqStJ1m9M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kKbKNGnyjVK1SgihM0KqStJ1m9M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kKbKNGnyjVK1SgihM0KqStJ1m9M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kKbKNGnyjVK1SgihM0KqStJ1m9M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/xwWu7n-8ym4" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=935871383117293563" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/935871383117293563?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/935871383117293563?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/xwWu7n-8ym4/wp71-beta2-refresh.html" title="Windows Phone SDK 7.1 Beta 2 Refresh disponível para desenvolvedores" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.kelps.net/2011/07/wp71-beta2-refresh.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEHRng-eCp7ImA9WhdREUw.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-6286997308106208899</id><published>2011-07-04T10:08:00.000-03:00</published><updated>2011-07-31T10:23:57.650-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-31T10:23:57.650-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="The Developer's Conference" /><category scheme="http://www.blogger.com/atom/ns#" term="Eventos" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight 5" /><category scheme="http://www.blogger.com/atom/ns#" term="Palestras" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><title>Palestra sobre as novidades do Silverlight 5 no TDC2011/SP</title><content type="html">&lt;p&gt;Na próxima sexta-feira, dia 08/07 eu irei apresentar uma palestra sobre as novidades do Silverlight 5 no &lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/index.html#saopaulo"&gt;TDC 2011&lt;/a&gt;. Se você não se inscreveu ainda, ainda dá tempo. &lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/inscricoes#saopaulo"&gt;A inscrição no evento é feita por trilha&lt;/a&gt;, o que o torna bem mais barato. A palestra de Silverilght 5 será na trilha “.NET Client” que acontecerá no dia 08/07 e o preço do evento por trilha é R$ 60,00. &lt;/p&gt; &lt;p&gt;Para quem não sabe, o TDC (The Developer’s Conference) é uma conferencia de baixo custo sobre desenvolvimento que acontece todos os anos em várias e abrange várias tecnologias. Este ano a conferencia acontecerá em São Paulo (06/07 a 10/07), Florianópolis (20/08 e 21/08) e Goiânia (28/10 e 29/10).&lt;/p&gt; &lt;p&gt;Veja abaixo a &lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/saopaulo/trilha-dot-net-client#programacao"&gt;lista de palestras da trilha .NET Client de São Paulo&lt;/a&gt;, que acontecerá no dia 08/07.&lt;/p&gt; &lt;p&gt;&lt;a title="Programa&amp;ccedil;&amp;atilde;o da trilha .NET Client no TDC2011-SP" href="http://www.thedevelopersconference.com.br/tdc/2011/saopaulo/trilha-dot-net-client#programacao"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Programa&amp;ccedil;&amp;atilde;o da trilha .NET Client no TDC2011-SP" border="0" alt="Programa&amp;ccedil;&amp;atilde;o da trilha .NET Client no TDC2011-SP" src="http://lh5.ggpht.com/-8t812jK243U/TjVXJaTebuI/AAAAAAAAA5w/tzx4Xde8NXM/image%25255B5%25255D.png?imgmax=800" width="559" height="485"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Espero vocês lá.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-6286997308106208899?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NO6XLy7IaUj3p4ZjKeAxIORXpzg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NO6XLy7IaUj3p4ZjKeAxIORXpzg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NO6XLy7IaUj3p4ZjKeAxIORXpzg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NO6XLy7IaUj3p4ZjKeAxIORXpzg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/lEqNiaVgbxc" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=6286997308106208899" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/6286997308106208899?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/6286997308106208899?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/lEqNiaVgbxc/palestra-silverlight5-tdc2011.html" title="Palestra sobre as novidades do Silverlight 5 no TDC2011/SP" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-8t812jK243U/TjVXJaTebuI/AAAAAAAAA5w/tzx4Xde8NXM/s72-c/image%25255B5%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.kelps.net/2011/07/palestra-silverlight5-tdc2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AESH07eyp7ImA9WhdREU4.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-941597636299370030</id><published>2011-06-30T20:04:00.000-03:00</published><updated>2011-07-31T16:15:09.303-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-31T16:15:09.303-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Download" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Phone 7" /><category scheme="http://www.blogger.com/atom/ns#" term="Beta" /><title>Windows Phone SDK 7.1 Beta 2 disponível para download</title><content type="html">&lt;p&gt;Se você está interessado no desenvolvimento para Windows Phone 7, ficará feliz em saber que está &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=26648"&gt;disponível para download o beta2 das ferramentas de desenvolvimento para Windows Phone 7.1 (mango)&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Uma das coisas que mudou foi que agora o download se chama Windows Phone SDK, não mais Windows Phone Development Tools.&lt;/p&gt; &lt;p&gt;Para instalar esta versão é necessário primeiro remover a versão beta anterior.&lt;/p&gt; &lt;p&gt;Em conjunto com essa nova versão, a Microsoft também anunciou que TODOS os desenvolvedores cadastrados no AppHub receberão um convite por email para participar do beta do Windows Phone 7.1 no Connect. Em outras palavras, isso significa que todos os desenvolvedores cadastrados poderão atualizar os seus telefones com uma versão beta do sistema operacional que será lançado no segundo semestre. Essa é uma excelente notícia para quem já está desenvolvendo aplicações utilizando as &lt;a href="http://blog.kelps.net/2011/05/wp7-mango-tools-beta.html"&gt;ferramentas beta que foram lançadas pouco mais de 1 mês atrás&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Você já tem um Windows Phone? Vai instalar este beta nele? Eu vou &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh4.ggpht.com/-2EKSQ36CZ_g/TjWpnlQIfnI/AAAAAAAAA50/crTsL1hGmjA/wlEmoticon-winkingsmile%25255B2%25255D.png?imgmax=800"&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-941597636299370030?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qHSzBJ2wEbnKC3x9_3Cd9eWplBc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qHSzBJ2wEbnKC3x9_3Cd9eWplBc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qHSzBJ2wEbnKC3x9_3Cd9eWplBc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qHSzBJ2wEbnKC3x9_3Cd9eWplBc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/b5c0UZX17Nk" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=941597636299370030" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/941597636299370030?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/941597636299370030?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/b5c0UZX17Nk/wp7-mango-beta2.html" title="Windows Phone SDK 7.1 Beta 2 disponível para download" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/-2EKSQ36CZ_g/TjWpnlQIfnI/AAAAAAAAA50/crTsL1hGmjA/s72-c/wlEmoticon-winkingsmile%25255B2%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.kelps.net/2011/06/wp7-mango-beta2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8DSHs6fCp7ImA9WhdREU4.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-527974474604732128</id><published>2011-06-01T16:52:00.000-03:00</published><updated>2011-07-31T16:01:19.514-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-31T16:01:19.514-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eventos" /><title>Conferência BUILD</title><content type="html">&lt;p&gt;Hoje a Microsoft anunciou uma &lt;a title="Build Windows event home page" href="http://www.buildwindows.com/"&gt;nova conferência&lt;/a&gt; que acontecerá no Estados Unidos, substituindo o PDC. O nome dessa nova conferência é &lt;a href="http://www.buildwindows.com/"&gt;BUILD Windows&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Ainda não muitas informações sobre conteúdo, mas pelo próprio nome da conferência já fica bem claro que o foco será a plataforma Windows (provavelmente com bastante informação sobre o Windows 8).&lt;/p&gt; &lt;p&gt;As &lt;a href="http://www.buildwindows.com/Register"&gt;inscrições já estão abertas&lt;/a&gt;. Infelizmente eu não poderei ir, pois 2 viagens internacionais não vão caber no meu orçamento deste ano (eu fui para o MVP Summit em fevereiro). Se você puder ir, não perca essa oportunidade.&lt;/p&gt; &lt;p&gt;A conferência acontecerá entre os dias 13 e 16 de setembro deste ano, em Anaheim, Califórnia.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-527974474604732128?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rkRs93s-FlvYwDuXKVaUPKeA_EU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rkRs93s-FlvYwDuXKVaUPKeA_EU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rkRs93s-FlvYwDuXKVaUPKeA_EU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rkRs93s-FlvYwDuXKVaUPKeA_EU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/M8ldTbfXjro" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=527974474604732128" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/527974474604732128?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/527974474604732128?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/M8ldTbfXjro/conferencia-build.html" title="Conferência BUILD" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.kelps.net/2011/06/conferencia-build.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYERXY7eip7ImA9WhdREU4.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-4233498729936636094</id><published>2011-05-25T15:43:00.000-03:00</published><updated>2011-07-31T15:48:24.802-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-31T15:48:24.802-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Download" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Phone 7" /><category scheme="http://www.blogger.com/atom/ns#" term="Beta" /><title>Windows Phone 7.1 (mango) Tools beta disponível para download</title><content type="html">&lt;p&gt;Foi disponibilizado para download a primeira versão beta das ferramentas de desenvolvimento para Windows Phone 7, atualizadas para a nova versão (mango) que será lançada no segundo semestre. Esta versão conta com um emulador contendo algumas novas funcionalidades, como um simulador de GPS e acelerômetro. Nesta versão das ferramentas já é possível começar a desenvolver aplicações capazes de tirar proveito de recursos como Live Agents, Multi Tasking, Deep Linkins, multiplos live tiles, SQL CE, etc…&lt;/p&gt; &lt;p&gt;Abaixo tem alguns links:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://create.msdn.com/"&gt;Download do Windows Phone 7.1 Tools Beta&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/05/24/developer-news-beta-mango-tools-available-today.aspx"&gt;Post no blog do time do Windows Phone, detalhando as novidades&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Esse download funciona lado a lado com a versão atual das ferramentas para Windows Phone 7.&lt;/p&gt; &lt;p&gt;Comece agora mesmo a desenvolver para a próxima versão do Windows Phone 7 e esteja preparado para o seu lançamento do Brasil no segundo semestre.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-4233498729936636094?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/v9bWHM0AdXJpPIMejui_SDE6szQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v9bWHM0AdXJpPIMejui_SDE6szQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/v9bWHM0AdXJpPIMejui_SDE6szQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v9bWHM0AdXJpPIMejui_SDE6szQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/uSFe-WYrFew" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=4233498729936636094" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/4233498729936636094?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/4233498729936636094?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/uSFe-WYrFew/wp7-mango-tools-beta.html" title="Windows Phone 7.1 (mango) Tools beta disponível para download" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.kelps.net/2011/05/wp7-mango-tools-beta.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4BSHo7eCp7ImA9WhdREU4.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-6995238122147714757</id><published>2011-04-13T15:29:00.000-03:00</published><updated>2011-07-31T15:29:19.400-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-31T15:29:19.400-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Download" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight 5" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><category scheme="http://www.blogger.com/atom/ns#" term="Beta" /><title>Silverlight 5 Beta disponível para download</title><content type="html">&lt;p&gt;No MIX11, &lt;a href="http://weblogs.asp.net/scottgu"&gt;Scott Guthrie&lt;/a&gt; anunciou a disponibilização da versão beta do &lt;a href="http://silverlight.net/"&gt;Silverlight&lt;/a&gt; 5 para download. Abaixo estão alguns link para os downloads relacionados a essa versão beta:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=186892"&gt;Visual Studio 2010 SP1&lt;/a&gt; ou &lt;a href="http://www.microsoft.com/express/Web/"&gt;Visual Web Developer Express 2010 SP1&lt;/a&gt; (é necessário ter o &lt;a href="http://go.microsoft.com/fwlink/?LinkId=209902"&gt;Service Pack 1 do Visual Studio&lt;/a&gt; para poder usar o Silverlight 5)  &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=214309"&gt;Silverlight 5 Tools for Visual Studio&lt;/a&gt; &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=215203"&gt;Expression Blend Preview for Silverlight 5&lt;/a&gt; &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=214345"&gt;Silverlight 5 SDK CHM&lt;/a&gt; &lt;li&gt;Runtime de desenvolvimento: &lt;a href="http://silverlight.dlservice.microsoft.com/download/5/8/8/58897679-D9BC-4F58-BFC4-E999C9E32DD1/runtime/Silverlight_Developer.exe"&gt;Windows&lt;/a&gt; ed &lt;a href="http://silverlight.dlservice.microsoft.com/download/5/8/8/58897679-D9BC-4F58-BFC4-E999C9E32DD1/runtime/Silverlight_Developer.dmg"&gt;Mac&lt;/a&gt; – não é necessário se você instalar o tools. Só é necessário se for testar aplicações feitas em Silverlight 5 em computadores sem o tools do SL5 instalado. &lt;li&gt;&lt;a href="http://silverlight.dlservice.microsoft.com/download/3/3/E/33EE735F-B82B-42AF-A62B-3ABF0F47D142/silverlight_sdk.exe"&gt;Silverlight 5 SDK&lt;/a&gt; – para servidores de build. O tools já instala o sdk no computador do desenvolvedor&amp;nbsp; &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=214346"&gt;Documento de mudanças (breaking changes)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-6995238122147714757?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uwsul7uGnKLN6SNBKBE4xGJf_hw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uwsul7uGnKLN6SNBKBE4xGJf_hw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uwsul7uGnKLN6SNBKBE4xGJf_hw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uwsul7uGnKLN6SNBKBE4xGJf_hw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/WBIG1rv-vVc" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=6995238122147714757" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/6995238122147714757?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/6995238122147714757?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/WBIG1rv-vVc/silverlight5-beta.html" title="Silverlight 5 Beta disponível para download" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.kelps.net/2011/04/silverlight5-beta.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MGSH45fip7ImA9WhdSGUo.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-2260730862660866321</id><published>2011-04-11T20:10:00.000-03:00</published><updated>2011-07-29T19:43:49.026-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-29T19:43:49.026-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Open Source" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Phone 7" /><title>Novo membro no WP7Contrib</title><content type="html">&lt;p&gt;É com grande prazer que venho aqui anunciar que a partir de hoje eu passei a fazer parte do time de desenvolvedores do projeto Open Source &lt;a title="WP7 Contrib no Codeplex" href="http://wp7contrib.codeplex.com/"&gt;WP7 Contrib&lt;/a&gt;. \o/&lt;/p&gt; &lt;p&gt;Para quem não sabe, o WP7 Contrib é um projeto open source que foi fundado com o objetivo de criar bibliotecas e helpers para simplificar e agilizar o desenvolvimento de aplicação para Windows Phone 7.&lt;/p&gt; &lt;p&gt;Entre minhas contribuições estão a criação da classe &lt;a title="Classe RestClient do WP7 Contrib, no Codeplex" href="http://wp7contrib.codeplex.com/SourceControl/changeset/view/68413#1463735"&gt;RestClient&lt;/a&gt; e a tarefa de empacotar as bibliotecas do projeto para distribuição via &lt;a href="http://nuget.org/"&gt;NuGet&lt;/a&gt; (em andamento).&lt;/p&gt; &lt;p&gt;Em breve pretendo publicar aqui um pouco mais sobre o que estou fazendo no projeto, como é trabalhar com um time de desenvovedores.&lt;/p&gt; &lt;p&gt;Até mais &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Open-mouthed smile" src="http://lh6.ggpht.com/-5_ZhKZ1pi-4/TjM3gEJSO8I/AAAAAAAAA5Y/HTSvD-9iNj4/wlEmoticon-openmouthedsmile%25255B2%25255D.png?imgmax=800"&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-2260730862660866321?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bNnntRby8HPFXhqn4Dy2EcSGiGE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bNnntRby8HPFXhqn4Dy2EcSGiGE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bNnntRby8HPFXhqn4Dy2EcSGiGE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bNnntRby8HPFXhqn4Dy2EcSGiGE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/MKOB1y0MaIo" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=2260730862660866321" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/2260730862660866321?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/2260730862660866321?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/MKOB1y0MaIo/kelps-membro-wp7contrib.html" title="Novo membro no WP7Contrib" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-5_ZhKZ1pi-4/TjM3gEJSO8I/AAAAAAAAA5Y/HTSvD-9iNj4/s72-c/wlEmoticon-openmouthedsmile%25255B2%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.kelps.net/2011/04/kelps-membro-wp7contrib.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUARXg6cSp7ImA9Wx9VE00.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-8965545771205313390</id><published>2011-01-28T11:03:00.000-02:00</published><updated>2011-01-29T11:04:04.619-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-29T11:04:04.619-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows Phone 7" /><title>Review do Windows Phone 7</title><content type="html">&lt;p&gt;Pouco mais de 1 mês atrás, no dia 20 de dezembro de 2010, eu peguei o meu Windows Phone 7. Venho acompanhando a história do sistema operacional desde&amp;nbsp; quando as primeiras informações foram divulgadas e confesso que fiquei empolgado e frustrado no MIX de 2010 por ver tantas informações e novidades legais e não ter ganhado nenhum aparelho, como todos estavam suspeitando na época.&lt;/p&gt; &lt;p&gt;Como o Windows Phone 7 não está disponível no Brasil ainda, tive que procurar uma forma de comprar um no exterior e trazer pra cá. Para complicar ainda mais as coisas, o aparelho que eu queria (&lt;a href="http://www.lg.com/uk/mobile-phones/mobile-phones/LG-touch-screen-phones-E900.jsp"&gt;LG Optimus 7&lt;/a&gt;) não é vendido nos Estados Unidos. Por sorte, tenho um grande amigo que estava morando na França e iria voltar ao Brasil pouco antes do Natal. Fiz algumas pesquisas e encontrei o aparelho que eu queria, desbloqueado, a venda na Amazon França. A parte mais difícil foi fazer a compra no site em francês sem entender uma palavra (3 vivas para os tradutores online).&lt;/p&gt; &lt;p&gt;Pronto, estava tudo certo. Em 1 mês o meu novo celular com WP7 estaria em minhas mãos. Eu só teria que fazer backup dos dados do meu MotoQ e migrar o que fosse possível para o novo aparelho. 2 dias depois de fazer a compra, &lt;a href="http://blog.kelps.net/2010/11/seguranca-nao-e-paranoia.html"&gt;fui vítma de um sequestro relâmpago&lt;/a&gt; e levaram meu celular (é claro que eu não tinha feito o backup ainda né….) junto com um monte de outras coisas. Fui obrigado a comprar outro aparelho para usar nesse meio tempo. Acabei pegando o seu irmão menor, LG Optimus One, com Android 2.2 (saiu super barato graças ao programa de pontos da minha operadora). Devo confessar que fiquei bastante satisfeito com a aquisição, pelo menos até a chegada do novo aparelho.&lt;/p&gt; &lt;p&gt;Agora vamos à parte que interessa, o review do meu &lt;a href="http://www.lg.com/uk/mobile-phones/mobile-phones/LG-touch-screen-phones-E900.jsp"&gt;LG Optimus 7 com Windows Phone 7&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_33jXBude3Pw/TUQQNu6LGII/AAAAAAAAA24/C6-gsXso3gw/s1600-h/LG-Optimus-77.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="LG-Optimus-7" border="0" alt="LG-Optimus-7" align="right" src="http://lh3.ggpht.com/_33jXBude3Pw/TUQQOdaxKmI/AAAAAAAAA28/KZnagyfYcbs/LG-Optimus-7_thumb4.jpg?imgmax=800" width="338" height="307"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;O aparelho é muito bonito e passa uma sensação de ser bem sólido quando você o segura. Ele é extremamente bem construído, não tendo nenhuma falha de encaixe ou desajuste de nenhum tipo.&lt;/p&gt; &lt;p&gt;Os botões são fáceis de pressionar, sendo que o único que me desagradou foi o botão de ligar, que também serve para travar e destravar o aparelho, mas explicarei melhor mais adiante. Aliás, por falar em botões, esse é o ÚNICO aparelho com Windows Phone 7 lançado até agora em que os 3 botões frontais (voltar, home e busca) são físicos ao invés de touch. Em alguns dos outros aparelhos o botão “home” também é físico, mas o voltar e busca de todos os outros é touch, facilitando que você acidentalmente os toque enquanto usa uma aplicação ou jogo e acabe saindo da aplicação ou da tela em que estava.&lt;/p&gt; &lt;p&gt;Os aparelhos com Windows Phone 7 lançados até agora se diferenciam bem pouco, pois os fabricantes estão todos seguindo praticamente ao pé da letra as especificações mínimas de hardware impostas pela Microsoft para a plataforma. Os diferenciais desse aparelho são:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Os 3 botões físicos para voltar, home e busca, ao invés de botões touch.  &lt;li&gt;Memória de 16 GB (a maioria dos aparelhos tem memória de “apenas” 8 GB)  &lt;li&gt;Recurso DLNA, que permite executar mídia do aparelho em dispositivos compatíveis, como TVs, home theathers, etc.  &lt;li&gt;Tela &lt;a href="http://www.gizmodo.com.br/conteudo/gorilla-glass-o-vidro-inquebravel/"&gt;Gorilla Glass&lt;/a&gt;, praticamente impossível de riscar (&lt;a href="http://bit.ly/ftdb6v"&gt;descobri isso com quanse um mês de uso&lt;/a&gt;).&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;O aparelho encaixa bem na mão e é fácil de manusear com apenas 1 das mãos, mas eu acho que a LG fez algumas escolhas equivocadas no posicionamento de alguns ítens. &lt;/p&gt; &lt;ul&gt; &lt;li&gt;Os botões de volume ficam do lado esquerdo do aparelho, quando na maioria dos outros telefones ele é do lado direto. Isso por si só não é um problema, mas fez com que houvesse botões em todos os lados do aparelho. Seria melhor se pelo menos um lado do aparelho não tivesse botões para que pudessemos segurá-lo ou apoiá-lo sem que nada fosse pressionado.  &lt;li&gt;O plug micro-usb que serve para sincronismo e carregar o aparelho fica do lado direto, onde normalmente ficam os botões de volume e ainda por cima é coberto por uma lingueta que deve ser removida com a unha e virada de lado para conectar o cabo (já que ela fica presa para não se perder). Para mim isso são 2 erros consecutivos: O primeiro foi colocar o plug de carregador/dados na lateral do aparelho e o segundo colocar essa tampinha safada que serve mais para irritar do que para proteger.  &lt;li&gt;O botão de ligar o aparelho, que também serve para bloquear e desbloquear, fica na parte superior, do lado direito. Ele é propositalmente pequeno e mais firme ao toque para que não seja pressionado acidentalmente, mas como os lados superior e inferior do aparelho são ligeiramente inclinados para frente, é difícil pressioná-lo com o indicador, o que torna necessário deslisar o telefone um pouco na mão para pressionar com o polegar (correndo o risco de derrubar o aparelho no processo), ou pressionar o botão com a outra mão.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Fora os detalhes acima, todos os botões são muito bem feitos e trabalham sobre uma pressão perfeita: nem duros demais, nem leves demais. Você difícilmente pressionará um deles acidentalmente.&lt;/p&gt; &lt;p&gt;Ele pesa 157 gramas, ou seja, é 30g mais pesado do que o LG Optimus One que eu havia acabado de comprar e 20g mais pesado do que o iPhone 4. Mas para ser justo, devo dizer que sua tela é de 3,8 polegadas, em comparação à de 3,2 do Optimus One e à de 3,5 do iPhone 4.&lt;/p&gt; &lt;p&gt;Ao contrário do que aconteceu com o Android, não tive nenhum problema para digitar no teclado virtual dele, tanto pelo tamanho da tela ser bom para minha mão, quanto pela qualidade e precisão do teclado virtual do WP7. A única reclamação que tenho do teclado é que não é possível digitar alguns caracteres acentuados se o teclado estiver configurado para inglês, então é necessário mudar para espanhol. Por outro lado, o telefone suporta mais de um perfil de teclado simultâneamente, tornando possível que você escolha se quer teclado em inglês ou espanhol enquanto digita. Se você escreve bastante em português vai achar melhor desabilitar o corretor do teclado com sugestão de palavras pois esse idioma ainda não é suportado (mas está previsto para o update do segundo semestre, junto com outras línguas e novas funcionalidades).&lt;/p&gt; &lt;p&gt;O sistema operacional é excelente, mesmo se tratando de uma primeira versão. Nesse tempo de uso eu não sofri nenhum travamento e ele responde extremamente rápido a todos os seus comandos (principalmente nas aplicações nativas, como o email ou navegador de internet). Há algumas coisas que precisam ser melhoradas e algumas funcionalidades que ainda não estão presentes, mas acho melhor deixar isso para um outro post.&lt;/p&gt; &lt;p&gt;Para quem pretende usar um aparelho desses no Brasil, é necessário saber de algumas coisas:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Compre um aparelho que esteja sem bloqueio de operadora. A maioria dos aparelhos estão sendo vendidos bloqueados para as operadoras e vinculados à contratos de fidelidade. Os aparelhos desbloqueados são um pouco mais caros e difíceis de encontrar.  &lt;li&gt;É necessário um Windows Live ID para acessar o Market Place e sincronizar contatos. O seu Live ID deve estar vinculado à um dos países onde o aparelho já foi lançado. Você pode vincular mais de um Live ID ao aparelho, mas apenas o primeiro será usado para acessar o Market Place ou Xbox Live, no caso dos jogos. &lt;strong&gt;Esse Live ID primário só pode ser trocado fazendo um soft reset no aparelho&lt;/strong&gt;. Se você já tem um gamertag do Xbox vinculado ao seu Live ID, ele será utilizado pelo jogos do aparelho também. Se o seu gamertag for da Xbox Live Brasil, não vai funcionar, e você terá que criar um novo Live ID com endereço americano ou de outro país onde o aparelho já tenha sido lançado para poder usar no aparelho.  &lt;li&gt;O WP7 sincroniza a lista de contatos e agenda de todos os Live IDs, contas do Google e Facebook que você cadastrar. Você pode mudar as opções de sincronismo dessas contas, exceto do Live ID principal. Todos os seus contatos terão uma cópia online, que será facilmente baixada para um outro WP7, caso você o vincule ao mesmo Live ID. Isso é ótimo para quando você decidir trocar de aparelho daqui a algum tempo.  &lt;li&gt;Para desbloquear o aparelho para desenvolvimento, é necessário que o regional settings do computador, do telefone e da sua Live ID estejam iguais. O desbloqueio é feito usando um aplicativo que vem junto com o &lt;a href="http://create.msdn.com/en-us/home/getting_started"&gt;SDK de desenvolvimento&lt;/a&gt;. Para poder desbloquear, é necessário também que você tenha se cadastrado como desenvolvedor e pago a taxa de US$ 99,00 + impostos (que vale por 1 ano). Esse cadastro ficará vinculado ao seu Live ID (pode ser um live ID brasileiro), que é o que deve ser utilizado para desboquear o aparelho. Cada cadastro desses dá direito a desbloquear 3 aparelhos. Se for uma empresa e precisar desbloquear mais aparelhos, deve entrar em contato com a Microsoft.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Por enquanto é só. Em breve publicarei mais informações sobre o sitema operacional e sobre a plataforma de desenvolvimento.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-8965545771205313390?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OUvXZlERwV06enU0yUu4y0TboNs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OUvXZlERwV06enU0yUu4y0TboNs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OUvXZlERwV06enU0yUu4y0TboNs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OUvXZlERwV06enU0yUu4y0TboNs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/h8TqvFeD2Z8" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=8965545771205313390" title="4 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/8965545771205313390?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/8965545771205313390?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/h8TqvFeD2Z8/review-windows-phone-7.html" title="Review do Windows Phone 7" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_33jXBude3Pw/TUQQOdaxKmI/AAAAAAAAA28/KZnagyfYcbs/s72-c/LG-Optimus-7_thumb4.jpg?imgmax=800" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://blog.kelps.net/2011/01/review-windows-phone-7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AEQXg-eCp7ImA9Wx9SEEs.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-1301519258163331797</id><published>2010-11-29T11:28:00.001-02:00</published><updated>2010-11-29T20:28:20.650-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-29T20:28:20.650-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Dicas" /><category scheme="http://www.blogger.com/atom/ns#" term="Segurança" /><title>Segurança não e paranóia</title><content type="html">&lt;p&gt;Quem me segue no Twitter já deve estar sabendo que na última quarta-feira (24/11/2010) eu fui vítma de um sequestro relâmpago. Fui abordado à 3 quadras da esquina da Av. Jorge João Saad com a Av. Francisco Morato (muito cuidado se você mora ou trabalha na região). Fiquei como refém dos bandidos por quase 3h enquanto tentavam sacar e fazer compras com meus cartões de crédito e débito. Fora os gastos que fizeram nos meus cartões, levaram também o som do meu carro, meu celular e minha mochila que além do laptop tinha todos os meus carregadores, e-book reader, cabos de dados, headset, pen-drives e HDs externos. É sobre essa última perda que quero falar.&lt;/p&gt; &lt;p&gt;Graças a Deus não me machucaram. Os cartões têm seguro, vou recuperar o dinheiro perdido. O carro foi encontrado inteiro pela polícia na manhã seguinte (só levaram o som). Deixaram no carro todos meus documentos que estavam na carteira. Mas meu computador e, mais importante, os dados que estavam “espalhados” pela mochila (HDs, laptop e pen-drives e celular) eu não vou recuperar. &lt;/p&gt; &lt;p&gt;Os equipamentos em si serão repostos com o tempo (começei pelo celular). Mas os dados não. Como muitos de vocês, eu também não tinha o hábito de realizar backups com frequência e também não deixava meus dados criptografados pois achava que isso era exagero. Pois querem saber de uma coisa? Não é exagero!&lt;/p&gt; &lt;p&gt;Depois de todos os transtornos (BO, cancelamento de cartões, trocas de senhas…) o que mais me afetou nesse caso todo foi que:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Não recuperarei MUITOS dos dados que estavam naquela mochila, pois não tinham backup. Perdi fotos, músicas, vídeos, entrevistas gravadas para o xamlcast, projetos, documentos, exemplos de código, capítulos do livro que estou escrevendo…  &lt;li&gt;Me sinto vulnerável pois os bandidos estão com acesso fácil à esses dados. Sei que provavelmente nada disso tem valor para eles e é pouco provável que façam algo, mas a sensação de vulnerabilidade não diminue por causa disso. &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Aprendi a lição da forma mais cruel (e mais eficaz) possível. Estou escrevendo esse post para que vocês não precisem passar por isso para tomar providências e se previnir. &lt;/p&gt; &lt;p&gt;O que aprendi com tudo isso?&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Backup&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Normalmente não fazemos backups ou não fazemos com frequencia pois “dá trabalho”. Pois bem, chega de ser preguiçoso. Estou sem dados agora por causa dessa preguiça e chegou a hora de levar isso a sério e resolver esse problema. Há muitas soluções de backup parcial ou totalmente automatizadas que invalidam essa desculpa então, mãos à obra.&lt;/p&gt; &lt;p&gt;Após estudar algumas opções de backup, eu decidi que vou usar um Windows Home Server para a tarefa. Escolhi essa opção pois não terei que me preocupar com nada além de espaço de armazenamento depois que estiver configurado. Todos os computadores que eu comprar de agora em diante terão um plano de backup no Home Server e a vantagem é que para que o backup ocorra, basta que as 2 máquinas estejam na mesma rede. Além disso, tenho uma vantagem extra já que o Home Server também pode ser utilizado como central de mídia da casa, permitindo que eu assista a vídeos, ouça música ou veja minhas fotos de qualquer computador da rede ou até mesmo na minha TV, por meio do Xbox.&lt;/p&gt; &lt;p&gt;Scott Hanselman fez alguns posts sobre o Windows Home Server que podem servir como um bom ponto de partida:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.hanselman.com/blog/TheCaseOfTheFailingDiskDriveOrWindowsHomeServerSavedMyMarriage.aspx"&gt;The Case of the Failing Disk Drive or Windows Home Server Saved My Marriage&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.hanselman.com/blog/WindowsHomeServerUnsupportedFeatureBackupDuplication.aspx"&gt;Windows Home Server Unsupported Feature – Backup Duplication&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.hanselman.com/blog/CategoryView.aspx?category=Home+Server"&gt;Posts de Scott Hanselman marcados com a tag Home Server&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Criptografia&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Sim, a partir de agora vou criptografar todos os meus computadores, pen-drives e HDs externos. Se acontecer algo no futuro (espero nunca mais passar por algo assim novamente, mas nunca se sabe), ficarei tranquilo pois ninguém além de mim será capaz de acessar meus dados e eu poderei recuperar tudo dos meus backups (feitos no Home Server). Esse tipo de tranquilidade não tem preço.&lt;/p&gt; &lt;p&gt;Após pesquisar um pouco, vi que há 2 opções interessantes de criptografia: o &lt;a href="http://windows.microsoft.com/pt-BR/windows7/products/features/bitlocker"&gt;Bitlocker&lt;/a&gt; do Windows e o aplicativo opensource &lt;a href="http://www.truecrypt.org/"&gt;TrueCrypt&lt;/a&gt;. Decidi que vou usar o True Crypt pois tem uma criptografia mais alta, é extremamente seguro, open source, além do fato de o Bitlocker estar disponível apenas com a versão ultimate do Windows 7.&lt;/p&gt; &lt;p&gt;O TrueCrypt é tão seguro que mesmo após 18 meses de tentativas, &lt;a href="http://www.superdownloads.com.br/download/35/truecrypt/truecrypt-programa-que-nem-fbi-nem-cia-conseguem-burlar.html"&gt;nem o FBI nem a CIA conseguiram burlar sua segurança para ajudar nossa Polícia Federal a ter acesso aos dados do banqueiro Daniel Dantas, acusado de crimes financeiros&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Outra coisa interessante do TrueCrypt é que ele suporta encriptação em hardware, se a sua CPU tiver suporte (processadores i5 e i7 têm), o que ajuda a diminuir qualquer possível perda de performance que possa ocorrer.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Ande leve&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Perdi tudo pois estava tudo na minha mochila. É aquela velha mania de “talvez eu precise”. Pois acontece que quase nunca precisava de tudo aquilo. Minha mochila devia estar pesando uns 4Kg e eu posso dizer com segurança que 90% das vezes que precisei de algo dela no trabalho ou em qualquer outro lugar, foi para fazer algo que poderia esperar até eu chegar em casa ou que poderia ser feito de outra forma.&lt;/p&gt; &lt;p&gt;Não vou mais carregar meu laptop para todo lugar (depois que comprar comprar um novo). Não vou mais deixar meus backups e originais juntos. Não vou mais carregar todos os meus gadgets se não for precisar deles.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Próximos passos&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Agora quero ver esquemas de segurança para o celular. Eu tinha um MotoQ 11 com Windows Mobile 6.1. Estava com o serviço MyPhone da Microsoft que faz backups diários dos dados e memória do telefone, mas não fazia backup dos dados do cartão de memória (onde estavam alguns ítens que eu realmente não queria ter perdido). Como não levaram o meu chip, o esquema de localização, bloqueio e formatação remota do MyPhone não me foram úteis, mas o serviço me ajudou bastante mesmo assim.&lt;/p&gt; &lt;p&gt;Como substituto provisório, estou com um LG Optimus One rodando Android 2.2. Ficarei utilizando esse aparelho até o meu Windows Phone 7 chegar, pouco antes do Natal (se tudo correr bem). Estou pesquisando quais são minhas opções tanto de criptografia quanto de backup para ambos os aparelhos. Aceitos sugestões.&lt;/p&gt; &lt;p&gt;Outra coisa que me interessa é algum tipo de serviço que faça backup de dados remotamente ou na nuvem, de forma segura. Quero ter a maior cobertura possível do ponto de vista de segurança, daqui pra frente.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Resumo&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Não brinquem com segurança. Não deixem pra depois. Façam seus backups hoje e, se possível, criptografem os dados, pelo menos os mais sensíveis também. Tomem cuidado. Fico triste e as vezes até desconsolado quando lembro de algumas coisas que perdi (principalmente dados) que não recuperarei. Não passem pelo que estou passando.&lt;/p&gt; &lt;p&gt;Quero também aproveitar para agradecer a todos que me apoiaram e me enviaram palavras de consolo nesses últimos dias. Vocês não fazem idéia de como isso ajuda.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-1301519258163331797?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9wrr9k9gsAyp3JT9T-bqBAR-7sk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9wrr9k9gsAyp3JT9T-bqBAR-7sk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9wrr9k9gsAyp3JT9T-bqBAR-7sk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9wrr9k9gsAyp3JT9T-bqBAR-7sk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/BLmtC_h4t5U" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=1301519258163331797" title="4 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/1301519258163331797?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/1301519258163331797?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/BLmtC_h4t5U/seguranca-nao-e-paranoia.html" title="Segurança não e paranóia" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><feedburner:origLink>http://blog.kelps.net/2010/11/seguranca-nao-e-paranoia.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YDSH86eSp7ImA9Wx5WGUs.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-7370727614509939777</id><published>2010-10-01T15:31:00.001-03:00</published><updated>2010-10-01T18:39:39.111-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-01T18:39:39.111-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MVP" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><title>Fui nomeado MVP de Silverlight</title><content type="html">&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="MVPLogo" border="0" alt="MVPLogo" src="http://lh5.ggpht.com/_33jXBude3Pw/TKYpGkQAJiI/AAAAAAAAA2Y/h4TYjuZeyIQ/MVPLogo%5B10%5D.gif?imgmax=800" width="115" height="180"&gt;&lt;/p&gt; &lt;p&gt;É com grande alegria que anucio aqui que hoje fui nomeado MVP de Silverlight! &lt;/p&gt; &lt;p&gt;Para quem não sabe, MVP (Most Valuable Professional) é um premio que a Microsoft dá em reconhecimento a profissionais que se destacam de alguma forma na comunidade. Isso não é uma certificação. É um premio concedido pela Microsoft sob indicação e com “validade” de um ano. A cada ano as contribuições são avalidadas novamente e o título pode ou não ser renovado.&lt;/p&gt; &lt;p&gt;Fico realmente muito feliz de fazer parte dessa comunidade e mais ainda por ser o &lt;u&gt;&lt;strong&gt;primeiro MVP de Silverlight do Brasil&lt;/strong&gt;&lt;/u&gt;. &lt;/p&gt; &lt;p&gt;Ainda não sei que portas isse título vai abrir para mim mas podem ter certeza de que continuarei participando ativamente da comunidade e contribuindo cada vez mais na divulgação dessa plataforma que tanto adoro.&lt;/p&gt; &lt;p&gt;Não vou citar nomes para não correr o risco de deixar ninguém de fora, mas gostaria de agradecer a todos participaram de alguma forma direta ou indireta na minha indicação, assim como todos que sempre me apoiaram e que me deram os parabéns hoje por email, telefone e Twitter. &lt;/p&gt; &lt;p&gt;Se você ficou interessado ou curioso sobre o programa de MVPs, leia este ótimo post do &lt;a title="Twitter do Rodolfo Roim" href="http://twitter.com/rodolforoim"&gt;Rodolfo Roim&lt;/a&gt; (líder dos MPVs no Brasil).&lt;/p&gt; &lt;p&gt;&lt;a href="http://mvpbrasil.wordpress.com/2010/07/19/o-programa-mvp-o-que-e-como-faco-parte/"&gt;http://mvpbrasil.wordpress.com/2010/07/19/o-programa-mvp-o-que-e-como-faco-parte/&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Mais uma vez, OBRIGADO!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-7370727614509939777?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tAWQC-2Zoebp6DWds2BQP6N8TlA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tAWQC-2Zoebp6DWds2BQP6N8TlA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tAWQC-2Zoebp6DWds2BQP6N8TlA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tAWQC-2Zoebp6DWds2BQP6N8TlA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/zQNPIag80jw" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=7370727614509939777" title="6 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/7370727614509939777?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/7370727614509939777?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/zQNPIag80jw/fui-nomeado-mvp-silverlight.html" title="Fui nomeado MVP de Silverlight" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_33jXBude3Pw/TKYpGkQAJiI/AAAAAAAAA2Y/h4TYjuZeyIQ/s72-c/MVPLogo%5B10%5D.gif?imgmax=800" height="72" width="72" /><thr:total>6</thr:total><feedburner:origLink>http://blog.kelps.net/2010/10/fui-nomeado-mvp-silverlight.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMAQXk9fip7ImA9Wx5WFE8.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-6536486679106391243</id><published>2010-09-25T10:05:00.001-03:00</published><updated>2010-09-25T10:14:00.766-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-25T10:14:00.766-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Dicas" /><title>Tirando dúvidas em fóruns</title><content type="html">&lt;p&gt;Há muito tempo venho acompanhando o &lt;a href="http://social.msdn.microsoft.com/Forums/pt-BR/silverlightpt/threads"&gt;fórum de Silverlight do MSDN Brasil&lt;/a&gt;, tirando dúvidas e ajudando outros desenvolvedores com problemas. Por ser bastante ativo nesse fórum acabei sendo nomeado como um de seus moderadores, o que me dá acesso para fazer algumas coisas como mover questões, editar e bloquear posts de outras pessoas, marcar perguntas como respondidas, etc…&lt;/p&gt; &lt;p&gt;Após um tempo a gente começa a notar certos padrões, e um que fica bem evidente para quem acompanha fóruns é que a grande maioria das pessoas não sabe usá-los corretamente. Fóruns são uma base de conhecimento com dúvidas e respostas para ser consultada e utilizada em caso de necessidade. Veja como um fórum é normalmente usado:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Usuário encontra um problema ou tem uma dúvida&lt;/li&gt; &lt;li&gt;Acha o site de &lt;a href="http://social.msdn.microsoft.com/Forums/pt-BR/categories"&gt;fóruns do MSDN&lt;/a&gt; (ou qualquer outro)&lt;/li&gt; &lt;li&gt;Acha a tela de postar dúvida, preenche a descrição, preenche o título e envia&lt;/li&gt; &lt;li&gt;Aguarda uma resposta e depois não volta mais&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;O que há de errado nesse comportamento? Esse usuário não tirou proveito da ferramenta em vários pontos chave e usou o fórum como se fosse um sistema de suporte.&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Esse usuário não pesquisou para ver se a dúvida/problema dele já estava no fórum. Talvez alguém já houvesse passado por isso e ele já conseguisse a resposta na hora.&lt;/li&gt; &lt;li&gt;Ao postar a dúvida ele começou preenchendo a descrição do problema e deixou o título para depois (talvez nem tenha percebido o campo e tenha preenchido só quando a validação da tela informou que era obrigatório). O problema disso é que o título acaba sendo preenchido com qualquer coisa, o que não ajuda para que a dúvida seja encontrada e respondida logo. Há também casos que são ao contrário onde a pessoa faz uma pergunta bem genérica no título e não detalha o cenário na descrição. Não podemos também esquecer dos casos em que a pessoa submete a dúvida no tópico/categoria errada do fórum.&lt;/li&gt; &lt;li&gt;Após ter sua pergunta respondida o usuário muitas vezes simplesmente utiliza a resposta e não atualiza o fórum informando que aquela é a resposta. Na maioria dos casos o usuário só voltará ao fórum se a resposta não resolver o problema dele.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Esse tipo de comportamento é ruim para os fóruns pois acaba gerando informações redundantes, retrabalho e inconsistência nas respostas. Eis como o fórum deve ser usado:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Usuário encontra um problema ou tem uma dúvida&lt;/li&gt; &lt;li&gt;Acha o site do fórum (MSDN/Stack Overflow ou qualquer outro)&lt;/li&gt; &lt;li&gt;Verifica se há uma busca geral e faz uma busca com as palavras chave sobre a questão que tem&lt;/li&gt; &lt;li&gt;Se encontrar uma pergunta igual ou semelhante, verifica se ela está respondida e resolve o problema. Se estiver e resolver, vote na resposta para indicar que foi útil. Se não estiver respondida ou não resolver seu problema, poste um comentário ou pelo menos assine a pergunta para poder receber uma alerta por email quando houver atualização.&lt;/li&gt; &lt;li&gt;Se a sua dúvida não estiver no fórum ainda, ache a sessão do fórum referente ao assunto da dúvida. Ex.: Se a dúvida de sobre como filtrar uma query no banco de dados, você não deve postar no fórum de Silverlight só porque sua aplicação é feita em Silverlight. Você deve postar sua dúvida no fórum de SQL nesse caso.&lt;/li&gt; &lt;li&gt;Coloque a questão central do seu problema no título, da forma mais clara e concisa possível. Quem estiver lendo tem que ser capaz de identificar pelo menos o escopo da pergunta lendo apenas o título. Um título bem feito ajuda para que outras pessoas possam tirar proveito no futuro da solução ao seu problema e também faz com que se obtenha uma resposta mais rápido pois uma pessoa pode simplesmente bater o olho no título e falar “ei, eu sei responder isso”, ao invés de ter que abrir a pergunta e ler a descrição para saber do que se trata. Exemplos de títulos ruims: “Dúvida?”, “Problema com relatório”, “Acesso ao banco”, “Silverlight”, etc…&lt;/li&gt; &lt;li&gt;Preencha a descrição da pergunta com mais detalhes sobre o seu cenários. O que você está tentando fazer? Que tecnologias está usando? O que sua aplicação faz? etc. Quanto mais informações você puder passar, mais chances têm de ter uma resposta precisa e rápida. Coloque o que faz sentido no seu caso e que seja útil para quem for tentar responder.&lt;/li&gt; &lt;li&gt;Se alguém responder sua questão fazendo mais perguntas ou pedindo mais detalhes, responda assim que puder.&lt;/li&gt; &lt;li&gt;Se alguém der uma solução que funcione, marque como resposta para que outros possam tirar proveito.&lt;/li&gt; &lt;li&gt;Se ninguém responder e você conseguir resolver o problema, responda você mesmo à questão e marque sua resposta como resposta da questão. Outros usuários vão agradecer.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Quase todas as questões nesses fóruns são respondidas por pessoas como eu e você, não por funcionários da Microsoft (ou da empresa relacionada à tecnologia/fórum em questão). Estamos fazendo isso em nosso tempo livre para ajudar a evoluir nossa comunidade de desenvolvedores e as tecnologias que usamos. Lembre-se disso ao usar os fóruns.&lt;/p&gt; &lt;p&gt;Seguem mais algumas dicas que também podem ser seguidas:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Seja educado ao fazer sua pergunta.&lt;/li&gt; &lt;li&gt;Seja educado com quem está tentando te ajudar. Lembre que, normalmente, ele não é pago para isso e realmente só quer ajudar.&lt;/li&gt; &lt;li&gt;Não use o tópico de uma pergunta para discutir uma técnologia. Abra um novo tópico de discussão&lt;/li&gt; &lt;li&gt;Evite fazer mais de uma pergunta em um único tópico&lt;/li&gt; &lt;li&gt;Não faça propagandas em fóruns, a não ser que o produto em questão resolva a dúvida de alguem.&lt;/li&gt; &lt;li&gt;Se tiver um tempo, contribua com o fórum tentando responder dúvidas de outros usuários.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;A comunidade agradece.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-6536486679106391243?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lRV3Wo1ZlR4nZzJXKkP88FrBiiE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lRV3Wo1ZlR4nZzJXKkP88FrBiiE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lRV3Wo1ZlR4nZzJXKkP88FrBiiE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lRV3Wo1ZlR4nZzJXKkP88FrBiiE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/89Ee6DoVIUQ" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=6536486679106391243" title="5 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/6536486679106391243?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/6536486679106391243?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/89Ee6DoVIUQ/tirando-duvidas-em-foruns.html" title="Tirando dúvidas em fóruns" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>5</thr:total><feedburner:origLink>http://blog.kelps.net/2010/09/tirando-duvidas-em-foruns.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcDQnYzcCp7ImA9Wx5WEkk.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-3637945118918849742</id><published>2010-09-23T08:00:00.005-03:00</published><updated>2010-09-23T09:47:53.888-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-23T09:47:53.888-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Podcast" /><category scheme="http://www.blogger.com/atom/ns#" term="HTML5" /><category scheme="http://www.blogger.com/atom/ns#" term="Community Zone" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight 4" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><title>Discussão Silverlight x HTML5 gravada ao vivo no Community Zone</title><content type="html">&lt;p&gt;Nos dias 16 e 17 a Microsoft reuniu alguns MVPs e influenciadores da comunidade em um rancho no interior de São Paulo com atividades de integração e de direcionamento. Esta reunião se chama Community Zone. Para alguns é um momento de lazer com os amigos da “internet”, mas para muitos é uma grande oportunidade de trocar informações e discutir determinados assuntos.&lt;/p&gt;  &lt;p&gt;Foi isto que aconteceu na madrugada do &lt;strong&gt;Community Zone&lt;/strong&gt;. Mais de 30 pessoas estavam presente para discutir &lt;strong&gt;Silverlight 4 x XHTML5&lt;/strong&gt;? Assunto quente e polêmico que você confere neste mega podcast, com participações de &lt;a title="Kelps no Twitter" href="http://twitter.com/kelps"&gt;Kelps&lt;/a&gt;, &lt;a title="Giovanni Bassi no Twitter" href="http://twitter.com/giovannibassi"&gt;Giovanni Bassi&lt;/a&gt;, &lt;a title="Rodrigo Kono no Twitter" href="http://twitter.com/rodrigokono"&gt;Rodrigo Kono&lt;/a&gt;, &lt;a title="Victor Cavalcante no Twitter" href="http://twitter.com/vcavalcante"&gt;Victor Cavalcante&lt;/a&gt;, &lt;a title="Igor Abade no Twitter" href="http://twitter.com/igorabade"&gt;Igor Abade&lt;/a&gt;, &lt;a title="Mauricio Alegretti no Twitter" href="http://twitter.com/malegretti"&gt;Mauricio Alegretti&lt;/a&gt;, &lt;a title="Gustavo Malheiros no Twitter" href="http://twitter.com/gumalheiros"&gt;Gustavo Malheiros&lt;/a&gt;, &lt;a title="Márcio Sete no Twitter" href="http://twitter.com/marciosete"&gt;Márcio Sete&lt;/a&gt; e vários outros. &lt;em&gt;(ps.:não temos os nomes de todos, se você estava presente comente este post).&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="Html5 versus Silverlight no Community Zone" href="http://www.cnzk.com.br/cz/html5-x-silverlight.mp3"&gt;Html5 versus Silverlight no Community Zone&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Qual a sua opinião?    &lt;br /&gt;Comente, compartilhe conosco.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;PS.: Não consegui colocar um player de audio no post por causa de problemas com o Blogger. Estou procurando uma solução para isso.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-3637945118918849742?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WD_zrKcYAlHwj-mjnIJScRElWz0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WD_zrKcYAlHwj-mjnIJScRElWz0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WD_zrKcYAlHwj-mjnIJScRElWz0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WD_zrKcYAlHwj-mjnIJScRElWz0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/Uq64WovEYPI" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=3637945118918849742" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/3637945118918849742?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/3637945118918849742?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/Uq64WovEYPI/podcast-silverlight-x-html5-community.html" title="Discussão Silverlight x HTML5 gravada ao vivo no Community Zone" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.kelps.net/2010/09/podcast-silverlight-x-html5-community.html</feedburner:origLink><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="enclosure" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~5/gAzbpVOvMN0/html5-x-silverlight.mp3" length="0" type="audio/mpeg" /><feedburner:origEnclosureLink>http://www.cnzk.com.br/cz/html5-x-silverlight.mp3</feedburner:origEnclosureLink></entry><entry gd:etag="W/&quot;DEMGR344cSp7ImA9Wx5RGE8.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-4332478296513429433</id><published>2010-08-26T09:37:00.001-03:00</published><updated>2010-08-26T09:40:26.039-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-26T09:40:26.039-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Dicas" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>Se tornado sysadmin em servidor SQL Server/Express local (revisado)</title><content type="html">&lt;p&gt;Pouco mais de 1 mês atrás eu postei aqui no blog uma &lt;a href="http://blog.kelps.net/2010/06/reset-senha-sa-sql-express.html" target="_blank"&gt;dica sobre como dar reset na senha de “sa” no SQL Express&lt;/a&gt;, um assunto completamente diferente dos temas que costumo abordar normalmente. Fiz aquele post principalmente para guardar a dica, caso fosse necessária novamente no futuro. O que eu não esperava era que ela seria tão necessária: Desde quando postei até agora eu já utilizei ou indiquei aquele post 7 vezes aqui no serviço. &lt;/p&gt;  &lt;p&gt;&lt;a title="Site oficial do SQL Server 2008" href="http://http://www.microsoft.com/sqlserver/2008/en/us/" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Microsoft SQL Server" border="0" alt="Microsoft SQL Server" src="http://lh6.ggpht.com/_33jXBude3Pw/THZf67VsQfI/AAAAAAAAA1c/ulBz0L8MHd8/image%5B40%5D.png?imgmax=800" width="299" height="86" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Esse assunto se tornou importante aqui devido ao fato de que agora os computadores de novos funcionarios não serão mais formatados, a não ser que a instalação anterior esteja com problemas. Como tivemos uma onda de contratações recentemente, vários computadores que estavam guardados foram disponibilizados para os novos desenvolvedores e então o problema de tornou latente.&lt;/p&gt;  &lt;p&gt;Isso me fez ver também que meu post anterior poderia ter seu passo a passo melhorado, pois nem todos os casos são iguais e nem todos os detalhes estavam bem claros. Por isso eu decidi escrever um novo post mais claro e detalhado para ficar mais fácil para as próximas pessoas que precisarem dessa dica.&lt;/p&gt;  &lt;p&gt;Quando o SQL Server ou SQL Express é instalado em um computador junto ou por algum outro aplicativo (Visual Studio, Web Platform Installer), o grupo de administradores local da máquina não é adicionado automáticamente ao grupo de administradores do banco de dados. Então, quando um computador muda de dono, o novo dono não consegue ter acesso admin no próprio SQL, mesmo sendo administrador local, pois apenas o usuário anterior e o “sa” estão no grupo de administradores do SQL. &lt;/p&gt;  &lt;p&gt;O SQL e o SQL Express têm um modo de execução chamada “Single User” que serve justamente para realizar reparos na instalação. Quando o SQL está rodando em modo “Single User”, todos os administradores locais são incluídos temporáriamente como administradores do banco de dados, mesmo que ele não esteja configurado assim. Isso torna possível conectar no banco e fazer as “correções” necessárias usando o usuário logado atualmente no computador. &lt;/p&gt;  &lt;p&gt;Abaixo tem um passo a passo para realizar a correção e reassumir controle sobre o banco de dados.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Obtenha o nome do serviço da instância do SQL que você deseja reparar. O serviço do SQL Server custuma se chamar MSSQLSERVER e o do SQL Express costuma se chamar MSSQL$SQLEXPRESS. Se você não tiver certeza, pode verificar o nome do serviço indo em “Painel de Controle &amp;gt; Ferramentas Administrativas &amp;gt; Serviços” e dando um duplo clique no serviço desejado você verá o nome dele:      &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_33jXBude3Pw/THZf92s452I/AAAAAAAAA1g/RwC8rjYHiqc/s1600-h/image%5B5%5D.png"&gt;&lt;img style="border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Gerenciador de Serviços do Windows, com o serviço &amp;quot;SQL Server (SQLEXPRESS)&amp;quot; selecionado." border="0" alt="Gerenciador de Serviços do Windows, com o serviço &amp;quot;SQL Server (SQLEXPRESS)&amp;quot; selecionado." src="http://lh4.ggpht.com/_33jXBude3Pw/THZf_VNcbdI/AAAAAAAAA1k/fkYsyPHLbEY/image_thumb%5B3%5D.png?imgmax=800" width="590" height="327" /&gt;&lt;/a&gt; &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Janela de propriedades do serviço &amp;quot;SQL Server (SQLEXPRESS)&amp;quot;, mostrando o nome do serviço, que nesse caso é &amp;quot;MSSQL$SQLEXPRESS&amp;quot;." border="0" alt="Janela de propriedades do serviço &amp;quot;SQL Server (SQLEXPRESS)&amp;quot;, mostrando o nome do serviço, que nesse caso é &amp;quot;MSSQL$SQLEXPRESS&amp;quot;." src="http://lh3.ggpht.com/_33jXBude3Pw/THZgAYAHFbI/AAAAAAAAA1s/6nHDfoF1IYA/image%5B42%5D.png?imgmax=800" width="426" height="479" /&gt; &lt;/li&gt;    &lt;li&gt;Abra um prompt de comando em modo administrativo (“Run as Administrator” ou “Executar como Administrador”)      &lt;br /&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Menu Iniciar, mostrando a opção &amp;quot;Executar como administrador&amp;quot; do programa &amp;quot;Prompt de Comando&amp;quot;" border="0" alt="Menu Iniciar, mostrando a opção &amp;quot;Executar como administrador&amp;quot; do programa &amp;quot;Prompt de Comando&amp;quot;" src="http://lh5.ggpht.com/_33jXBude3Pw/THZgBw3P1TI/AAAAAAAAA1w/ZzG8qsmO8ho/image%5B43%5D.png?imgmax=800" width="425" height="593" /&gt; &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Prompt de Comando aberto, mostrando que está sendo executado como Administrador" border="0" alt="Prompt de Comando aberto, mostrando que está sendo executado como Administrador" src="http://lh3.ggpht.com/_33jXBude3Pw/THZgC4StnGI/AAAAAAAAA10/ay7-nhPP31w/image%5B44%5D.png?imgmax=800" width="425" height="147" /&gt; &lt;/li&gt;    &lt;li&gt;Pare o serviço do SQL desejado executando o seguinte comando:      &lt;pre&gt;NET STOP NomeDoServicoPasso1&lt;/pre&gt;&lt;br /&gt;No meu caso, o nome do serviço seria MSSQL$SQLEXPRESS. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Reinicie o serviço do SQL em modo Single User com o seguinte comando: &lt;br /&gt;    &lt;pre&gt;NET START NomeDoServicoPasso1 /m&lt;/pre&gt;&lt;br /&gt;A partir de agora só é possível conectar nesse banco de dados com o usuário atual. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Conecte no banco de dados utilizando o SQL Server Management Studio, mas &lt;u&gt;executando como Administrador&lt;/u&gt; do mesmo modo que foi feito com o prompt de comando. Isso é necessário pois o SQL está executando em modo Single User, então ele só aceitará conexões do usuário que iniciou o serviço. &lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Menu Iniciar, mostrando o programa &amp;quot;SQL Server Management Studio&amp;quot; com a opção &amp;quot;Executar como administrador&amp;quot;" border="0" alt="Menu Iniciar, mostrando o programa &amp;quot;SQL Server Management Studio&amp;quot; com a opção &amp;quot;Executar como administrador&amp;quot;" src="http://lh3.ggpht.com/_33jXBude3Pw/THZgD9VJqnI/AAAAAAAAA14/tctdWyu5h7M/image%5B47%5D.png?imgmax=800" width="432" height="246" /&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;No SQL Server Management Studio, execute as alterações desejadas no servidor (ex.: alteração da senha do usuário “sa”, inclusão do seu usuário no grupo “sysadmin”, inclusão do grupo de administradores local como sysadmin no SQL, etc…). Depois de feitas as alterações, feche o SQL Server Management Studio. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Pare o serviço do SQL novamente, usando o mesmo comando executado no passo 3.&lt;br /&gt;    &lt;pre&gt;NET STOP NomeDoServicoPasso1&lt;/pre&gt;&lt;br /&gt;  &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Reinicie o serviço do SQL em modo normal, executando o mesmo comando do passo 4, mas sem o parâmetro /m no final. &lt;br /&gt;    &lt;pre&gt;NET START NomeDoServicoPasso1&lt;/pre&gt;&lt;br /&gt;  &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Pronto, pode voltar a usar seu servidor de banco de dados normalmente. &lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Os passos acima podem ser feitos para qualquer versão e instância de SQL Server ou SQL Express e também funcionam em versões anteriores do SQL.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-4332478296513429433?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Zw1okgsuPKuJ6dBD-aWJQiBnKHM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Zw1okgsuPKuJ6dBD-aWJQiBnKHM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Zw1okgsuPKuJ6dBD-aWJQiBnKHM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Zw1okgsuPKuJ6dBD-aWJQiBnKHM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/ufsZkrPL5gk" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=4332478296513429433" title="1 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/4332478296513429433?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/4332478296513429433?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/ufsZkrPL5gk/recuperando-admin-sa-sql-local.html" title="Se tornado sysadmin em servidor SQL Server/Express local (revisado)" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_33jXBude3Pw/THZf67VsQfI/AAAAAAAAA1c/ulBz0L8MHd8/s72-c/image%5B40%5D.png?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.kelps.net/2010/08/recuperando-admin-sa-sql-local.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUGRXo7fyp7ImA9Wx5RGE8.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-4078546180721215409</id><published>2010-08-26T07:49:00.001-03:00</published><updated>2010-08-26T07:57:04.407-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-26T07:57:04.407-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WPF" /><category scheme="http://www.blogger.com/atom/ns#" term="TechEd" /><category scheme="http://www.blogger.com/atom/ns#" term="Eventos" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2010" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight 4" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><category scheme="http://www.blogger.com/atom/ns#" term="Binding" /><title>A lista de palestras do TechEd Brasil 2010 foi alterada</title><content type="html">&lt;p&gt;A lista de palestras do &lt;a href="http://www.teched.com.br/" target="_blank"&gt;TechEd Brasil 2010&lt;/a&gt; foi alterada ontem devido à ajustes na grade e 2 das minhas palestras mudaram de dia e de horário. Se você já havia montado a sua agenda, vá ao site e atualize.&lt;/p&gt;  &lt;p&gt;&lt;a title="TechEd Brasil 2010" href="http://www.teched.com.br/" target="_blank"&gt;&lt;img alt="Tech·Ed 2010" src="http://www.teched.com.br/2010/Emails/images/topo_email.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Segue abaixo a grade que montei para mim com as minhas 3 palestras destacadas (as minhas que mudaram de horário estão marcadas abaixo com um * )&lt;/p&gt;  &lt;p&gt;segunda-feira, 13/09/2010&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;13:45 - 15:00 - Dicas, truques do visual Studio 2010 e novas funcionalidades do Visual Basic e C# - João Paulo Clementi, Renato Haddad &lt;/li&gt;    &lt;li&gt;15:30 - 16:45 - Desenvolvimento com C# no mundo moderno - Alfred Myers &lt;/li&gt;    &lt;li&gt;17:15 - 18:30 - Tudo o que você precisa saber sobre Scrum e Visual Studio ALM em 150 min - Parte 1 - André Dias, Giovanni Bassi &lt;/li&gt;    &lt;li&gt;18:45 - 20:00 - Scrum Process Template para TFS 2010: Seja ágil de verdade - Parte 2 - André Dias, Giovanni Bassi &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;terça-feira, 14/09/2010&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;09:00 - 10:15 - Novidades e razões para migrar para o Microsoft .Net Framework 4 - Diego Blanco, João Paulo Clementi&lt;/li&gt;    &lt;li&gt;10:45 - 12:00 - Meu site anda meio lento... e eu não sei mais o que fazer! - Vinicius Canto Xavier&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;13:45 - 15:00 - WPF Data-Binding de A à Z - Kelps Leite de Sousa&lt;/u&gt; *&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;15:30 - 16:45 - Implementando Serviços RESTful usando o Microsoft .NET Framework - Israel Aece&lt;/li&gt;    &lt;li&gt;17:15 - 18:30 - Aplicações WEB com Silverlight 4 fora do Browser - Djonatas Tenfen, Rogerio Cordeiro&lt;/li&gt;    &lt;li&gt;ASK the Experts - Mesa de Silverlight (não aparece na grade)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;quarta-feira, 15/09/2010&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;09:00 - 10:15 - Silverlight 4 e Expression Blend 4: Tecnologia e Ferramenta em suas Mãos - Rodrigo Kono&lt;/li&gt;    &lt;li&gt;10:45 - 12:00 - Como e onde devo utilizar o Managed Extensibility Framework (MEF) - Rogério Moraes de Carvalho&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;13:45 - 15:00 - Criando Rich Internet Applications (RIA) com Silverlight 4 e WCF RIA Services - Kelps Leite de Sousa&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;15:30 - 16:45 - Entendendo a Plataforma de Aplicações do Windows Phone 7 - Galileu Vieira, Luciano Condé&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;17:15 - 18:30 - Aproveitando ao máximo as ferramentas do Visual Studio 2010 para Silverlight e WPF - Kelps Leite de Sousa&lt;/u&gt; *&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Infelizmente não será possível assistir a todas a palestras que eu gostaria. Espero que as palestras sejam gravadas esse ano para que possamos assistir depois as palestras que perdermos ao vivo.&lt;/p&gt;  &lt;p&gt;Vejo vocês lá!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-4078546180721215409?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/m5rSPrfFgBCv379PzsB6mm_ls4A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/m5rSPrfFgBCv379PzsB6mm_ls4A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/m5rSPrfFgBCv379PzsB6mm_ls4A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/m5rSPrfFgBCv379PzsB6mm_ls4A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/lw5Fz9PfSEk" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=4078546180721215409" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/4078546180721215409?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/4078546180721215409?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/lw5Fz9PfSEk/lista-palestras-teched-alterada.html" title="A lista de palestras do TechEd Brasil 2010 foi alterada" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.kelps.net/2010/08/lista-palestras-teched-alterada.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEHQHc9eip7ImA9Wx5TEUg.&quot;"><id>tag:blogger.com,1999:blog-1102500548563078654.post-3583093610430679707</id><published>2010-07-24T10:10:00.001-03:00</published><updated>2010-07-26T10:57:11.962-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-26T10:57:11.962-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WPF" /><category scheme="http://www.blogger.com/atom/ns#" term="TechEd" /><category scheme="http://www.blogger.com/atom/ns#" term="Eventos" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2010" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><category scheme="http://www.blogger.com/atom/ns#" term="Binding" /><title>Lista de palestras do TechEd Brasil 2010 disponível no site</title><content type="html">&lt;p&gt;A lista de palestras do &lt;a href="http://www.teched.com.br"&gt;TechEd Brasil 2010&lt;/a&gt; já &lt;a href="http://www.teched.com.br/2010/Palestras.aspx"&gt;está disponível no site&lt;/a&gt;. Ainda não foi divulgada a agenda com data e hora de cada palestra, então ainda não dá pra saber quais palestras vou conseguir assistir, mas já é possível ter uma idéia do conteúdo desse evento. Como eu já disse &lt;a href="http://blog.kelps.net/2010/07/vou-palestrar-no-teched-2010.html"&gt;em um post anterior, estarei palestrando esse ano sobre 3 assuntos&lt;/a&gt;. Para saber mais sobre minhas palestras (ou de qualquer outra pessoa) basta acessar a &lt;a href="http://www.teched.com.br/2010/Palestras.aspx"&gt;página de palestras&lt;/a&gt; e filtrar por palestrante.&lt;/p&gt;  &lt;p&gt;&lt;a title="TechEd Brasil 2010 - Palestras" href="http://www.teched.com.br/2010/Palestras.aspx"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="TechEd Brasil 2010 - Palestras" border="0" alt="TechEd Brasil 2010 - Palestras" src="http://lh4.ggpht.com/_33jXBude3Pw/TErmR8QKv3I/AAAAAAAAA0o/Tf90HaS4rUw/image%5B9%5D.png?imgmax=800" width="675" height="866" /&gt;&lt;/a&gt;&lt;/p&gt; Vejos vocês lá!     &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1102500548563078654-3583093610430679707?l=blog.kelps.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/df3S9IhXp3S08b3DgZb8iigLcA0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/df3S9IhXp3S08b3DgZb8iigLcA0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/df3S9IhXp3S08b3DgZb8iigLcA0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/df3S9IhXp3S08b3DgZb8iigLcA0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevNewsAndOldsByKelps/~4/kywa3oXgark" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1102500548563078654&amp;postID=3583093610430679707" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/3583093610430679707?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1102500548563078654/posts/default/3583093610430679707?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevNewsAndOldsByKelps/~3/kywa3oXgark/lista-palestras-teched-brasil.html" title="Lista de palestras do TechEd Brasil 2010 disponível no site" /><author><name>Kelps Leite de Sousa</name><uri>http://www.blogger.com/profile/13481703950137691070</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_33jXBude3Pw/TErmR8QKv3I/AAAAAAAAA0o/Tf90HaS4rUw/s72-c/image%5B9%5D.png?imgmax=800" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.kelps.net/2010/07/lista-palestras-teched-brasil.html</feedburner:origLink></entry></feed>

