<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Waldemir Cambiucci - Solutions Architect - Microsoft Brasil : Leitura Recomendada</title><link>http://blogs.msdn.com/wcamb/archive/tags/Leitura+Recomendada/default.aspx</link><description>Tags: Leitura Recomendada</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>SOA Manifesto</title><link>http://blogs.msdn.com/wcamb/archive/2009/11/08/soa-manifesto.aspx</link><pubDate>Sun, 08 Nov 2009 19:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919277</guid><dc:creator>wcamb</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/9919277.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=9919277</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=9919277</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;O final de outubro marcou a publicação do &lt;STRONG&gt;SOA Manifesto&lt;/STRONG&gt;, assinado por diversas empresas e representantes do mercado. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;SOA Manifesto &lt;BR&gt;&lt;/STRONG&gt;Ref.: &lt;A title="SOA MANIFESTO" href="http://www.soa-manifesto.org/" rel=nofollow target=_blank mce_href="http://www.soa-manifesto.org/"&gt;http://www.soa-manifesto.org/&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.youtube.com/watch?v=TCg16oTZSV0" mce_href="http://www.youtube.com/watch?v=TCg16oTZSV0"&gt;&lt;/A&gt;&lt;/P&gt;Você pode até pergunta: mais um Manifesto? Sim, mais um Manifesto! :) 
&lt;P&gt;Entre os signatários você encontra nomes como &lt;A href="http://www.amazon.com/s/ref=nb_ss?url=search-alias%3Daps&amp;amp;field-keywords=Thomas+Erl" rel=nofollow target=_blank mce_href="http://www.amazon.com/s/ref=nb_ss?url=search-alias%3Daps&amp;amp;field-keywords=Thomas+Erl"&gt;Thomas Erl&lt;/A&gt;, &lt;A href="http://www.amazon.com/s/ref=nb_ss?url=search-alias%3Daps&amp;amp;field-keywords=Grady+Booch" rel=nofollow target=_blank mce_href="http://www.amazon.com/s/ref=nb_ss?url=search-alias%3Daps&amp;amp;field-keywords=Grady+Booch"&gt;Grady Booch&lt;/A&gt;, &lt;A href="http://www.brianloesgen.com/" rel=nofollow target=_blank mce_href="http://www.brianloesgen.com/"&gt;Brian Loesgen&lt;/A&gt; e &lt;A href="http://blogs.msdn.com/jdevados/" rel=nofollow target=_blank mce_href="http://blogs.msdn.com/jdevados/"&gt;John deVadoss&lt;/A&gt; da &lt;STRONG&gt;Microsoft&lt;/STRONG&gt;, &lt;A href="http://channel9.msdn.com/tags/Aaron+Skonnard/" rel=nofollow target=_blank mce_href="http://channel9.msdn.com/tags/Aaron+Skonnard/"&gt;Aaron Skonnard&lt;/A&gt; da &lt;STRONG&gt;Pluralsight&lt;/STRONG&gt; entre &lt;A href="http://www.soa-manifesto.org/aboutauthors.html" rel=nofollow target=_blank mce_href="http://www.soa-manifesto.org/aboutauthors.html"&gt;outros&lt;/A&gt; nomes de peso! Também sou signatário por lá :)&lt;/P&gt;
&lt;P&gt;Alguns princípios do &lt;STRONG&gt;SOA&lt;/STRONG&gt; &lt;STRONG&gt;Manifesto &lt;/STRONG&gt;são bem interessantes e estão de acordo com muitos dos posts e discussões que tivemos aqui no blog com a comunidade, veja:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Identificar os serviços através da colaboração com stakeholders de tecnologia e de negócios;&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Verificar que os serviços atendam necessidades de negócio e metas da empresa;&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;SOA pode ser realizada através de uma variedade de tecnologias e padrões;&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Reconhecer que SOA de fato demanda mudanças em vários níveis;&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;entre outros...&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Opinião: &lt;/STRONG&gt;de fato, temos visto diversas empresas falharem na adoção de projetos de SOA. Em alguns casos, as falhas estão relacionadas à escolhas equivocadas dos projetos-alvo; em outros, faltou um suporte maior de diferentes níveis da corporação, com o envolvimento integrado das áreas de soluções, desenvolvimento e infraestrutura. Um projeto de SOA é amplo e exige um envolvimento corporativo para seu sucesso.&lt;/P&gt;
&lt;P&gt;Devido a esses vários problemas, gosto muito da separação entre &lt;STRONG&gt;LITTLE SOA&lt;/STRONG&gt; e &lt;STRONG&gt;BIG SOA&lt;/STRONG&gt;. Sistemas orientados a serviços, com interfaces bem definidas e uma boa organização de processos, com foco no domínio da aplicação são os chamados &lt;STRONG&gt;LITTLE SOA&lt;/STRONG&gt;. &lt;/P&gt;
&lt;P&gt;O grande desafio está nos projetos &lt;STRONG&gt;BIG SOA&lt;/STRONG&gt;, que envolvem diversos domínios de aplicação e departamentos da corporação, exigindo uma estratégia mais ampla e com um impacto direto no negócio. &lt;/P&gt;
&lt;P&gt;Confira também seu anúncio, realizado durante o 2nd International SOA Symposium, em Rotterdan:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/SOAManifesto_17A1/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/SOAManifesto_17A1/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/SOAManifesto_17A1/image_thumb.png" width=244 height=178 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/SOAManifesto_17A1/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;SOA Manifesto Announcement &lt;BR&gt;&lt;/STRONG&gt;Ref.: &lt;A href="http://www.youtube.com/watch?v=TCg16oTZSV0" mce_href="http://www.youtube.com/watch?v=TCg16oTZSV0"&gt;http://www.youtube.com/watch?v=TCg16oTZSV0&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Sem dúvida, &lt;STRONG&gt;Leitura Obrigatória&lt;/STRONG&gt;!!!&lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919277" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/SOA/default.aspx">SOA</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Leitura+Recomendada/default.aspx">Leitura Recomendada</category></item><item><title>Leitura Recomendada: Microsoft Application Architecture Guide 2nd Edition</title><link>http://blogs.msdn.com/wcamb/archive/2009/11/05/leitura-recomendada-microsoft-application-architecture-guide-2nd-edition.aspx</link><pubDate>Thu, 05 Nov 2009 21:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9918258</guid><dc:creator>wcamb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/9918258.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=9918258</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=9918258</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;Como anunciado por &lt;A href="http://blogs.msdn.com/wcamb/archive/2009/10/20/novidades-no-application-architecture-guide-2-0.aspx" rel=nofollow target=_blank mce_href="http://blogs.msdn.com/wcamb/archive/2009/10/20/novidades-no-application-architecture-guide-2-0.aspx"&gt;aqui&lt;/A&gt;, o App Arch Guide 2 foi lançado de forma impressa e já está disponível na Amazon, veja:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LeituraRecomendadaMicrosoftApplicationAr_1149F/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LeituraRecomendadaMicrosoftApplicationAr_1149F/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LeituraRecomendadaMicrosoftApplicationAr_1149F/image_thumb.png" width=184 height=225 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LeituraRecomendadaMicrosoftApplicationAr_1149F/image_thumb.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft® Application Architecture Guide, 2nd Edition (Patterns &amp;amp; Practices) &lt;BR&gt;&lt;/STRONG&gt;Ref.: &lt;A title=http://www.amazon.com/Microsoft%C2%AE-Application-Architecture-Patterns-Practices/dp/073562710X/ref=sr_1_1?ie=UTF8&amp;amp;qid=1257457119&amp;amp;sr=8-1-spell href="http://www.amazon.com/Microsoft%C2%AE-Application-Architecture-Patterns-Practices/dp/073562710X/ref=sr_1_1?ie=UTF8&amp;amp;qid=1257457119&amp;amp;sr=8-1-spell" rel=nofollow target=_blank mce_href="http://www.amazon.com/Microsoft%C2%AE-Application-Architecture-Patterns-Practices/dp/073562710X/ref=sr_1_1?ie=UTF8&amp;amp;qid=1257457119&amp;amp;sr=8-1-spell"&gt;http://www.amazon.com/Microsoft%C2%AE-Application-Architecture-Patterns-Practices/dp/073562710X/ref=sr_1_1?ie=UTF8&amp;amp;qid=1257457119&amp;amp;sr=8-1-spell&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Confira aqui o post do J.D. Meier sobre o anúncio, feito hoje!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Now Available: patterns &amp;amp; practices Application Architecture Book&lt;/STRONG&gt; &lt;BR&gt;Ref.: &lt;A href="http://blogs.msdn.com/jmeier/archive/2009/11/05/now-available-patterns-practices-application-architecture-book.aspx" rel=nofollow target=_blank mce_href="http://blogs.msdn.com/jmeier/archive/2009/11/05/now-available-patterns-practices-application-architecture-book.aspx"&gt;http://blogs.msdn.com/jmeier/archive/2009/11/05/now-available-patterns-practices-application-architecture-book.aspx&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9918258" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/Arquitetura+de+Solu_26002300_231_3B0026002300_245_3B00_es/default.aspx">Arquitetura de Solu&amp;#231;&amp;#245;es</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/patterns+_2600_amp_3B00_+practices/default.aspx">patterns &amp;amp; practices</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Leitura+Recomendada/default.aspx">Leitura Recomendada</category></item><item><title>Exemplo de arquitetura em camadas para o .NET 3.5 SP1</title><link>http://blogs.msdn.com/wcamb/archive/2009/11/04/exemplo-de-arquitetura-em-camadas-para-o-net-3-5-sp1.aspx</link><pubDate>Wed, 04 Nov 2009 16:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9917384</guid><dc:creator>wcamb</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/9917384.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=9917384</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=9917384</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;Semana passada, o especialista &lt;A href="http://blogs.msdn.com/rafaelgodinho/default.aspx" rel=nofollow target=_blank mce_href="http://blogs.msdn.com/rafaelgodinho/default.aspx"&gt;Rafael Godinho&lt;/A&gt; comentou com o pessoal sobre um belo exemplo de projeto em .NET 3.5 SP1, que está disponível no codeplex para estudo. &lt;/P&gt;
&lt;P&gt;O projeto é um exemplo de arquitetura em camadas usando o .NET 3.5 SP1, com interface de serviços WCF e camadas de negócios bem definidas. Com frequência recebo pedidos de exemplos de projeto e organização de arquiteturas em camadas para aplicações sobre o .NET 3.5. &lt;/P&gt;
&lt;P&gt;Assim, aqui vai uma dica interessante de estudo:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LayeredArchitectureSamplefor.NET3.5SP1_13234/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LayeredArchitectureSamplefor.NET3.5SP1_13234/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LayeredArchitectureSamplefor.NET3.5SP1_13234/image_thumb.png" width=536 height=380 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LayeredArchitectureSamplefor.NET3.5SP1_13234/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Layered Architecture Sample for .NET&lt;/STRONG&gt; &lt;BR&gt;Ref.: &lt;A href="http://layersample.codeplex.com/" rel=nofollow target=_blank mce_href="http://layersample.codeplex.com/"&gt;http://layersample.codeplex.com/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Os fontes estão disponíveis para donwload, falta um guia ou passo-a-passo para estudos, mas o projeto é um bom exemplo de organização, que vale o estudo. Confira!&lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9917384" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/Arquitetura+de+Solu_26002300_231_3B0026002300_245_3B00_es/default.aspx">Arquitetura de Solu&amp;#231;&amp;#245;es</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Leitura+Recomendada/default.aspx">Leitura Recomendada</category></item><item><title>Innovation Lab Treinamentos On-Line</title><link>http://blogs.msdn.com/wcamb/archive/2009/11/04/innovation-lab-treinamentos-on-line.aspx</link><pubDate>Wed, 04 Nov 2009 12:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9917279</guid><dc:creator>wcamb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/9917279.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=9917279</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=9917279</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;Vários treinamentos já estão disponíveis através do&lt;STRONG&gt; Innovatio Lab – Treinamentos On-Line, &lt;/STRONG&gt;que agora está com uma aplicação de navegação de conteúdo em Silverlight 3.0. &lt;/P&gt;
&lt;P&gt;Esse material já é muito conhecido de parceiros Microsoft, mas pode ser aproveitado por todos, confira:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/InnovationLabTreinamentosOnLine_1391E/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/InnovationLabTreinamentosOnLine_1391E/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/InnovationLabTreinamentosOnLine_1391E/image_thumb.png" width=528 height=249 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/InnovationLabTreinamentosOnLine_1391E/image_thumb.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Innovation Lab Treinamentos On-Line&lt;/STRONG&gt; &lt;BR&gt;Ref.: &lt;A title=http://www.microsoft.com/brasil/parceiros/dev/innovationlab/ href="http://www.microsoft.com/brasil/parceiros/dev/innovationlab/" rel=nofollow target=_blank mce_href="http://www.microsoft.com/brasil/parceiros/dev/innovationlab/"&gt;http://www.microsoft.com/brasil/parceiros/dev/innovationlab/&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Na figura acima, fiz um destaque ainda para a opção de colocar a aplicação localmente, fora do browser. Esse recursos é nativo do&lt;STRONG&gt; Silverlight 3.0&lt;/STRONG&gt; e permite a instalação do &lt;STRONG&gt;Innovation Lab &lt;/STRONG&gt;em sua versão Off-Line. Basta usar o botão direito do mouse, na opção “&lt;EM&gt;Install Innovation Lab Off-Line onto this computer&lt;/EM&gt;”.&lt;/P&gt;
&lt;P&gt;Em breve, novos treinamentos serão disponibilizados para download.Assim, divulgue mais esse material para a sua equipe.&lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9917279" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Leitura+Recomendada/default.aspx">Leitura Recomendada</category></item><item><title>ebook Arquitetura de Soluções no Download Center do MSDN</title><link>http://blogs.msdn.com/wcamb/archive/2009/10/31/ebook-arquitetura-de-solu-es-no-download-center-do-msdn.aspx</link><pubDate>Sat, 31 Oct 2009 20:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9915719</guid><dc:creator>wcamb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/9915719.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=9915719</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=9915719</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;Disponibilizei o &lt;STRONG&gt;ebook Arquitetura de Soluções&lt;/STRONG&gt; no download center do MSDN, facilitando assim seu acesso, confira:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Download do ebook Arquitetura de Soluções&lt;/STRONG&gt; &lt;BR&gt;Ref.: &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=df61c997-8718-4836-8b4c-eb55042e379e&amp;amp;DisplayLang=pt-br" rel=nofollow target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=df61c997-8718-4836-8b4c-eb55042e379e&amp;amp;DisplayLang=pt-br"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=df61c997-8718-4836-8b4c-eb55042e379e&amp;amp;DisplayLang=pt-br&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Por enquanto é só! Bom feriado para todos e até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9915719" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/Arquitetura+de+Solu_26002300_231_3B0026002300_245_3B00_es/default.aspx">Arquitetura de Solu&amp;#231;&amp;#245;es</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Leitura+Recomendada/default.aspx">Leitura Recomendada</category></item><item><title>Novidades no Application Architecture Guide 2.0</title><link>http://blogs.msdn.com/wcamb/archive/2009/10/20/novidades-no-application-architecture-guide-2-0.aspx</link><pubDate>Tue, 20 Oct 2009 22:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9910223</guid><dc:creator>wcamb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/9910223.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=9910223</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=9910223</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;Que tal o Application Architecture Guide 2.0 no formato .CHM, mais fácil de navegar pelos temas desejados? &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/ApplicationArchitectureGui.0emformatoCHM_11D12/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/ApplicationArchitectureGui.0emformatoCHM_11D12/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/ApplicationArchitectureGui.0emformatoCHM_11D12/image_thumb_1.png" width=125 height=158 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/ApplicationArchitectureGui.0emformatoCHM_11D12/image_thumb_1.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;STRONG&gt;App Arch Guide 2.0a - CHM File &lt;/STRONG&gt;&lt;BR&gt;Ref.: &lt;A href="http://apparchcontrib.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33990" rel=nofollow target=_blank mce_href="http://apparchcontrib.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33990"&gt;http://apparchcontrib.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33990&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;O arquivo acima ainda está em Beta, sendo revisado pelo time do patterns&amp;amp;practices. Feita a ressalva, vale conferir o arquivo!&lt;/P&gt;
&lt;P&gt;Outra novidade é que até o final deste ano, uma versão impressão do App Arch Guide 2.0 será lançada, veja a capa:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/ApplicationArchitectureGui.0emformatoCHM_11D12/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/ApplicationArchitectureGui.0emformatoCHM_11D12/image_6.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/ApplicationArchitectureGui.0emformatoCHM_11D12/image_thumb_2.png" width=184 height=225 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/ApplicationArchitectureGui.0emformatoCHM_11D12/image_thumb_2.png"&gt;&lt;/A&gt; O livro ainda virá com algumas atualizações!!!&lt;/P&gt;
&lt;P&gt;O formato original em PDF da versã0 2.0 encontra-se no link:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;patterns &amp;amp; practices: App Arch Guide 2.0 Knowledge Base &lt;/STRONG&gt;&lt;BR&gt;Ref.: &lt;A href="http://www.codeplex.com/AppArch" rel=nofollow target=_blank mce_href="http://www.codeplex.com/AppArch"&gt;http://www.codeplex.com/AppArch&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9910223" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/Arquitetura+de+Solu_26002300_231_3B0026002300_245_3B00_es/default.aspx">Arquitetura de Solu&amp;#231;&amp;#245;es</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/patterns+_2600_amp_3B00_+practices/default.aspx">patterns &amp;amp; practices</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Leitura+Recomendada/default.aspx">Leitura Recomendada</category></item><item><title>Novo portal do msdn já está no ar!</title><link>http://blogs.msdn.com/wcamb/archive/2009/10/20/novo-portal-do-msdn-j-est-no-ar.aspx</link><pubDate>Tue, 20 Oct 2009 12:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9909839</guid><dc:creator>wcamb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/9909839.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=9909839</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=9909839</wfw:comment><description>&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Novoportaldomsdnjestnoar_12300/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Novoportaldomsdnjestnoar_12300/image_4.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: 0px" title=image border=0 alt=image align=right src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Novoportaldomsdnjestnoar_12300/image_thumb_1.png" width=185 height=66 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Novoportaldomsdnjestnoar_12300/image_thumb_1.png"&gt;&lt;/A&gt; Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;Novidades na página do &lt;STRONG&gt;msdn&lt;/STRONG&gt;! Agora o portal está com novo layout, além de um novo logo!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Novoportaldomsdnjestnoar_12300/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Novoportaldomsdnjestnoar_12300/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Novoportaldomsdnjestnoar_12300/image_thumb.png" width=244 height=172 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Novoportaldomsdnjestnoar_12300/image_thumb.png"&gt;&lt;/A&gt;&amp;nbsp; &lt;BR&gt;Ref.: &lt;A title=http://msdn.microsoft.com/pt-br/default.aspx href="http://msdn.microsoft.com/pt-br/default.aspx" rel=nofollow target=_blank mce_href="http://msdn.microsoft.com/pt-br/default.aspx"&gt;http://msdn.microsoft.com/pt-br/default.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Para os times trabalhando com Windows Azure, o &lt;STRONG&gt;portal de Azure&lt;/STRONG&gt; também mudou:&lt;/P&gt;
&lt;P&gt;Ref.: &lt;A title=http://msdn.microsoft.com/pt-br/azure/default.aspx href="http://msdn.microsoft.com/pt-br/azure/default.aspx" rel=nofollow target=_blank mce_href="http://msdn.microsoft.com/pt-br/azure/default.aspx"&gt;http://msdn.microsoft.com/pt-br/azure/default.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;E para os arquitetos, confira o novo &lt;STRONG&gt;Centro de Arquitetura MSDN&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;Ref.: &lt;A title=http://msdn.microsoft.com/pt-br/architecture/default.aspx href="http://msdn.microsoft.com/pt-br/architecture/default.aspx" rel=nofollow target=_blank mce_href="http://msdn.microsoft.com/pt-br/architecture/default.aspx"&gt;http://msdn.microsoft.com/pt-br/architecture/default.aspx&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9909839" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/Arquitetura+de+Solu_26002300_231_3B0026002300_245_3B00_es/default.aspx">Arquitetura de Solu&amp;#231;&amp;#245;es</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Leitura+Recomendada/default.aspx">Leitura Recomendada</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Windows+Azure/default.aspx">Windows Azure</category></item><item><title>Leitura Recomendada: eBook Arquitetura de Soluções</title><link>http://blogs.msdn.com/wcamb/archive/2009/10/01/ebook-sobre-arquitetura-de-solu-es.aspx</link><pubDate>Thu, 01 Oct 2009 16:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9901916</guid><dc:creator>wcamb</dc:creator><slash:comments>17</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/9901916.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=9901916</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=9901916</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;Comemorando os dois anos deste blog, estou publicando aqui meu primeiro &lt;STRONG&gt;eBook&lt;/STRONG&gt;, sobre &lt;STRONG&gt;Arquitetura de Soluções&lt;/STRONG&gt;! :)&lt;/P&gt;
&lt;P&gt;&lt;A title="ebook Arquitetura de Soluções" href="http://cid-ac0dc53ca97927a5.skydrive.live.com/self.aspx/ebookAS/ebookAS.xps" rel=nofollow target=_blank mce_href="http://cid-ac0dc53ca97927a5.skydrive.live.com/self.aspx/ebookAS/ebookAS.xps"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/eBooksobreArquiteturadeSolues_1484F/image1.png" width=188 height=244 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/eBooksobreArquiteturadeSolues_1484F/image1.png"&gt;&lt;/A&gt; &lt;STRONG&gt;ebook Arquitetura de Soluções&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Ref.: &lt;A href="http://cid-ac0dc53ca97927a5.skydrive.live.com/browse.aspx/ebookAS" target=_blank mce_href="http://cid-ac0dc53ca97927a5.skydrive.live.com/browse.aspx/ebookAS"&gt;http://cid-ac0dc53ca97927a5.skydrive.live.com/browse.aspx/ebookAS&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Pois é, nesse mês de outubro de 2009 o blog “&lt;STRONG&gt;Arquitetura de Soluções&lt;/STRONG&gt;” faz dois anos e parece que foi ontem que ele começou. Já foram mais de &lt;STRONG&gt;270 posts&lt;/STRONG&gt; publicados sobre vários assuntos e temas relacionados à arquitetura de software.&lt;/P&gt;
&lt;P&gt;Para registrar essa data, resolvi consolidar os principais posts por assuntos num ebook, que fica assim disponível para sua leitura off-line. &lt;/P&gt;
&lt;P&gt;Entre os tópicos principais você vai encontrar &lt;STRONG&gt;SOA, SOI, WCF, SAAS, Aplicações Compostas, Windows Azure&lt;/STRONG&gt;, entre outros.&lt;/P&gt;
&lt;P&gt;Como todo ebook, essa é apenas a versão 1.0. Fiquem a vontade para sugestões, comentários ou correções que acharem interessante! &lt;/P&gt;
&lt;P&gt;Espero que gostem! &lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9901916" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/Arquitetura+de+Solu_26002300_231_3B0026002300_245_3B00_es/default.aspx">Arquitetura de Solu&amp;#231;&amp;#245;es</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Leitura+Recomendada/default.aspx">Leitura Recomendada</category></item><item><title>Artigo: Uma introdução ao SQL Azure Database – Um banco relacional na nuvem</title><link>http://blogs.msdn.com/wcamb/archive/2009/10/01/artigo-uma-introdu-o-ao-sql-azure-database-um-banco-relacional-na-nuvem.aspx</link><pubDate>Thu, 01 Oct 2009 15:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9901800</guid><dc:creator>wcamb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/9901800.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=9901800</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=9901800</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;Boas Novas: já está no ar meu novo artigo sobre o SQL Azure Database, o banco relacional sobre a plataforma Windows Azure.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Uma introdução ao SQL Azure Database – Um banco relacional na nuvem &lt;BR&gt;&lt;/B&gt;por Waldemir Cambiucci &lt;BR&gt;Setembro de 2009 &lt;BR&gt;Ref.: &lt;A title="Artigo sobre SQL Azure Database" href="http://msdn.microsoft.com/pt-br/library/ee620562.aspx" rel=nofollow target=_blank mce_href="http://msdn.microsoft.com/pt-br/library/ee620562.aspx"&gt;http://msdn.microsoft.com/pt-br/library/ee620562.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Nesse artigo, falo sobre as novidades, a arquitetura e os principais conceitos do SQL Azure Database, em seu último CPT de agosto!&lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9901800" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/SQL+Azure+Database/default.aspx">SQL Azure Database</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Leitura+Recomendada/default.aspx">Leitura Recomendada</category></item><item><title>Leitura Recomendada: Performance Testing Guidance for Web Applications (e o Azure?)</title><link>http://blogs.msdn.com/wcamb/archive/2009/09/22/leitura-recomendada-performance-testing-guidance-for-web-applications-e-o-azure.aspx</link><pubDate>Tue, 22 Sep 2009 15:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9897967</guid><dc:creator>wcamb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/9897967.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=9897967</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=9897967</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;O assunto hoje é Web e como podemos organizar testes de performance para aplicações Web. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LeituraRecomendadaPerformanceTestingGuid_1394A/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LeituraRecomendadaPerformanceTestingGuid_1394A/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px 10px 10px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image align=left src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LeituraRecomendadaPerformanceTestingGuid_1394A/image_thumb.png" width=146 height=182 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LeituraRecomendadaPerformanceTestingGuid_1394A/image_thumb.png"&gt;&lt;/A&gt;Apesar do documento já ser antigo, a abordagen de testes sugerida, a definição de fronteiras e os cuidados no processo de tuning propostos fornecem uma boa perspectiva sobre o tema no ambiente Web. Vale a leitura.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Performance Testing Guidance for Web Applications&lt;/STRONG&gt; &lt;BR&gt;Ref.: &lt;A href="http://www.codeplex.com/PerfTestingGuide" rel=nofollow target=_blank mce_href="http://www.codeplex.com/PerfTestingGuide"&gt;http://www.codeplex.com/PerfTestingGuide&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Algumas pessoas me perguntaram sobre tuning Web esses dias, por isso resgatei o documento acima. &lt;/P&gt;
&lt;P&gt;Outro aspecto interessante é em relação ao tuning de aplicações sobre o Windows Azure. Esse assunto vai dar muita discussão, pois pense bem, se seu software é cobrado pelo uso, pelo espaço utilizado para armazenamento, pelo tráfego em bytes que ele gera ou mesmo pelo número de instâncias que ele executa, será quase obrigatório modelar/implementar seu serviço para a nuvem de um modo eficiente, economizando esses fatores de cobrança. Por exemplo, você deve evitar armazenar grande blocos de string e XML desestruturados quando possível, criando representações mais enxutas para suas tables ou blobs. Ao mesmo tempo, isso deve economizar alguns byutes de transferência entre a nuvem e seu software cliente, on-premise. Ainda, testes avaliando o número de instâncias que você realmente precisa para sua aplicação serão recomendados.&lt;/P&gt;
&lt;P&gt;Creio que em breve, documentos do patterns &amp;amp; practices nessa linha de otimização/tunig serão obrigatórios. Ok, vou falar com o time para eles fazerem… ;) &lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9897967" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/patterns+_2600_amp_3B00_+practices/default.aspx">patterns &amp;amp; practices</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Leitura+Recomendada/default.aspx">Leitura Recomendada</category></item><item><title>Programação Paralela com DryadLINQ</title><link>http://blogs.msdn.com/wcamb/archive/2009/09/21/programa-o-paralela-com-dryadlinq.aspx</link><pubDate>Mon, 21 Sep 2009 17:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9897562</guid><dc:creator>wcamb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/9897562.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=9897562</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=9897562</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;Depois de um post do Otávio na semana passada, acabei dando uma circulada pelos projetos da &lt;STRONG&gt;Microsoft Research&lt;/STRONG&gt; e encontrei algo bem legal!&lt;/P&gt;
&lt;P&gt;Para quem não viu, o &lt;A href="http://blogs.msdn.com/otavio/archive/2009/09/12/mapreduce-no-windows-azure.aspx" rel=nofollow target=_blank mce_href="http://blogs.msdn.com/otavio/archive/2009/09/12/mapreduce-no-windows-azure.aspx"&gt;Otávio&lt;/A&gt; falou rapidamente sobre &lt;A title=MapReducing href="http://en.wikipedia.org/wiki/Mapreduce" rel=nofollow target=_blank mce_href="http://en.wikipedia.org/wiki/Mapreduce"&gt;MapReducing&lt;/A&gt;, uma estratégia interessante para a divisão de tarefas no processamento paralelo, que é bem aderente para uma série de cenários com demanda de alta performance, como em pesquisas científicas e simulações.&lt;/P&gt;
&lt;P&gt;Usando as palavras do Otávio, &lt;EM&gt;&lt;FONT color=#0000a0&gt;“…a idéia é simples: se quisermos aumentar o paralelismo de uma operação, um processo Mestre deve dividir a tarefa em diversas partições, uma para cada processo Trabalhador. Chamamos este passo de Map. Em seguida, cada processo retorna seu resultado parcial para o processo Mestre, que aglutina e retorna todas as respostas para quem requisitou o processamento. Chamamos este passo de Reduce…”&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;O post original continua a explicação sobre o tema e como podemos aplicar a estratégia sobre o &lt;STRONG&gt;Windows Azure&lt;/STRONG&gt;, um ambiente de alta escalabilidade e armazenamento de dados ilimitado. Tipos como &lt;STRONG&gt;Web Roles, Worker Roles, Queues&lt;/STRONG&gt; e &lt;STRONG&gt;Tables&lt;/STRONG&gt; permitem uma implementação suave desse tipo de abordagem para uma computação de alto desempenho.&lt;/P&gt;
&lt;P&gt;Na Microsoft Research, encontrei o projeto &lt;STRONG&gt;DryadLINQ&lt;/STRONG&gt;, que é um ambiente de programação para a construção de aplicações paralelas de alta escalabilidade de dados, rodando sobre clusters de PC. Como descrito pelo time da Research, o objetivo do projeto é tornar a computação paralela simples o suficiente para projetos do dia-a-dia. &lt;/P&gt;
&lt;P&gt;O desenho abaixo ilustra a arquitetura do projeto &lt;STRONG&gt;DryadLINQ&lt;/STRONG&gt;, veja: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DryadLINQ_10FD2/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DryadLINQ_10FD2/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DryadLINQ_10FD2/image_thumb.png" width=510 height=340 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DryadLINQ_10FD2/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;DryadLINQ&lt;/STRONG&gt; …pronuncia-se [dr’aied link] :) &lt;BR&gt;Ref.: &lt;A href="http://research.microsoft.com/en-us/projects/dryadLINQ/" rel=nofollow target=_blank mce_href="http://research.microsoft.com/en-us/projects/dryadLINQ/"&gt;http://research.microsoft.com/en-us/projects/dryadLINQ/&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Já está disponível uma versão acadêmica para testes, assim como uma documentação em .PDF bem completa. A partir desta documentação, retirei a listagem abaixo, onde vemos a referência para a biblioteca &lt;STRONG&gt;LinqToDryad&lt;/STRONG&gt; e o código para a listagem de conteúdo de um arquivo texto (só para ilustrar).&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: silver 1px solid; TEXT-ALIGN: left; BORDER-LEFT: silver 1px solid; PADDING-BOTTOM: 4px; LINE-HEIGHT: 12pt; BACKGROUND-COLOR: #f4f4f4; MARGIN: 20px 0px 10px; PADDING-LEFT: 4px; WIDTH: 97.5%; PADDING-RIGHT: 4px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; MAX-HEIGHT: 200px; FONT-SIZE: 8pt; OVERFLOW: auto; BORDER-TOP: silver 1px solid; CURSOR: text; BORDER-RIGHT: silver 1px solid; PADDING-TOP: 4px" id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum1&gt;   1:&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum2&gt;   2:&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System.Collections.Generic;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum3&gt;   3:&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System.Linq;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum4&gt;   4:&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System.Text;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum5&gt;   5:&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; LinqToDryad;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum6&gt;   6:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum7&gt;   7:&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;class&lt;/SPAN&gt; Program&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum8&gt;   8:&lt;/SPAN&gt; {&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum9&gt;   9:&lt;/SPAN&gt;     &lt;SPAN style="COLOR: #0000ff"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;void&lt;/SPAN&gt; ShowOnConsole&amp;lt;T&amp;gt;(IQueryable&amp;lt;T&amp;gt; data)&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum10&gt;  10:&lt;/SPAN&gt;     {&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum11&gt;  11:&lt;/SPAN&gt;         &lt;SPAN style="COLOR: #0000ff"&gt;foreach&lt;/SPAN&gt; (T r &lt;SPAN style="COLOR: #0000ff"&gt;in&lt;/SPAN&gt; data)&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum12&gt;  12:&lt;/SPAN&gt;             Console.WriteLine(&lt;SPAN style="COLOR: #006080"&gt;"{0}"&lt;/SPAN&gt;, r);&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum13&gt;  13:&lt;/SPAN&gt;     }&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum14&gt;  14:&lt;/SPAN&gt;     &lt;SPAN style="COLOR: #0000ff"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;void&lt;/SPAN&gt; Main(&lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt;[] args)&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum15&gt;  15:&lt;/SPAN&gt;     {&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum16&gt;  16:&lt;/SPAN&gt;         &lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt; basedirectory = &lt;SPAN style="COLOR: #006080"&gt;@"file://\\machine\directory"&lt;/SPAN&gt;;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum17&gt;  17:&lt;/SPAN&gt;         &lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt; filename = &lt;SPAN style="COLOR: #006080"&gt;"inputfile.txt"&lt;/SPAN&gt;;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum18&gt;  18:&lt;/SPAN&gt;         DryadDataContext ddc = &lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; DryadDataContext(basedirectory);&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum19&gt;  19:&lt;/SPAN&gt;         DryadTable&amp;lt;LineRecord&amp;gt; table = ddc.GetTable&amp;lt;LineRecord&amp;gt;(filename);&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum20&gt;  20:&lt;/SPAN&gt;         ShowOnConsole(table);&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum21&gt;  21:&lt;/SPAN&gt;         Console.ReadKey();&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum22&gt;  22:&lt;/SPAN&gt;     }&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum23&gt;  23:&lt;/SPAN&gt; }&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;Para conferir a versão já disponívei e alguns exemplos em &lt;STRONG&gt;DryadLINQ&lt;/STRONG&gt;, veja:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Dryad and DryadLINQ: Academic Release&lt;/STRONG&gt; &lt;BR&gt;Ref.: &lt;A href="http://connect.microsoft.com/site/sitehome.aspx?SiteID=891" rel=nofollow target=_blank mce_href="http://connect.microsoft.com/site/sitehome.aspx?SiteID=891"&gt;http://connect.microsoft.com/site/sitehome.aspx?SiteID=891&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Some sample programs written in DryadLINQ&lt;/STRONG&gt; &lt;BR&gt;Ref.: &lt;A href="http://research.microsoft.com/pubs/66811/tr-2008-74.pdf" rel=nofollow target=_blank mce_href="http://research.microsoft.com/pubs/66811/tr-2008-74.pdf"&gt;http://research.microsoft.com/pubs/66811/tr-2008-74.pdf&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;A programação paralela envolve diversos desafios, assim como abordagens específicas para seu tratamento. &lt;/P&gt;
&lt;P&gt;Porém, temos visto muito de sua aplicação restrita em ambientes de pesquisa e universidades. Creio que iniciativas como o &lt;STRONG&gt;DryadLINQ&lt;/STRONG&gt; e mesmo técnicas como o &lt;STRONG&gt;MapReducing&lt;/STRONG&gt; sobre ambientes de computação na nuvem devem trazer a programação paralela para mais perto das iniciativas comerciais num futuro próximo. O próprio&lt;STRONG&gt; .NET 4.0&lt;/STRONG&gt; está chegando com alguns recursos importantes para programação paralela, como o &lt;STRONG&gt;Task Parallel Library&lt;/STRONG&gt; (TPL), o &lt;STRONG&gt;Parallel LINQ&lt;/STRONG&gt; (PLINQ), o &lt;STRONG&gt;Coordination Data Structures&lt;/STRONG&gt; (CDS), além de melhorias na &lt;STRONG&gt;System.Threading&lt;/STRONG&gt;. Cada um desses recursos deve merecer um post dedicado no futuro.&lt;/P&gt;
&lt;P&gt;Olhando um pouco o &lt;STRONG&gt;Parallel LINQ (PLINQ),&lt;/STRONG&gt; ele permite aos desenvolvedores aproveitarem os múltiplos núcleos de uma máquina multicore, através do modelo de programação do LINQ.&lt;/P&gt;
&lt;P&gt;Veja abaixo um exemplo de código com &lt;STRONG&gt;PLINQ&lt;/STRONG&gt;, onde notamos o uso da cláusula &lt;STRONG&gt;.AsParallel(), &lt;/STRONG&gt;que ativa o aproveitamento multicore disponível na máquina:&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: silver 1px solid; TEXT-ALIGN: left; BORDER-LEFT: silver 1px solid; PADDING-BOTTOM: 4px; LINE-HEIGHT: 12pt; BACKGROUND-COLOR: #f4f4f4; MARGIN: 20px 0px 10px; PADDING-LEFT: 4px; WIDTH: 97.5%; PADDING-RIGHT: 4px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; MAX-HEIGHT: 200px; FONT-SIZE: 8pt; OVERFLOW: auto; BORDER-TOP: silver 1px solid; CURSOR: text; BORDER-RIGHT: silver 1px solid; PADDING-TOP: 4px" id=codeSnippetWrapper&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id=codeSnippet&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum1&gt;   1:&lt;/SPAN&gt; var q = from p &lt;SPAN style="COLOR: #0000ff"&gt;in&lt;/SPAN&gt; people.AsParallel()&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum2&gt;   2:&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;where&lt;/SPAN&gt; p.Name == queryInfo.Name &amp;amp;&amp;amp; &lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum3&gt;   3:&lt;/SPAN&gt;               p.State == queryInfo.State &amp;amp;&amp;amp;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum4&gt;   4:&lt;/SPAN&gt;               p.Year &amp;gt;= yearStart &amp;amp;&amp;amp;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum5&gt;   5:&lt;/SPAN&gt;               p.Year &amp;lt;= yearEnd&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum6&gt;   6:&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; orderby p.Year ascending&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New', courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #606060" id=lnum7&gt;   7:&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select p;&lt;/PRE&gt;&lt;!--CRLF--&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Um assunto puxa o outro e as oportunidades são imensas. &lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9897562" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/Arquitetura+de+Solu_26002300_231_3B0026002300_245_3B00_es/default.aspx">Arquitetura de Solu&amp;#231;&amp;#245;es</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Leitura+Recomendada/default.aspx">Leitura Recomendada</category></item><item><title>Leitura Recomendada: Microsoft Silverlight 3 Offline Documentation</title><link>http://blogs.msdn.com/wcamb/archive/2009/09/04/leitura-recomendada-microsoft-silverlight-3-offline-documentation.aspx</link><pubDate>Fri, 04 Sep 2009 21:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9891556</guid><dc:creator>wcamb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/9891556.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=9891556</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=9891556</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;Semana passada tivemos a publicação da documentação offline do Silverlight 3, bem completa. Como sei de algumas empresas que estão em franco desenvolvimento com SL3 para aplicações LOB, vale a dica de download:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/86941a95dcd1_D959/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/86941a95dcd1_D959/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/86941a95dcd1_D959/image_thumb_1.png" width=449 height=545 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/86941a95dcd1_D959/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft Silverlight 3 Offline Documentation &lt;BR&gt;&lt;/STRONG&gt;Date Published: 8/28/2009 &lt;BR&gt;Ref.: &lt;A title=http://www.microsoft.com/downloads/details.aspx?familyid=0A9773A7-C854-41FA-B73D-535ABFB73BAF&amp;amp;displaylang=en href="http://www.microsoft.com/downloads/details.aspx?familyid=0A9773A7-C854-41FA-B73D-535ABFB73BAF&amp;amp;displaylang=en" rel=nofollow target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=0A9773A7-C854-41FA-B73D-535ABFB73BAF&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=0A9773A7-C854-41FA-B73D-535ABFB73BAF&amp;amp;displaylang=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Aproveitando, se você ainda não viu os recursos do &lt;STRONG&gt;Silverlight Toolkit&lt;/STRONG&gt;, tem alguns controles que vão te interessar nesse pacote, recomendo!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Silverlight 3 Toolkit July 2009 &lt;BR&gt;&lt;/STRONG&gt;&lt;A href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24246" rel=nofollow target=_blank mce_href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24246"&gt;http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24246&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Outro pacote importante é o Tools for Visual Studio:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft® Silverlight™ 3 Tools for Visual Studio 2008 SP1&lt;/STRONG&gt; &lt;BR&gt;Ref.: &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=9442b0f2-7465-417a-88f3-5e7b5409e9dd&amp;amp;displaylang=en" rel=nofollow target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=9442b0f2-7465-417a-88f3-5e7b5409e9dd&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=9442b0f2-7465-417a-88f3-5e7b5409e9dd&amp;amp;displaylang=en&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9891556" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Leitura+Recomendada/default.aspx">Leitura Recomendada</category></item><item><title>Leitura Recomendada: artigos sobre Entity Framework</title><link>http://blogs.msdn.com/wcamb/archive/2009/09/03/leitura-recomendada-artigos-sobre-entity-framework.aspx</link><pubDate>Fri, 04 Sep 2009 02:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9891139</guid><dc:creator>wcamb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/9891139.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=9891139</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=9891139</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;Depois de uma semana bem agitada com Tech-ed Brasil, palestras e até uma General Session para variar um pouco, esta semana tivemos algumas discussões com equipes de projetos em empresas grandes.&lt;/P&gt;
&lt;P&gt;Uma dessas reuniões tratou de aspectos de &lt;STRONG&gt;Entity Framework&lt;/STRONG&gt; e o uso de uma camada de persistência de dados em aplicações Web. &lt;/P&gt;
&lt;P&gt;Imagine um cenário de aplicação Web na intranet de uma empresa, com mais de 3000 usuários previstos, 350 usuários simultâneos, uma análise de 1500 pontos de função e um modelo de dados em torno de 450 tabelas. &lt;/P&gt;
&lt;P&gt;Esse cenário é até comum no mercado e podemos considerar o desenho abaixo uma bela simplificação, posicionando alguns componentes interessantes:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LeiturarecomendadaartigossobreEntityFram_11D4E/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LeiturarecomendadaartigossobreEntityFram_11D4E/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LeiturarecomendadaartigossobreEntityFram_11D4E/image_thumb.png" width=393 height=427 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LeiturarecomendadaartigossobreEntityFram_11D4E/image_thumb.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Aqui, aproveitei um desenho da sessão do Condé (&lt;STRONG&gt;DAT301&lt;/STRONG&gt;) do último Tech-ed Brasil, valeu &lt;A href="http://blogs.msdn.com/conde/archive/2009/08/27/tech-ed-2009-links.aspx" rel=nofollow target=_blank mce_href="http://blogs.msdn.com/conde/archive/2009/08/27/tech-ed-2009-links.aspx"&gt;Condé&lt;/A&gt;! :)&lt;/P&gt;
&lt;P&gt;Veja que já estou apondando algumas decisões para o projeto, como o uso de &lt;STRONG&gt;ASP.NET MVC&lt;/STRONG&gt; para a interface Web, &lt;STRONG&gt;serviços WCF&lt;/STRONG&gt; para as regras de negócio e uma camada de persistência com &lt;STRONG&gt;Entity Framework&lt;/STRONG&gt;, implementando vários EDMX, um para cada domínio de dados que participará da aplicação.&lt;/P&gt;
&lt;P&gt;Para fundamentar a camada de dados com Entity Framework, alguns artigos são interessantes pelos exemplos fornecidos, veja:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Criando um modelo de dados de entidade &lt;BR&gt;&lt;/STRONG&gt;By John Papa &lt;BR&gt;Ref.: &lt;A href="http://msdn.microsoft.com/pt-br/magazine/cc163286.aspx" rel=nofollow target=_blank mce_href="http://msdn.microsoft.com/pt-br/magazine/cc163286.aspx"&gt;http://msdn.microsoft.com/pt-br/magazine/cc163286.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Acesso a dados flexível com LINQ to SQL e Entity Framework &lt;BR&gt;&lt;/STRONG&gt;By Anthony Sneed &lt;BR&gt;Ref.: &lt;A href="http://msdn.microsoft.com/pt-br/magazine/dd263098.aspx" rel=nofollow target=_blank mce_href="http://msdn.microsoft.com/pt-br/magazine/dd263098.aspx"&gt;http://msdn.microsoft.com/pt-br/magazine/dd263098.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Obtenha uma modelagem de dados flexível com o Entity Framework &lt;BR&gt;&lt;/STRONG&gt;By Elisa Flasko &lt;BR&gt;Ref.: &lt;A href="http://msdn.microsoft.com/pt-br/magazine/cc700331.aspx" rel=nofollow target=_blank mce_href="http://msdn.microsoft.com/pt-br/magazine/cc700331.aspx"&gt;http://msdn.microsoft.com/pt-br/magazine/cc700331.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Expor e utilizar dados no mundo de serviços web &lt;BR&gt;&lt;/STRONG&gt;By Elisa Flasko e Mike Flasko &lt;BR&gt;Ref.: &lt;A href="http://msdn.microsoft.com/pt-br/magazine/cc748663.aspx" rel=nofollow target=_blank mce_href="http://msdn.microsoft.com/pt-br/magazine/cc748663.aspx"&gt;http://msdn.microsoft.com/pt-br/magazine/cc748663.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;N-Tier Application Patterns &lt;BR&gt;&lt;/STRONG&gt;By Daniel Simmons &lt;BR&gt;Ref.: &lt;A href="http://msdn.microsoft.com/pt-br/magazine/ee321569.aspx" rel=nofollow target=_blank mce_href="http://msdn.microsoft.com/pt-br/magazine/ee321569.aspx"&gt;http://msdn.microsoft.com/pt-br/magazine/ee321569.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;EF v2 and Data Access Architecture Best Practices &lt;BR&gt;&lt;/STRONG&gt;By Tim Mallalieu &lt;BR&gt;Ref.: &lt;A href="http://msdn.microsoft.com/pt-br/magazine/ee236639.aspx" rel=nofollow target=_blank mce_href="http://msdn.microsoft.com/pt-br/magazine/ee236639.aspx"&gt;http://msdn.microsoft.com/pt-br/magazine/ee236639.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Para esse projeto, ainda outros aspectos serão importantes, como:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;segurança de mensagens e de transporte&lt;/LI&gt;
&lt;LI&gt;validação de parâmetros e métodos dos serviços WCF&lt;/LI&gt;
&lt;LI&gt;caching de dados&lt;/LI&gt;
&lt;LI&gt;tratamento de exceção&lt;/LI&gt;
&lt;LI&gt;hosting de serviços WCF&lt;/LI&gt;
&lt;LI&gt;administração do ambiente em produção&lt;/LI&gt;
&lt;LI&gt;transferência de dados entre camadas, via &lt;A href="http://msdn.microsoft.com/pt-br/magazine/dd263098.aspx" rel=nofollow target=_blank mce_href="http://msdn.microsoft.com/pt-br/magazine/dd263098.aspx"&gt;DTO&lt;/A&gt; – Data Transfer Object, entre outros…&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Mas como eu gostaria de destacar apenas as questões de Entity Framework, fica aqui uma última dica de leitura, o blog do Danny Simmons, gerente de produto do Entity Framework, que tem mantido um excelente blog sobre EF.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Danny Simmons’s Blog&lt;/STRONG&gt; &lt;BR&gt;Ref.: &lt;A href="http://blogs.msdn.com/dsimmons/" rel=nofollow target=_blank mce_href="http://blogs.msdn.com/dsimmons/"&gt;http://blogs.msdn.com/dsimmons/&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Bastante coisa para ler, bons exemplos para testar!!! &lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9891139" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Leitura+Recomendada/default.aspx">Leitura Recomendada</category></item><item><title>Revista Mundo .Net : Construindo aplicações para o Windows Azure</title><link>http://blogs.msdn.com/wcamb/archive/2009/08/22/revista-mundo-net-construindo-aplica-es-para-o-windows-azure.aspx</link><pubDate>Sun, 23 Aug 2009 01:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9880982</guid><dc:creator>wcamb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/9880982.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=9880982</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=9880982</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;Boas novas: já está nas bancas a nova edição da revista Mundo .NET, com mais um artigo especial sobre a “Plataforma Windows Azure”, veja: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Rev.NetConstruindoaplicaesparaoWindowsAz_10E46/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Rev.NetConstruindoaplicaesparaoWindowsAz_10E46/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 0px 10px 10px 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image align=left src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Rev.NetConstruindoaplicaesparaoWindowsAz_10E46/image_thumb.png" width=153 height=193 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Rev.NetConstruindoaplicaesparaoWindowsAz_10E46/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Rev.NetConstruindoaplicaesparaoWindowsAz_10E46/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Rev.NetConstruindoaplicaesparaoWindowsAz_10E46/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Rev.NetConstruindoaplicaesparaoWindowsAz_10E46/image_thumb_1.png" width=221 height=97 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Rev.NetConstruindoaplicaesparaoWindowsAz_10E46/image_thumb_1.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Neste artigo, eu passo uma visão sobre os recursos e primeiros passos para o desenvolvimento de soluções sobre o Windows Azure.&lt;/P&gt;
&lt;P&gt;Ainda temos uma jornada até o lançamento final da plataforma, que vai ocorrer em Novembro deste ano. Até lá, novos CTPs e pacotes serão publicados, mudando alguns dos passos apresentados no artigo. Por isso, procurei colocar uma visão ampla, sobre os processos e as principais capacidades que o desenvolvedor e o arquiteto precisam conhecer. Espero que gostem!&lt;/P&gt;
&lt;P&gt;Não deixe de conferir e enviar seus comentários, como sempre! &lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :) &lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9880982" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/Leitura+Recomendada/default.aspx">Leitura Recomendada</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Azure+Services+Platform/default.aspx">Azure Services Platform</category></item><item><title>Leitura Recomendada: The Architecture Journal #20 e o papel do arquiteto</title><link>http://blogs.msdn.com/wcamb/archive/2009/07/06/leitura-recomendada-the-architecture-journal-20-e-o-papel-do-arquiteto.aspx</link><pubDate>Mon, 06 Jul 2009 23:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9820564</guid><dc:creator>wcamb</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/9820564.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=9820564</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=9820564</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;A edição n.20 do “&lt;STRONG&gt;The Architecture Journal&lt;/STRONG&gt;” em inglês já está disponível, na verdade desde junho :)&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LeituraRecomendadaTheArchitectureJournal_F821/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LeituraRecomendadaTheArchitectureJournal_F821/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px 10px 10px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="The Architecture Journal" border=0 alt="The Architecture Journal" align=left src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LeituraRecomendadaTheArchitectureJournal_F821/image_thumb.png" width=134 height=175 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/LeituraRecomendadaTheArchitectureJournal_F821/image_thumb.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;O tema desta edição foi “Arquitetura em Tempos Turbulentos”, bem atual.&lt;/P&gt;
&lt;P&gt;Veja mais aqui: &lt;A title=http://msdn.microsoft.com/en-us/architecture/bb410935.aspx href="http://msdn.microsoft.com/en-us/architecture/bb410935.aspx" rel=nofollow target=_blank mce_href="http://msdn.microsoft.com/en-us/architecture/bb410935.aspx"&gt;http://msdn.microsoft.com/en-us/architecture/bb410935.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Nesse tema, gostaria de levantar um assunto: minhas últimas conversas com arquitetos e profissionais de TI envolveram diversos aspectos relacionados com a plataforma de aplicações, integração entre serviços .NET e serviços em Java, construção de serviços e cenários SOA/SOI, melhores práticas para WCF e WF, assim como direções para times de arquitetura e desenvolvimento. Porém, sempre que questionei os aspectos de negócio envolvidos na solução ou mesmo sobre o impacto de cada decisão de projeto no negócio da empresa, foram poucas as respostas. :(&lt;/P&gt;
&lt;P&gt;De fato, tenho sentido uma falta constante de envolvimento de muitos arquitetos em relação aos motivadores de TI. Já falei um pouco desses motivadores num post maior, &lt;A href="http://blogs.msdn.com/wcamb/archive/2008/04/25/um-mal-necess-rio-ou-um-elemento-estrat-gico-o-que-voc-espera-de-sua-ti.aspx" target=_blank mce_href="http://blogs.msdn.com/wcamb/archive/2008/04/25/um-mal-necess-rio-ou-um-elemento-estrat-gico-o-que-voc-espera-de-sua-ti.aspx"&gt;aqui&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Quando escolhemos entre Web Forms e MVC, por exemplo, o impacto não está relacionado apenas em aspectos de programação, maior controle sobre o código HTML ou a aplicação de funcionalidades RAD. Existe um impacto de médio e longo prazo em manutenção, composição, testabilidade, operação, etc. que resulta em maiores ou menores oportunidades de negócio para a empresa. Isso é mais forte em algumas indústrias, seja para cenários de ISV’s, pequenas e médias empresas ou corporações.&lt;/P&gt;
&lt;P&gt;Sempre falamos que é responsabilidade do arquiteto estar envolvido com os aspectos de negócio que direcionam cada decisão técnica. Pensar em &lt;STRONG&gt;cenários de negócio&lt;/STRONG&gt; ao invés de &lt;STRONG&gt;features&lt;/STRONG&gt; ou funcionalidades de produto é parte obrigatória dessa visão. Porém, por que não temos observado isso no dia-a-dia de nossas empresas e arquitetos? Atualmente, tem sido mais fácil encontrar arquitetos operacionais do que estratégicos.&lt;/P&gt;
&lt;P&gt;Será que este comportamento é consequência da crise deste primeiro semestre, que atingiu o mercado em diferentes níveis para cada indústria? Ou o papel do arquiteto (de soluções, infra-estrutura e enterprise) no Brasil continua em formação, abrangendo vários sabores de atuação? Falta maior capacitação para a visão de negócio na formação de nossos arquitetos hoje em dia? &lt;/P&gt;
&lt;P&gt;O que vocês acham? &lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9820564" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/Leitura+Recomendada/default.aspx">Leitura Recomendada</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Opini_26002300_227_3B00_o/default.aspx">Opini&amp;#227;o</category></item></channel></rss>