<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://igoravl.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2figoravl.spaces.live.com%2fblog%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Igor Abade V. Leite (a.k.a "T-Shooter"): Blog</title><description /><link>http://igoravl.spaces.live.com/blog</link><language>en-US</language><pubDate>Mon, 13 Oct 2008 03:32:00 GMT</pubDate><lastBuildDate>Mon, 13 Oct 2008 03:32:00 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://igoravl.spaces.live.com/feed.rss</cf:parentRSS><live:type>blog</live:type><live:identity><live:id>157475768196638370</live:id><live:alias>igoravl</live:alias></live:identity><image><title>Igor Abade V. Leite (a.k.a "T-Shooter"): Blog</title><url>http://blufiles.storage.live.com/y1pYqJsx-7cmLpXWbCSP0ncVyJsXac_KARFHci1ld5FBJ9KS-OO0_gtfTzbmR6-voKu</url><link>http://igoravl.spaces.live.com/blog</link></image><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>jQuery e Microsoft – Sinal dos tempos?</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!945.entry</link><description>&lt;p&gt;Este blog foi criado para falar &lt;em&gt;exclusivamente&lt;/em&gt; sobre Visual Studio Team System. Hoje vou abrir uma pequena exceção. &lt;p&gt;Não é novidade para as pessoas que me conhecem quão apaixonado sou pelo produto – ter recebido o título de MVP foi essencialmente uma consequência dessa paixão. &lt;p&gt;Acho que é natural para qualquer pessoa apaixonada sempre querer o melhor para sua paixão. Neste caso, obviamente torço (e faço minha parte, claro!) para que o VSTS seja a melhor e mais utilizada solução de ALM do mundo. &lt;p&gt;Mas e o quê isso tem a ver com o título deste post? Bem, inúmeras vezes perguntamos ao time de produto porque investir seu limitado orçamento (acredite, o orçamento dos times de produto na Microsoft é limitado sim :)) desenvolvendo novas soluções quando existem excelentes alternativas no mundo &lt;em&gt;open-source&lt;/em&gt;? Um exemplo bastante recorrente de discussão é &lt;strong&gt;NUnit vs. MSTest&lt;/strong&gt;. Por quê a Microsoft criou um novo framework de testes unitários ao invés de usar o NUnit? Empresas como IBM e Oracle têm se beneficiado de um relacionamento mais estreito com projetos de código-aberto. &lt;p&gt;A resposta do time de produto faz sentido – até certo ponto. Mas antes de dizer qual a resposta do time de produto, sabe a pena refletirmos um pouco sobre como a comunidade de uma forma geral enxerga o relacionamento da Microsoft com projetos de código aberto. Muitas pessoas acreditam que a Microsoft é estritamente contra código aberto, que quer sufocar qualquer projeto que não saia de seus laboratórios… Bem, nada mais longe da verdade: &lt;ol&gt; &lt;li&gt;Antes de mais nada, deixemos de lado o romantismo tolo seguido por muitos dos defensores de projetos de código aberto. A Microsoft, como qualquer outra empresa neste nosso mundo capitalista, visa ao lucro. Ponto. Sendo assim, ela vai “combater” a concorrência aos seus produtos a fim de aumentar suas vendas. Nesse sentido, seus concorrentes são outros produtos similares aos que ela própria desenvolve – independentemente de serem &lt;em&gt;open-source&lt;/em&gt; ou &lt;em&gt;closed-source&lt;/em&gt;. Por isso, não faz sentido dizer que a Microsoft seja contra o modelo de desenvolvimentos de softwares em código aberto;  &lt;li&gt;A própria Microsoft já liberou MUITOS projetos de código aberto que são consumidos livremente pela comunidade, abertos à contribuições, melhorias e sugestões vindas de desenvolvedores do mundo inteiro;  &lt;li&gt;Apesar de já existirem sites que ofereciam hospedagem de projetos de código aberto (&lt;a href="http://www.sf.net"&gt;SourceForge&lt;/a&gt; é um dos mais conhecidos), havia espaço para um novo portal, capaz de oferecer o melhor em termos de controle de versão e rastreamento de itens de trabalho. Com o &lt;a href="http://www.codeplex.com/"&gt;CodePlex&lt;/a&gt; a Microsoft mostrou que pode apoiar o desenvolvimento de qualquer projeto, usando qualquer licença de código aberto – “&lt;em&gt;no strings attached”&lt;/em&gt;.&lt;/ol&gt; &lt;p&gt;Porém, na minha opinião faltava um último passo da Microsoft no seu relacionamento com F/OSS: se libertar da “Síndrome do Não-Inventado-Aqui”. O tal do &lt;em&gt;not-invented-here&lt;/em&gt; sempre impediu que a Microsoft usasse em seus produtos qualquer coisa que fosse desenvolvida por terceiros – principalmente código aberto. Agora podemos voltar aos motivos do time de produto para não usar o NUnit: do ponto de vista legal, sempre foi bastante nebuloso entender o que aconteceria do ponto de vista da Propriedade Intelectual se a Microsoft usasse código de terceiros. Na dúvida, ela sempre se limitou ao seu próprio código (o do &lt;em&gt;invented-here&lt;/em&gt;). &lt;p&gt;Hoje vi um &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx"&gt;post do ScottGu&lt;/a&gt; que pode significar o começo da mudança. A Microsoft vai distribuir um projeto &lt;em&gt;open-source&lt;/em&gt; – jQuery, um framework de programação JavaScript – como parte do ASP.NET MVC e do próprio Visual Studio! &lt;p&gt;Tomara que isso realmente signifique que a Microsoft possa, daqui para a frente, usar os excelentes projetos &lt;em&gt;open-source&lt;/em&gt; que existem para criar produtos ainda melhores, contribuindo de volta para a comunidade as melhorias que vierem como parte dessa utilização. &lt;p&gt;Sinal de bons tempos por vir? Torço para isso.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+jQuery+e+Microsoft+%e2%80%93+Sinal+dos+tempos%3f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!945.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!945.entry</guid><pubDate>Mon, 29 Sep 2008 02:06:27 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!945/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!945.entry#comment</wfw:comment><dcterms:modified>2008-09-29T02:23:00Z</dcterms:modified></item><item><title>CodePlex em destaque: Team Development with Team Foundation Server (tfsguide)</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!925.entry</link><description>&lt;p&gt;Como prometido, esta é a primeira edição do &lt;strong&gt;CodePlex em destaque&lt;/strong&gt; – primeira de muitas, espero eu &lt;img alt="smile_regular" src="http://spaces.live.com/rte/emoticons/smile_regular.gif"&gt;. &lt;p&gt;O projeto que gostaria de destacar hoje é o &lt;a href="http://www.codeplex.com/TFSGuide"&gt;Team Development with Team Foundation Server&lt;/a&gt; – um projeto conjunto do time de Patterns &amp;amp; Practices da Microsoft e do time de produto do Team Foundation Server, além de alguns parceiros e especialistas do mercado. &lt;p align=center&gt;&lt;a href="http://mxxcta.blu.livefilestore.com/y1p5LgSQHmXf9eA0_9ldbcTjC9BAgaiaqcTdHtdS6FpTg1BxPlPS41ZQi9GUPHq12gqomcXn1g4SCyQZAEGq-LUww?PARTNER=WRITER"&gt;&lt;img style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" title=image border=0 alt=image src="http://blufiles.storage.msn.com/y1pBy7U3TOPejbBSdXHjAX2pTYiZ1X51afV5EnjqeOXs3E4JZ7Wmk6yhjMHCj90EoJDyAx-4rdNJxk?PARTNER=WRITER" width=186 height=240&gt;&lt;/a&gt;  &lt;p&gt;A idéia do guia é consolidar um guia de “boas práticas” para utilização do TFS num ambiente de desemvolvimento. Leitura obrigatória para qualquer um quer pretenda usar o TFS! &lt;p&gt;Os tópicos abordados são: &lt;ul&gt; &lt;li&gt;Fundamentals  &lt;li&gt;Source Control  &lt;li&gt;Builds  &lt;li&gt;Large Project Considerations  &lt;li&gt;Project Management  &lt;li&gt;Process Templates  &lt;li&gt;Reporting  &lt;li&gt;Setting Up and Maintaining the Team Environment  &lt;li&gt;Visual Studio Team System 2008 Team Foundation Server&lt;/ul&gt; &lt;p&gt;  &lt;p&gt; &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/VSTS" rel=tag&gt;VSTS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TFS" rel=tag&gt;TFS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team+System" rel=tag&gt;Team System&lt;/a&gt;,&lt;a href="http://technorati.com/tags/CodePlex" rel=tag&gt;CodePlex&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+CodePlex+em+destaque%3a+Team+Development+with+Team+Foundation+Server+(tfsguide)&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>VSTS</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!925.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!925.entry</guid><pubDate>Fri, 29 Aug 2008 22:34:48 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!925/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!925.entry#comment</wfw:comment><dcterms:modified>2008-09-01T23:25:57Z</dcterms:modified></item><item><title>CodePlex em destaque – Fique ligado!</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!919.entry</link><description>&lt;p&gt;Tem muita gente que nunca ouviu falar no &lt;a href="http://www.codeplex.com"&gt;CodePlex&lt;/a&gt;. Para quem não conhece, o CodePlex é um site que oferece a desenvolvedores de software livre (código aberto, &lt;em&gt;open source&lt;/em&gt;) toda a infraestrutura para que possam hospedar seus projetos. Esses projetos podem ser desenvolvidos em qualquer tecnologia, para qualquer plataforma. A única exigência é que o software seja oferecido com algum tipo de licença de código aberto. &lt;p align=center&gt;&lt;a href="http://mxxcta.blu.livefilestore.com/y1pFnDYHm7AE7KP6xCQHURK-wHR2S8A94rJeBq3Om_PsfmfG45Z7_L1SXT5uKt7kyjFR1ei3SjN9srlsMsahk4Uhw?PARTNER=WRITER"&gt;&lt;img style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" title=image border=0 alt=image src="http://mxxcta.blu.livefilestore.com/y1pYAL2eVqjXH9qsPin74mOWlvKKPldIN9nwyzLAyLNV3iLmYXdZ2R6esHtInYhFGad7mobohrIJkk7xDX7JaXyoA?PARTNER=WRITER" width=640 height=316&gt;&lt;/a&gt;  &lt;p&gt;Esse site tem uma característica técnica bastante interessante: a estrutura de Gerência de Configuração (Controle de Versão e Gestão de Problemas) é baseada no Team Foundation Server. Ou seja, você pode usar o TFS de forma gratuita para hospedar seus projetos &lt;em&gt;open-source&lt;/em&gt;. Você pode inclusive baixar o Team Explorer (também gratuito) para integrar seu Visual Studio (Standard ou superior) ao CodePlex. &lt;p align=center&gt;&lt;a href="http://mxxcta.blu.livefilestore.com/y1p2b7orqWob1ZXKEgQd5U362XToaZ-JaPvasOjtOnYpd4R_PPrUlobEiM-ohFxgU4zBejgbyyyL9ui1IvW2AxuCg?PARTNER=WRITER"&gt;&lt;img style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" title=image border=0 alt=image src="http://mxxcta.blu.livefilestore.com/y1pUgMbFaXWLcaFHKhIuVwj-hlQYTGqO-k1NJ7f4_5eD7JRKbtDNTqBfp756byjVbQ0AarTT5jgalOLwK2xfNLyEQ?PARTNER=WRITER" width=640 height=455&gt;&lt;/a&gt;  &lt;p&gt;Se o próprio site é desconhecido, o que dizer dos projetos hospedados lá? Há muita coisa bacana, bastante útil, e que poderia ajudá-lo a resolver problemas que você possa ter no seu dia-a-dia. Por isso, resolvi criar uma categoria especial (e recorrente) de postagens: &lt;strong&gt;CodePlex em destaque&lt;/strong&gt;. &lt;p&gt;Toda sexta-feira irei destacar algum projeto hospedado no Codeplex e que esteja de alguma forma ligado ao Visual Studio Team System. Amanhã teremos o primeiro post da série. &lt;p&gt;Aguarde! &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/VSTS" rel=tag&gt;VSTS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team+System" rel=tag&gt;Team System&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TFS" rel=tag&gt;TFS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/CodePlex" rel=tag&gt;CodePlex&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+CodePlex+em+destaque+%e2%80%93+Fique+ligado!&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>VSTS</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!919.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!919.entry</guid><pubDate>Thu, 28 Aug 2008 13:31:30 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!919/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!919.entry#comment</wfw:comment><dcterms:modified>2008-09-01T23:26:21Z</dcterms:modified></item><item><title>Como desfazer check-outs de outros usuários</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!911.entry</link><description>&lt;p&gt;Quantas vezes já passamos (ou vimos alguém passar) por isso? &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;“Um funcionário saiu da empresa e largou um monte de arquivos em check-out. Ninguém sabe a senha dele. Mas nem ia adiantar, a máquina já foi formatada mesmo…”&lt;/em&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;p&gt;E agora, como cancelar os check-outs feitos por outro usuário? O segredo está na (relativamente pouco conhecida) ferramenta de linha de comando do Team Explorer, &lt;strong&gt;tf.exe&lt;/strong&gt;. Abra o prompt de comando do Visual Studio 2008 e execute: &lt;p&gt;&lt;code&gt;tf workspaces /owner:&lt;strong&gt;&amp;lt;nome_do_usuário&amp;gt;&lt;/strong&gt; /server:&lt;strong&gt;&amp;lt;nome_do_servidor&amp;gt;&lt;/strong&gt;&lt;/code&gt; &lt;p align=center&gt;&lt;img title=image style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=350 alt=image src="http://mxxcta.blu.livefilestore.com/y1pN3SiHhBxa1ud07-LT8rgUxS10e_rhGEy-cgx9o30iNCWsgSv9mPcpSTwnALA6r77VB2qchTWA2U2jJBuA5dZug?PARTNER=WRITER" width=684 border=0&gt;  &lt;p align=left&gt;Com isso você consegue listar os workspaces do usuário em questão. Você vai precisar dessa informação para a próxima etapa: &lt;p align=left&gt;  &lt;p&gt;&lt;code&gt;tf undo /workspace:&lt;strong&gt;&amp;lt;nome_do_workspace&amp;gt;;&amp;lt;nome_do_usuario&amp;gt;&lt;/strong&gt; /recursive /server:&lt;strong&gt;&amp;lt;nome_do_servidor&amp;gt;&lt;/strong&gt; $/*.*&lt;/code&gt;  &lt;p align=center&gt; &lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=350 alt=image src="http://mxxcta.blu.livefilestore.com/y1phPpQu4kOoFEMGEa7mztLlUPabIcd-LLfnIc2a8MstcQmfhrCKsVwjRMEutYH03nZpt0ThHiUTQ9YdYl3auGhpA?PARTNER=WRITER" width=684 border=0&gt;  &lt;p&gt;Para cada workspace listado na etapa anterior, execute o comando acima. &lt;p&gt; &lt;p&gt; &lt;p&gt;  &lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/VSTS" rel=tag&gt;VSTS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TFS" rel=tag&gt;TFS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team+System" rel=tag&gt;Team System&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+Como+desfazer+check-outs+de+outros+usu%c3%a1rios&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>Version Control</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!911.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!911.entry</guid><pubDate>Thu, 21 Aug 2008 14:02:46 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!911/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!911.entry#comment</wfw:comment><dcterms:modified>2008-08-21T14:02:46Z</dcterms:modified></item><item><title>Service Packs e Power Tools</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!904.entry</link><description>&lt;p&gt;Com o recente lançamento do &lt;a href="http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx"&gt;Service Pack 1&lt;/a&gt; do Visual Studio 2008 e Team Foundation Server 2008, muitas coisas são atualizadas em seu computador: &lt;p&gt;  &lt;p&gt;&lt;strong&gt;Visual Studio 2008 SP1&lt;/strong&gt; &lt;ul&gt; &lt;li&gt;Visual Studio (todas as edições) &lt;li&gt;.NET Framework 3.5&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Team Foundation Server SP1&lt;/strong&gt; &lt;ul&gt; &lt;li&gt;Team Foundation Server (AT) &lt;li&gt;.NET Framework 3.5&lt;/ul&gt; &lt;p&gt;  &lt;p&gt;Mas há algumas ferramentas que, de tão naturais no nosso dia-a-dia, que acabam se tornando “invisíveis”. Esquecemos que elas são downloads adicionais e que não fazem parte do produto original. &lt;p&gt;Esse é o caso com o pacote “&lt;a href="http://msdn.microsoft.com/en-us/tfs2008/bb980963.aspx"&gt;Team Foundation Server Power Tools&lt;/a&gt;”. São ferramentas extremamente úteis e que complementam o Visual Studio e o TFS.  &lt;p&gt;Dentre todos os componentes do pacote Power Tools, provavelmente o mais conhecido é o &lt;a href="http://msdn.microsoft.com/en-us/library/bb892990.aspx"&gt;Team System Web Access&lt;/a&gt;. &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p align=center&gt;&lt;a href="http://mxxcta.blu.livefilestore.com/y1p0RZriNYY5idUprpEmNuz1rILHMxZeJC-eKbMj3YLqTbNlsJLKulAv6_0P_sRlWDOOX8xYuxwrweHz3cAGi65jQ?PARTNER=WRITER"&gt;&lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=468 alt=image src="http://mxxcta.blu.livefilestore.com/y1pLZnoNodV_dbVrLpGKEXHaDBT9Bkq7ZqE7njJ4XU1MuEht5UVsR6mnUoqmlzPFq3I2G9OB8XUd5ljNAzr2lYC8w?PARTNER=WRITER" width=640 border=0&gt;&lt;/a&gt;  &lt;p&gt; &lt;p&gt;Porém, muitos acreditam que o TSWA é parte integrante do Team Foundation Server – e que, com isso, ele será atualizado automaticamente durante a instalação do Service Pack do TFS. &lt;strong&gt;Bom, na verdade o SP1 não atualiza o TSWA&lt;/strong&gt;. Ele deve ser atualizado à parte, como todo o restante do pacote Power Tools. Devemos ter, em breve, o lançamento da versão “correnpondente ao SP1” do TSWA. &lt;p&gt;No futuro, o Rosario trará mudanças nesse aspecto. O Team System Web Access finalmente passará a ser parte integrante do produto e, por isso, será atualizado junto com quaisquer service packs que venham a ser criados. &lt;p&gt;  &lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/VSTS" rel=tag&gt;VSTS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TFS" rel=tag&gt;TFS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team+System" rel=tag&gt;Team System&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TSWA" rel=tag&gt;TSWA&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team+System+Web+Access" rel=tag&gt;Team System Web Access&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SP1" rel=tag&gt;SP1&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+Service+Packs+e+Power+Tools&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>TSWA</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!904.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!904.entry</guid><pubDate>Fri, 15 Aug 2008 14:15:10 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!904/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!904.entry#comment</wfw:comment><dcterms:modified>2008-08-15T14:15:10Z</dcterms:modified></item><item><title>“No nosso projeto, estamos sempre 90% prontos”</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!897.entry</link><description>&lt;p&gt; Recentemente, o Jeff Atwood (“Coding Horror”) &lt;a href="http://www.codinghorror.com/blog/archives/001161.html "&gt;escreveu um post&lt;/a&gt; com o título acima. Vale a pena dar uma liad no post inteiro; por enquanto, veja o trecho abaixo que extraí – foi o que mais me chamou a atenção: &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;Johanna Rothman makes the same point in a recent email newsletter, and offers specific actions you can take to &lt;b&gt;avoid being stuck 90% done&lt;/b&gt;: &lt;/em&gt; &lt;blockquote&gt; &lt;ol&gt; &lt;li&gt;&lt;em&gt;List everything you need to do to finish the big chunk of work. I include any infrastructure work such as setting up branches in the source control system. &lt;/em&gt; &lt;li&gt;&lt;em&gt;Estimate each item on that list. This initial estimate will help you see how long it might take to complete the entire task. &lt;/em&gt; &lt;li&gt;&lt;em&gt;Now, look to see how long each item on that list will take to finish. If you have a task longer than one day, break that task into smaller pieces. Breaking larger tasks into these inch-pebbles is critical for escaping the 90% Done syndrome. &lt;/em&gt; &lt;li&gt;&lt;em&gt;Determine a way to show visible status to anyone who's interested. If you're the person doing the work, what would you have to do to show your status to your manager? If you're the manager, what do you need to see? You might need to see lists of test cases or a demo or something else that shows you visible progress. &lt;/em&gt; &lt;li&gt;&lt;em&gt;Since you've got one-day or smaller tasks, you can track your progress daily. I like to keep a chart or list of the tasks, my initial estimated end time and the actual end time for each task. This is especially important for you managers, so you can see if the person is being interrupted and therefore is multitasking. (See the article about the &lt;/em&gt;&lt;a href="http://www.jrothman.com/pragmaticmanager/refocusing-from-split-focus.html"&gt;&lt;em&gt;Split Focus schedule game&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.) &lt;/em&gt;&lt;/ol&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;em&gt;I'm not big on scheduling -- or lists -- but without the latter, I cannot have the former. It's like trying to defy the law of gravity. Thus, on our project, &lt;b&gt;we're always 90% done&lt;/b&gt;. If you'd like escape the 90% done ghetto on your software project, don't learn this the hard way, like I did. Every time someone asks you what your schedule is, you should be able to point to a list of everything you need to do. And if you can't -- the first item on your task list should be to create that list. &lt;/em&gt; &lt;p&gt;&lt;a href="http://www.codinghorror.com/blog/archives/001161.html"&gt;&lt;em&gt;On Our Project, We're Always 90% Done&lt;/em&gt;&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;p&gt;Sabe o que mais me chamou a atenção no trecho acima? É que quando visito cliente para falar de Team Foundation Server e explico como usar &lt;em&gt;work items&lt;/em&gt; para a gestão de projetos, &lt;strong&gt;é exatamente desse jeito que eu sugiro usar o TFS&lt;/strong&gt;! &lt;p&gt;Se você seguir essas dicas como um princípio de boas práticas no uso de &lt;em&gt;work items&lt;/em&gt; (independentemente do processo de desenvolvimento que esteja usando) sua experiência será muito mais rica. &lt;h3&gt;Relacione tudo o que você tem que fazer (“&lt;em&gt;List everything you need to do to finish the big chunk of work&lt;/em&gt;”)&lt;/h3&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;Aqui o Excel é seu aliado. Use-o para relacionar rapidamente todas as atividades-macro que você já identificou durante a fase de levantamente/especificação/planejamento (ou como chamar no seu processo de desenvolvimento). Aproveite para dividir as atividades por área e/ou iteração. &lt;p align=center&gt;&lt;a href="http://mxxcta.blu.livefilestore.com/y1p24vfo3x4ndsqVryhXRExeZiUhI_oN2P6mFJWtZ6Q-Oah5vaKKip1g5rBjl5_tKtlQ6KNWm9zMyGIj5MrhPhTWA?PARTNER=WRITER"&gt;&lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=245 alt=image src="http://mxxcta.blu.livefilestore.com/y1pZUGDH-0eNHh8LEPv3okds38dYAePyHFsKK6NhG2OgHRz2yJqvLTJHskRbOOQk8HUqtsFwTjZ-xthNtejsAPGIw?PARTNER=WRITER" width=640 border=0&gt;&lt;/a&gt;  &lt;h3&gt;Estime cada item na lista (“&lt;em&gt;Estimate each item on that list&lt;/em&gt;”)&lt;/h3&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;Use o Excel ou o Project (para muitos, o Project é o preferido nesse tipo de atividade). Faça uma estimativa inicial do tempo que se levaria para executar cada uma das atividades identificadas no processo anterior. Não se preocupe em ser preciso; você vai refinar essas estimativas depois. &lt;p align=center&gt;&lt;a href="http://mxxcta.blu.livefilestore.com/y1pn05ZJw3zCMQCoZ8iAVpMwGBEmF7uR8PMQPWCsodt-ih2K6ABG26FxcPAijp04G40AyER7ci_Wl0dRVl2JgAhoA?PARTNER=WRITER"&gt;&lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=340 alt=image src="http://mxxcta.blu.livefilestore.com/y1pxkTkComoLBl4vglJtQdF5eqjmTehidTUFBxZ3KMfpWz14xsjWL3XA1YSjTZI7rJHW7ErzgcSdfS_aNt4ZzdSng?PARTNER=WRITER" width=640 border=0&gt;&lt;/a&gt;  &lt;h3&gt;Divida suas atividades em pedaços de no máximo 8 horas (“&lt;em&gt;If you have a task longer than one day, break that task into smaller pieces&lt;/em&gt;”)&lt;/h3&gt; &lt;p&gt;Na minha opinião, este é o ponto-chave para um uso bem-sucedido do TFS. Se você fizer um bom WBS (&lt;em&gt;work breakdown structure&lt;/em&gt;), chegando um nível de detalhamento que garanta que suas atividades terão no máximo 8 horas, terá conseguido algo muito difícil: o comprometimento da equipe de desenvolvedores com a prática de relatório de status (&lt;em&gt;status report&lt;/em&gt;). &lt;p&gt;O “pulo-do-gato” é que nenhum desenvolvedor seria obrigado a fazer nada além daquilo que ele faz normalmente: o check-in do código que acabou de produzir. Ao dividir as atividades em unidade de até oito horas, você praticamente garante que seus desenvolvedores: &lt;ol&gt; &lt;li&gt;Farão check-in apenas de código completo (afinal, eles terminam a atividade no mesmo dia em que começaram); &lt;li&gt;Farão check-in ao menos uma vez por dia (pelo mesmo motivo do item 1).&lt;/ol&gt; &lt;p&gt;Alie-se a isso a &lt;a href="http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!879.entry"&gt;política de check-in de work items&lt;/a&gt;&lt;em&gt;&lt;/em&gt; e você terá &lt;strong&gt;feedback diário&lt;/strong&gt; das atividades dos seus desenvolvedores – tudo o que eles precisam fazer é clicar uma &lt;em&gt;checkbox&lt;/em&gt; na caixa de diálogo de check-in. “Magicamente” seus relatórios começarão a ter dados para os alimentar. &lt;img alt="smile_regular" src="http://spaces.live.com/rte/emoticons/smile_regular.gif"&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p align=center&gt;&lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=401 alt=image src="http://blufiles.storage.msn.com/y1psgS5meJCJ7EJiFkODkrY-1IcWHVURGa5luVxrexsZCTMEY6cOCUEde4qMCYSespd?PARTNER=WRITER" width=582 border=0&gt;  &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;h3&gt;Divulgue o status do seu projeto (“&lt;em&gt;Determine a way to show visible status to anyone who's interested”&lt;/em&gt;)&lt;/h3&gt; &lt;p&gt;Quer ferramenta melhor que o Portal do Projeto do TFS, feito em SharePoint, para isso? Crie seus painéis de controle (“&lt;em&gt;dashboards&lt;/em&gt;”) para que os interessados possam acompanhar o andamento do projeto. &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p align=center&gt;&lt;a href="http://mxxcta.blu.livefilestore.com/y1pEz4Zyh9PT2GjcnY8iCtRcPbDv06pPuy49pOS0gozLshO4dTTdfoZCpBveix7Why93cNWzHWGGcPvSOotZuzz4w?PARTNER=WRITER"&gt;&lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=368 alt=image src="http://mxxcta.blu.livefilestore.com/y1pylX7xkUYZq6gNduY0qNn6nywWlCRK-J58wpyV12ux7Ju_WQtmsYW8N8oKcVNKVGlsdkjh8YUPf8XRv2EVw2MHQ?PARTNER=WRITER" width=640 border=0&gt;&lt;/a&gt;  &lt;h3&gt;Acompanhe o progresso do projeto diariamente (“&lt;em&gt;Track your progress daily&lt;/em&gt;”)&lt;/h3&gt; &lt;p&gt;Além do Excel, Project ou mesmo os relatórios disponíveis no Portal do Projeto, você pode usar também as inúmeras consultas de&lt;em&gt; &lt;/em&gt;work items do TFS (e até mesmo criar suas próprias) para acompanhar seu projeto. &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p align=center&gt;&lt;a href="http://mxxcta.blu.livefilestore.com/y1pYvDvQM14X-aoc7NtKTv4eBP72lYQSOQ6nM5hjyPgaoIxZ-Tyrrh1CZSc4-2RgbyoWvPeZEX1fFVnQhq-ZdZPEg?PARTNER=WRITER"&gt;&lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=190 alt=image src="http://blufiles.storage.msn.com/y1prDa6k56zX0Xoh4yEExbRiQikB3F9BYeg9sIOrhpK68W_kqSV2ITRnT68KalaJ2mt?PARTNER=WRITER" width=240 border=0&gt;&lt;/a&gt;  &lt;a href="http://mxxcta.blu.livefilestore.com/y1pqyzTHl056HazFaxNAZNK7-XwDgieWvOcaI6qCloYSfer-AhzDAUcPUJc-aKyjFi7L7JtMEituzCbswPtVoAc4g?PARTNER=WRITER"&gt;&lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=177 alt=image src="http://blufiles.storage.msn.com/y1psiGUL-1zcXvPkANCQkmE1B5Fixs_LZUMiw_ZxRlC0h_oC588CXhPJT9xyc1mCcmTwtLVJWZeXHI?PARTNER=WRITER" width=240 border=0&gt;&lt;/a&gt;  &lt;p&gt; &lt;p&gt;  &lt;p&gt;Viu? Com alguns cuidados básicos (e com um esforço relativamente pequeno) você consegue tirar proveito facilmente dos recursos de gestão de projetos do TFS! &lt;p&gt;  &lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/VSTS" rel=tag&gt;VSTS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TFS" rel=tag&gt;TFS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team+System" rel=tag&gt;Team System&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Project+Management" rel=tag&gt;Project Management&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Work+Items" rel=tag&gt;Work Items&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+%e2%80%9cNo+nosso+projeto%2c+estamos+sempre+90%25+prontos%e2%80%9d&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>Work Items</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!897.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!897.entry</guid><pubDate>Sat, 09 Aug 2008 00:05:43 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!897/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!897.entry#comment</wfw:comment><dcterms:modified>2008-08-09T00:05:43Z</dcterms:modified></item><item><title>SQL Server 2008: Alive and kicking!</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!883.entry</link><description>&lt;p&gt;Boas notícias! O SQL Server 2008 já está disponível para download para assinantes MSDN e Technet. &lt;p&gt;“Legal. E o que isso tem a ver com o Team System?” &lt;p&gt;Que bom que você perguntou… :-) &lt;p&gt;O Service Pack 1 do Visual Studio 2008 (às vésperas de ser lançado) oferece suporte nativo ao SQL Server 2008. Com isso: &lt;ul&gt; &lt;li&gt;Será possível usar o SQL Server 2008 como &lt;em&gt;back-end&lt;/em&gt; do TFS (hoje você precisa usar o SQL 2005); &lt;li&gt;O VSTS Database Edition reconhecerá a nova versão do SQL, para que possamos fazer controle de versão, testes unitários de bancos de dados, comparação de &lt;em&gt;schema &lt;/em&gt;etc.&lt;/ul&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;  &lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/VSTS" rel=tag&gt;VSTS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TFS" rel=tag&gt;TFS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team+System" rel=tag&gt;Team System&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Database+Edition" rel=tag&gt;Database Edition&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DataDude" rel=tag&gt;DataDude&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SQL+Server" rel=tag&gt;SQL Server&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SQL+Server+2008" rel=tag&gt;SQL Server 2008&lt;/a&gt;,&lt;a href="http://technorati.com/tags/VS+SP1" rel=tag&gt;VS SP1&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+SQL+Server+2008%3a+Alive+and+kicking!&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>VSTS</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!883.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!883.entry</guid><pubDate>Wed, 06 Aug 2008 19:31:27 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!883/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!883.entry#comment</wfw:comment><dcterms:modified>2008-08-06T19:31:27Z</dcterms:modified></item><item><title>Por que as políticas de check-in não são obrigatórias?</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!879.entry</link><description>&lt;p&gt;Mais uma da série “dúvidas comuns que respondemos infinitas vezes”: Por que as políticas de check-in não são obrigatórias? &lt;p&gt;O recurso de &lt;em&gt;check-in policy&lt;/em&gt; (política de check-in) é percebido pelos usuários do TFS como uma grande vantagem. Com ele, é possivel definir algumas premissas para a aceitação do código-fonte: &lt;ul&gt; &lt;li&gt;Você testou seu código antes de fazer check-in?  &lt;li&gt;Você analisou o seu código para garantir que ele atende aos padrões da empresa?  &lt;li&gt;Você lembrou de associar suas alterações no código à atividade/demanda que originou essas alterações?&lt;/ul&gt; &lt;p&gt;  &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p align=center&gt;&lt;img title=image style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=418 alt=image src="http://mxxcta.blu.livefilestore.com/y1pAz-5QJpFq8t_bii8YwlIBXmSP2iidDAJKIUeXv95Y8nTXyf1UnTc82-iUpS8N0IaSzbzJEEoxk2d6PLEI0UHdA?PARTNER=WRITER" width=601 border=0&gt;   &lt;p align=left&gt;As políticas de check-in são definidas em nível de projeto (&lt;em&gt;Team Project&lt;/em&gt;) e se aplicam a todos os desenvolvedores que atuam no tal projeto. Toda vez que eles tentam efetuar um check-in, as políticas são validadas e o usuário é alertado caso elas não sejam atendidas. &lt;p align=left&gt;O ponto mais polêmico em relação às políticas de check-in é que &lt;strong&gt;elas podem ser ignoradas pelo usuário&lt;/strong&gt;! &lt;p&gt; &lt;p&gt; &lt;p align=center&gt;&lt;img title=image style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=443 alt=image src="http://mxxcta.blu.livefilestore.com/y1pvebP0gT85nhsey0u5R3cjZcEeSmfO2e-t4_1aTZdxxFdSP8HjoGjjV-9ZgqAlOOeu8vQTCvyf1nHSzXwB7rU4w?PARTNER=WRITER" width=676 border=0&gt; &lt;p&gt;Por quê isso? Já ouvi pessoas falando que a Microsoft fez o serviço “pela metade”, deixando de fora a possibilidade de barrar o check-in. Bom, temos algumas explicações para isso. A primeira delas vem de um &lt;a href="http://blogs.msdn.com/jimlamb/articles/tfsfaq.aspx"&gt;blog de FAQ do Team System&lt;/a&gt;: &lt;blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;em&gt;Can we disable the “Override CheckIn Policy Failure” checkbox? Can that be customized based on User Login, Policy Type or File type?&lt;/em&gt;&lt;/b&gt;  &lt;p&gt;&lt;em&gt;No. We get a lot of requests for this but our contention is that the person defining the policy can’t envision the situations that will arise where policy will need to be overridden. Thus, we designed it to be fully auditable by including policy compliance data in the changeset details and in the checkin mail that is delivered, but left it up to the developer to determine whether they have a good reason for overriding.&lt;/em&gt;&lt;/blockquote&gt; &lt;p&gt;A razão é simples: se o desenvolvedor optou por ignorar a política de check-in, ele deve ter um bom motivo. Trabalho em equipe presume confiança entre seus membros, logo não faz sentido partir da premissa que todos são imaturos e irresponsáveis. Entretanto, como auditoria é fundamental em qualquer projeto (mesmo nos “ágeis”), o TFS registra no evento de check-in sempre que alguém optou por desconsiderar políticas de check-in que não estavam sendo atendidas.  &lt;p&gt;&lt;strong&gt;Dica&lt;/strong&gt;:  Na edição de Julho/2008 do &lt;a href="http://msdn.microsoft.com/en-us/tfs2008/bb980963.aspx"&gt;Team Foundation Server Power Tools&lt;/a&gt; há uma nova ferramenta, o Alert Editor, que simplifica bastante o processo de auditoria das políticas de check-in. Adicione um alerta para ser notificado sempre que alguém optar por ignorar uma política definida num &lt;em&gt;team project&lt;/em&gt;:  &lt;p align=center&gt;&lt;img title=image style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=478 alt=image src="http://mxxcta.blu.livefilestore.com/y1pkAAH6heE2FY2rO-Hdgp-GXdm3OfwT1b10uV6nb-1HrprDvC3YW1hyNF_pc8pMwusvfoMPyUqvg7bB7KsV7Ztaw?PARTNER=WRITER" width=831 border=0&gt;  &lt;h3&gt;Entendendo políticas de check-in - com sorte, de uma vez por todas :-)&lt;/h3&gt; &lt;p&gt;Há uma triste verdade a respeito das políticas de check-in, uma ainda pior que o fato de podermos usar o famigerado “&lt;em&gt;override”&lt;/em&gt;: políticas de check-in não são universais. Ou seja, elas não são executadas e garantidas pelo servidor. &lt;strong&gt;Cada aplicativo-cliente é responsável por executar as políticas de check-in que lhe convierem&lt;/strong&gt;.  &lt;p&gt;Do ponto de vista técnico, &lt;em&gt;check-in policies&lt;/em&gt; nada mais são que &lt;em&gt;assemblies&lt;/em&gt; .NET instalados em cada computador onde serão executados. Esses &lt;em&gt;assemblies&lt;/em&gt; contêm algumas classes que implementam interfaces específicas definidas no &lt;a href="http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!862.entry"&gt;SDK do Visual Studio&lt;/a&gt;. Quando instalamos o Team Explorer (cliente do TFS), recebemos “de brinde” as quatro políticas de check-in originais.  &lt;p&gt;No ato do check-in, o programa que o desenvolvedor estiver usando (por exemplo, o Visual Studio 2008) contata o servidor e obtém uma lista com os nomes das políticas de check-in que deveriam ser executadas, junto com suas respectivas configurações (que também foram definidas no servidor). Em seguida, verifica se essas políticas estão disponíveis no computador local e procede à sua execução. Com isso, podemos entender a afirmação de que “cada aplicativo-cliente é responsável por executar as políticas de check-in que lhe convierem”.  &lt;p&gt;O Visual Studio (2005/2008) é o cliente “&lt;em&gt;premium”&lt;/em&gt; para o TFS. Como tal, é o único que garante executar todas as políticas de check-in &lt;strong&gt;que estiverem devidamente registradas no servidor e instaladas no computador do desenvolvedor&lt;/strong&gt;. Isso traz uma variável adicional ao já conturbado universo das &lt;em&gt;check-in policies&lt;/em&gt;. Ainda que possamos criar nossas próprias políticas de check-in (acrescentando novas opções às quatro originais), não há nada que garanta que elas serão executadas. Isso me faz lembrar de um velho problema que aflite desenvolvedores Web há muito tempo: &lt;strong&gt;Validação no Cliente vs. Validação no Servidor&lt;/strong&gt;.  &lt;h3&gt;Validação no Cliente vs. Validação no Servidor&lt;/h3&gt; &lt;p&gt;No universo da Web, aplicativos feitos em qualquer tecnologia (ASP.NET, PHP, Ruby, Java etc…) certamente se vêem às voltas com a necessidade de solicitar dados ao usuário. Formulários são usados para as mais diferentes entradas de dados. Porém, o HTML não é exatamente a melhor tecnologia para a criação de formulários de dados. Ele não tem praticamente nenhum recurso padrão de validação de conteúdo que os &lt;em&gt;browsers&lt;/em&gt; possam usar para conferir o que o usuário nos levou. Isso geralmente leva a duas opções: &lt;p&gt;  &lt;table cellspacing=0 cellpadding=2 width=697 align=center border=1&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style="border-top-style:none;border-left-style:none" valign=top width=124&gt;  &lt;td valign=top width=286&gt;Prós &lt;td valign=top width=285&gt;Contras &lt;tr&gt; &lt;td valign=top width=127&gt;Validação no Cliente &lt;td valign=top width=285&gt;&lt;strong&gt;Rápido&lt;/strong&gt;. Feedback instantâneo ao usuário. Dados incorretos podem ser facilmente corrigidos, sem a necessidade de uma “viagem de ida e volta” dos dados ao servidor para a validação &lt;td valign=top width=284&gt;&lt;strong&gt;Inseguro&lt;/strong&gt;. Como depende de Javascript, pode não ser executado (ex.: o usuário desativou a execução de scripts em seu &lt;em&gt;browser&lt;/em&gt;). Além disso, o usuário poderia, maliciosamente ou não, &lt;a href="http://en.wikipedia.org/wiki/Greasemonkey"&gt;subverter o script&lt;/a&gt;, fazendo-o aceitar dados inválidos. &lt;tr&gt; &lt;td valign=top width=129&gt;Validação no Servidor &lt;td valign=top width=284&gt;&lt;strong&gt;Seguro&lt;/strong&gt;. O código rodando dentro do servidor está fora do alcance de usuários maliciosos, que não poderão alterar as regras de validação. Não há como forçar a entrada de dados inválidos.&lt;br&gt; &lt;td valign=top width=285&gt;&lt;strong&gt;Lento&lt;/strong&gt;. Os dados precisam ser enviados ao servidor para que possam ser validados. Se forem encontrados erros nas informações prestadas pelo usuário, é necessário enviar uma notificação ao browser para que seja feita a correção – depois da qual o processo recomeça.&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;  &lt;p&gt;As boas práticas do desenvolvimento para a Web nos dizem que devemos, sempre que possível, oferecer as duas opções &lt;strong&gt;ao mesmo tempo&lt;/strong&gt;. A conveniência da validação no cliente aliada à segurança da validação no servidor. Repare que a validação no cliente tem apenas o papel da &lt;strong&gt;conveniência&lt;/strong&gt;, nunca podendo substituir a validação no servidor. Se tiver que optar por apenas uma delas, não há dúvidas: fique com o servidor. &lt;p&gt;Bom, você deve estar se perguntando, mas o que isso tem a ver com o assunto em pauta? Tudo! Encare as políticas de check-in do TFS como &lt;em&gt;client-side validation&lt;/em&gt;: rápidas, porém inseguras. Se eu realmente quiser garantir que o check-in é seguro e atende às definições do meu processo de desenvolvimento, preciso ter o equivalente TFS da &lt;em&gt;server-side validation&lt;/em&gt;. As alternativas são: &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Team Build + Integração Continua (CI, &lt;em&gt;Continuous Integration&lt;/em&gt;)&lt;/strong&gt;: Com o TFS 2008 é possível disparar o processo de build automatizado do Team Build simplesmente fazendo um check-in. Com isso, podemos verificar se as alterações que acabaram de ser produzidas se integram adequadamente ao restante do código já existente no repositório. Efetuar o build a cada check-in visa a validar continuamente a integração entre os diversos trechos de código produzidos todo o tempo pela equipe de desenvolvimento. Daí vem o termo &lt;strong&gt;integração contínua&lt;/strong&gt;. Como o processo de build é disparado automaticamente pelo ato de check-in, e como ele ocorre no agente de build (e não na máquina do desenvolvedor), ele acaba sendo o equivalente da validação de servidor das aplicações Web. Podemos rodar a análise estática de código, podemos rodar testes unitários, podemos auditar o código. Se houver algum problema, o build é marcado como falho (“quebrado”). O changeset (as alterações feitas pelo desenvolvedor) que deu origem ao build pode, então, ser desfeito (usando, por exemplo, o comando tfpt rollback).  &lt;li&gt;&lt;strong&gt;Gated check-in&lt;/strong&gt;: O problema da solução apresentada acima, baseada apenas no servidor de build, é que o check-in precisa ser feito antes de ser validado. Ou seja, em caso de problemas eu necessariamente terei que desfazer manualmente as alterações que quebraram o build. O ideal seria que eu pudesse disparar o buid &lt;strong&gt;antes&lt;/strong&gt; do check-in, só efetivando a alteração no controle de versão se tudo corresse bem. É justamente disso que trata o conceito de &lt;em&gt;gated check-in&lt;/em&gt;: As operações de check-in são interceptadas (geralmente usando shelvesets) e redirecionadas para um servidor de build especial. Esse servidor combina o código-fonte que já existe no TFS com as alterações que acabaram de vir do desenvolvedor. Se tudo correr bem, só então é que o check-in será consumado. O TFS “Rosario” terá suporte nativo a &lt;em&gt;gated check-in&lt;/em&gt;. Por enquanto, você pode usar o &lt;a href="http://www.opengauntlet.org/"&gt;OpenGauntlet&lt;/a&gt; para ter esse recurso à disposição no TFS 2008.&lt;/ul&gt; &lt;h3&gt;Resumo da ópera&lt;/h3&gt; &lt;p&gt;Politícas de check-in são um recurso bastante poderoso e conveniente. Devido ao fato de poderem ser facilmente burlados, devem ser usados apenas como &lt;strong&gt;lembrete&lt;/strong&gt; para os desenvolvedores. Dessa forma, eles serão lembrados de testar seu código, associar &lt;em&gt;work items&lt;/em&gt; etc. Para garantir que o código produzido por sua equipe atenda aos critérios definidos em sua empresa, utilize alguma técnica de &lt;em&gt;gated check-in&lt;/em&gt;. &lt;p&gt;  &lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/TFS" rel=tag&gt;TFS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/VSTS" rel=tag&gt;VSTS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team+System" rel=tag&gt;Team System&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Check-in+Policy" rel=tag&gt;Check-in Policy&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+Por+que+as+pol%c3%adticas+de+check-in+n%c3%a3o+s%c3%a3o+obrigat%c3%b3rias%3f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>Version Control</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!879.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!879.entry</guid><pubDate>Wed, 06 Aug 2008 17:26:32 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!879/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!879.entry#comment</wfw:comment><dcterms:modified>2008-08-06T18:28:18Z</dcterms:modified></item><item><title>Por falar em testes de carga – WCF Load Test</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!868.entry</link><description>&lt;p&gt; &lt;p&gt;No último post mencionei uma nova ferramenta dos VSTS Rangers para a criação de testes de carga para o SQL Server. Agora vale a menção de um projeto mais antigo dos mesmos Rangers, só que para o teste de carga de serviços WCF. &lt;p&gt;O &lt;a href="http://www.codeplex.com/WCFLoadTest"&gt;WCF Load Test&lt;/a&gt; é uma ferramenta que converte um &lt;em&gt;trace &lt;/em&gt;WCF em um teste unitário que pode ser usado como parte de um teste de carga. Combinado com os &lt;a href="http://msdn.microsoft.com/en-us/library/ms182561(VS.80).aspx"&gt;testes de carga Web&lt;/a&gt; e os para o &lt;a href="http://www.codeplex.com/SQLLoadTest"&gt;SQL Server&lt;/a&gt;, você consegue criar as condições necessárias para testar sua aplicação o mais próximo possível da realidade, confirmando que ela efetivamente suporta a quantidade de usuários que você espera. &lt;p&gt;  &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/VSTS" rel=tag&gt;VSTS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team+System" rel=tag&gt;Team System&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Load+Test" rel=tag&gt;Load Test&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+Por+falar+em+testes+de+carga+%e2%80%93+WCF+Load+Test&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>Test Edition</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!868.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!868.entry</guid><pubDate>Tue, 15 Jul 2008 21:32:03 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!868/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!868.entry#comment</wfw:comment><dcterms:modified>2008-07-15T21:32:03Z</dcterms:modified></item><item><title>Teste de carga de servidores SQL Server</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!867.entry</link><description>&lt;p&gt;O time VSTS Rangers (uma equipe dentro da Microsoft responsável por eliminar “entraves” na adoção do VSTS pelos clientes) acaba de lançar mais um projeto no CodePlex: é o &lt;a href="http://www.codeplex.com/SQLLoadTest"&gt;SQL Load Test&lt;/a&gt;. &lt;p&gt;A proposta é bem simples: a ferramenta de teste de carga que faz parte do Visual Studio Team System é realmente incrível, porém oferece suporte nativo apenas a aplicações Web. Como fazer um teste de carga para, por exemplo, um aplicativo cliente/servidor desenvolvido em WPF ou Windows Forms? Tipicamente o que importa num teste de carga num cenário como esse é avaliar a performance do servidor de banco de dados. Para tanto, basta iniciar a gravação de um arquivo de &lt;em&gt;trace&lt;/em&gt; do SQL Server e utilizar normalmente a aplicação, registrando sua interação com o servidor; &lt;p&gt;A partir desse arquivo de &lt;em&gt;trace&lt;/em&gt; do SQL Server, é possível criar um teste unitário que contém as chamadas ADO.NET correspondentes ao conteúdo do arquivo de &lt;em&gt;trace&lt;/em&gt;. Com isso, é possível criar um teste de carga que execute esse teste unitário para efetivamente estressar o servidor. &lt;p&gt;  &lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/VSTS" rel=tag&gt;VSTS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team+System" rel=tag&gt;Team System&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Load+Test" rel=tag&gt;Load Test&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+Teste+de+carga+de+servidores+SQL+Server&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>Test Edition</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!867.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!867.entry</guid><pubDate>Tue, 15 Jul 2008 09:29:54 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!867/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!867.entry#comment</wfw:comment><dcterms:modified>2008-07-15T21:32:25Z</dcterms:modified></item><item><title>Mais um grande blog de VSTS em português</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!864.entry</link><description>&lt;div&gt;O Ramon Durães, MVP de ASP.NET, tem postado muito conteúdo bacana de VSTS. Confira o seu site em &lt;a href="http://blogs.2pc.com.br/ramonduraes/"&gt;http://blogs.2pc.com.br/ramonduraes/&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Dica: Dê uma olhada no post &lt;a href="http://feeds.feedburner.com/~r/ramonduraes/~3/321254921/controlando-o-tempo-gasto-em-projetos-de-software.aspx"&gt;Controlando o tempo gasto em projetos de software&lt;/a&gt; - essa é uma dúvida bastante comum, sobre &lt;em&gt;timesheeting&lt;/em&gt; no TFS.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+Mais+um+grande+blog+de+VSTS+em+portugu%c3%aas&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>VSTS</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!864.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!864.entry</guid><pubDate>Mon, 30 Jun 2008 22:51:00 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!864/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!864.entry#comment</wfw:comment><dcterms:modified>2008-06-30T22:51:00Z</dcterms:modified></item><item><title>Crie novas ferramentas para o Visual Studio e o TFS com o Visual Studio SDK</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!862.entry</link><description>&lt;p&gt;Poucas pessoas sabem, mas o Visual Studio tem um SDK (Software Development Kit) próprio. Com ele, é possível estender os recursos do Visual Studio (e também do TFS), com a criação de inúmeros componentes, tais como: &lt;ul&gt; &lt;li&gt;Add-ins e plug-ins para o IDE;  &lt;li&gt;Políticas de check-in;  &lt;li&gt;Linguagens de programação (isso mesmo! você pode criar sua própria linguagem de programação e hospedá-la no Visual Studio!);  &lt;li&gt;Interação com &lt;em&gt;work items&lt;/em&gt;;  &lt;li&gt;E muito mais!&lt;/ul&gt; &lt;p&gt;O SDK oferece um navegador muito bacana, no qual é possível encontrar inúmeros exemplos de como utilizar os componentes e bibliotecas oferecidos: &lt;p&gt;&lt;a href="http://nlj65q.blu.livefilestore.com/y1poI8emIhb0eik6MWoTQQIlI8vWXEub_C6-h-8qNLEE57dErMaKaLjeteXlrgRrl2acIAb-mvGOVDTxFMohbIa7zIhe9QeA9wF?PARTNER=WRITER"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" title=image border=0 alt=image src="http://nlj65q.blu.livefilestore.com/y1poI8emIhb0ejMMo6aFGfRgrINRi6wt9XJ7SbQfrPa148cQ8kL0mzzwNwVPu6e85YuZ0_UD2o8TEHhmUpmGs7NwL7N9CdtGCvo?PARTNER=WRITER" width=620 height=484&gt;&lt;/a&gt;  &lt;p&gt;Além de permitir a criação de extensões para o IDE do Visual Studio e para o TFS, o VS SDK é usado para criar as soluções customizadas para o &lt;a href="http://msdn.microsoft.com/en-us/vsx2008/products/bb933751.aspx"&gt;Visual Studio Shell&lt;/a&gt;. &lt;p&gt;Para saber mais sobre o SDK (e a extensibilidade da plataforma Visual Studio), consulte: &lt;ul&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/vsxteam/"&gt;VSX Team Blog&lt;/a&gt;  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/vsx/default.aspx"&gt;Visual Studio Extensibility Developer Center&lt;/a&gt;  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb166441(VS.80).aspx"&gt;Visual Studio SDK&lt;/a&gt;&lt;/ul&gt; &lt;p&gt;  &lt;div style="padding-right:0px;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;display:inline"&gt;Technorati Marcas: &lt;a href="http://technorati.com/tags/VSTS" rel=tag&gt;VSTS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team+System" rel=tag&gt;Team System&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TFS" rel=tag&gt;TFS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Visual+Studio" rel=tag&gt;Visual Studio&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Extensibility" rel=tag&gt;Extensibility&lt;/a&gt;,&lt;a href="http://technorati.com/tags/VSX" rel=tag&gt;VSX&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SDK" rel=tag&gt;SDK&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+Crie+novas+ferramentas+para+o+Visual+Studio+e+o+TFS+com+o+Visual+Studio+SDK&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>Extensibility</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!862.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!862.entry</guid><pubDate>Wed, 18 Jun 2008 23:48:27 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!862/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!862.entry#comment</wfw:comment><dcterms:modified>2008-06-18T23:54:25Z</dcterms:modified></item><item><title>Microsoft Dynamics AX e Team Foundation Server</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!859.entry</link><description>&lt;p&gt; Brian Harry acabou de &lt;a href="http://blogs.msdn.com/bharry/archive/2008/06/18/tfs-support-for-dynamics-developers.aspx"&gt;anunciar&lt;/a&gt;: o recém-lançado Dynamics AX 2009 agora oferece integração com o controle de versão do TFS! &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;Less than a month ago, &lt;/em&gt;&lt;a href="http://www.microsoft.com/presspass/press/2008/jun08/06-02DynamicsAX2009GAPR.mspx"&gt;&lt;em&gt;Dynamics AX 2009 was released&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.  This new version enables Dynamics developers to store their source code and have an integrated experience for checkout, check in, get and history - the basic version control operations in TFS.  I'm excited about this because I get the question fairly often and people are always surprised when I tell them we don't have a solution.  Now I don't have to disappoint any longer.&lt;/em&gt;&lt;/blockquote&gt; &lt;p&gt;Para saber como configurar o AX para armazenar o código-fonte no TFS, veja a documentação disponível em &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyId=EFC24EDC-522E-40AA-8F36-6367ED7AB92D&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EFC24EDC-522E-40AA-8F36-6367ED7AB92D&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=EFC24EDC-522E-40AA-8F36-6367ED7AB92D&amp;amp;displaylang=en&lt;/a&gt;. &lt;p&gt;  &lt;p&gt; &lt;p&gt; &lt;div style="padding-right:0px;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;display:inline"&gt;Technorati Marcas: &lt;a href="http://technorati.com/tags/VSTS" rel=tag&gt;VSTS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team+System" rel=tag&gt;Team System&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TFS" rel=tag&gt;TFS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Dynamics+AX" rel=tag&gt;Dynamics AX&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+Microsoft+Dynamics+AX+e+Team+Foundation+Server&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>Integração com Terceiros</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!859.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!859.entry</guid><pubDate>Wed, 18 Jun 2008 23:36:08 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!859/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!859.entry#comment</wfw:comment><dcterms:modified>2008-06-18T23:36:08Z</dcterms:modified></item><item><title>O que há de novo no Visual Studio Team System 2008?</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!858.entry</link><description>&lt;p&gt;Apesar de o VSTS 2008 já ter sido lançado há um tempo razoável - novembro do ano passado - ainda há muita gente que não sabe o que mudou desde a versão 2005. Por isso, resolvi fazer um resumo das alterações numa série de posts. Irei publicar os links aos poucos, conforme criar os posts. &lt;p&gt;Veja abaixo os links com os posts resumindo as mudanças da nova versão do Team System. &lt;strong&gt;IMPORTANTE&lt;/strong&gt;: Aqui você encontra apenas os recursos específicos do Team System (TFS e Team Editions).  &lt;ul&gt; &lt;li&gt;O que há de novo no Team Foundation Server 2008? &lt;li&gt;O que há de novo no Team Build 2008? &lt;li&gt;O que há de novo no VSTS Architecture Edition 2008? &lt;li&gt;O que há de novo no VSTS Development Edition 2008? &lt;li&gt;O que há de novo no VSTS Test Edition 2008? &lt;li&gt;O que há de novo no VSTS Database Edition 2008?&lt;/ul&gt; &lt;p&gt;  &lt;p&gt;Para saber mais sobre as mudanças no Visual Studio e no .NET Framework:  &lt;ul&gt; &lt;li&gt;O que há de novo no Visual Studio 2008?&lt;br&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb386063.aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb386063.aspx&lt;/a&gt; &lt;li&gt;O que há de novo no .NET Framework 3.5?&lt;br&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/bb332048.aspx" href="http://msdn.microsoft.com/en-us/library/bb332048.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb332048.aspx&lt;/a&gt;&lt;/ul&gt; &lt;p&gt;  &lt;p&gt; &lt;div style="padding-right:0px;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;display:inline"&gt;Technorati Marcas: &lt;a href="http://technorati.com/tags/VSTS" rel=tag&gt;VSTS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team+System" rel=tag&gt;Team System&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Visual+Studio" rel=tag&gt;Visual Studio&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.NET" rel=tag&gt;.NET&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+O+que+h%c3%a1+de+novo+no+Visual+Studio+Team+System+2008%3f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>VSTS</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!858.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!858.entry</guid><pubDate>Wed, 18 Jun 2008 03:21:58 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!858/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!858.entry#comment</wfw:comment><dcterms:modified>2008-06-18T03:23:25Z</dcterms:modified></item><item><title>TFS também ama o Java (e o Delphi, e o PowerBuilder…)</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!857.entry</link><description>&lt;p&gt; &lt;p&gt; &lt;p&gt;O Team Foundation ainda é alvo de muito preconceito da comunidade de desenvolvedores. Só porque o nome do produto é “Microsoft Visual Studio Team System Team Foundation Server” (pequeno, né?) a maioria presume que &lt;em&gt;&lt;strong&gt;TFS = .NET&lt;/strong&gt;&lt;/em&gt;, já que assumem que &lt;em&gt;&lt;strong&gt;Visual Studio = .NET&lt;/strong&gt;&lt;/em&gt;. Bem, nada mais equivocado. &lt;p&gt;O ponto importante a se lembrar aqui é: &lt;strong&gt;O Visual Studio Team System é uma plataforma de ALM.&lt;/strong&gt; ALM, ou &lt;em&gt;Application Lifecycle Management&lt;/em&gt;, refere-se às práticas envolvidas na gestão do ciclo de vida de uma aplicação – desde a sua concepção, especificação e planejamento até a efetiva implantação no ambiente de produção. Repare que em nenhum lugar estava escrito &lt;em&gt;“.NET Application Lifecycle Management”&lt;/em&gt;. Assim, ainda que obviamente a plataforma tenha recursos específicos para .NET (capazes de aumentar a qualidade e eficiência do trabalho da equipe de desenvolvimento), eu realmente acredito que nossa plataforma brilha nos cenários em que há vários ambientes (e linguagens) de desenvolvimento envolvidos. &lt;p&gt;Na sua empresa há um ambiente heterogêneo de programação? Há grandes chances que a resposta seja “sim”. Na maioria dos clientes que tenho visitado o mais comum é termos algo como “VB6 + .NET”, ou “Java + .NET”, ou “Delphi + VB + Java”, ou qualquer outra combinação que você imaginar. Como se não bastasse o fato de ter que lidar com múltiplas linguagens de programação, esses clientes normalmente acabam lidando com várias ferramentas usadas &lt;strong&gt;ao mesmo tempo&lt;/strong&gt; no apoio à ALM: VSS, CVS, Subversion, Jira, Trac, Project Server, Primavera etc… &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;Quem já não viu esse cenário? “Projetos Java no Subversion, projetos VB no SourceSafe”. Como conseguir gerenciar isso de forma efetiva? &lt;p&gt;A resposta é clara: Use o &lt;strong&gt;Team Foundation Server&lt;/strong&gt; para &lt;strong&gt;todos os projetos, independentemente da linguagem!&lt;/strong&gt; &lt;h3&gt;Eclipse&lt;/h3&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;Veja o caso do Eclipse, um dos IDEs mais utilizados no desenvolvimento de aplicações Java (usando o plugin &lt;a href="http://www.teamprise.com/"&gt;Teamprise&lt;/a&gt;). Com ele, você tem acesso total aos recursos do TFS – controle de versão, rastreamento de itens de trabalho, relatórios e documentos: &lt;p&gt;&lt;a href="http://nlj65q.blu.livefilestore.com/y1pHf9_V0HysywwkV0d1z6IHrgoAqKkQnNIigxxKAOCcddgD21QEHhLMR48f1JZM0MnkckiQ_lQqYcMbmV98iQXSw?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" title="rad_wit_win" border=0 alt="rad_wit_win" src="http://nlj65q.blu.livefilestore.com/y1poI8emIhb0eic2iL-XYvyX3FdPRviiTfbwkgYkmOYk3cFO4HQp_PN0s3BaqRwWa_HqCST4woql1QVg77KkEjjJ9Y8G6Id-fXK?PARTNER=WRITER" width=644 height=484&gt;&lt;/a&gt;  &lt;h3&gt;MSSCCI Provider&lt;/h3&gt; &lt;p&gt;Há vários IDEs que ainda não oferecem suporte nativo ao TFS. Porém, se eles tiverem suporte ao Visual SourceSafe, há grandes chances de usar o TFS no lugar do VSS. Basta que eles se conectem ao VSS através de uma API chamada MSSCCI (Microsoft Source Code Control Interface). Com o &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=87E1FFBD-A484-4C3A-8776-D560AB1E6198&amp;amp;displaylang=en"&gt;Visual Studio Team Foundation Server MSSCCI Provider&lt;/a&gt; é possível “enganar” seu IDE, de modo que ele “fale” com o TFS pensando que é o SourceSafe. Alguns dos IDEs que utilizam essa API e que foram testados pela Microsoft para usar o MSSCCI Provider são: &lt;ul&gt; &lt;li&gt;Visual Studio .NET 2003  &lt;li&gt;Visual C++ 6 SP6  &lt;li&gt;Visual Visual Basic 6 SP6  &lt;li&gt;Visual FoxPro 9 SP1  &lt;li&gt;Microsoft Access 2003 SP2  &lt;li&gt;SQL Server Management Studio  &lt;li&gt;Sparx Systems Enterprise Architect 6.1  &lt;li&gt;Sybase PowerBuilder 10.5  &lt;li&gt;Toad for SQL Server 2.0&lt;/ul&gt; &lt;p&gt;  &lt;p&gt;Para saber mais, há um artigo (já um tanto antigo, mas ainda válido) sobre o assunto em &lt;a title="http://www.microsoft.com/brasil/msdn/tecnologias/vs2005/tfs.mspx" href="http://www.microsoft.com/brasil/msdn/tecnologias/vs2005/tfs.mspx"&gt;http://www.microsoft.com/brasil/msdn/tecnologias/vs2005/tfs.mspx&lt;/a&gt;. &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;&lt;u&gt;&lt;/u&gt; &lt;p&gt; &lt;p&gt;  &lt;div style="padding-right:0px;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;display:inline"&gt;Technorati Marcas: &lt;a href="http://technorati.com/tags/VSTS" rel=tag&gt;VSTS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team+System" rel=tag&gt;Team System&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.NET" rel=tag&gt;.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Eclipse" rel=tag&gt;Eclipse&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Delphi" rel=tag&gt;Delphi&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MSSCCI" rel=tag&gt;MSSCCI&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+TFS+tamb%c3%a9m+ama+o+Java+(e+o+Delphi%2c+e+o+PowerBuilder%e2%80%a6)&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>Integração com Terceiros</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!857.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!857.entry</guid><pubDate>Wed, 18 Jun 2008 02:56:07 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!857/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!857.entry#comment</wfw:comment><dcterms:modified>2008-06-18T03:33:36Z</dcterms:modified></item><item><title>Concurso: Qual o "gadget" mais legal para o Team System?</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!851.entry</link><description>&lt;p&gt;Você já desenvolveu alguma ferramenta para estender a funcionalidade do Team System? Conhece alguém que criou um programinha tão legal que mudou seu jeito de usar a solução de ALM da Microsoft? Que tal participar de um concurso para eleger o &lt;em&gt;gadget&lt;/em&gt; mais legal para o Team System? &lt;p&gt;Mike Azocar, MVP de Team System, propôs o concurso &lt;strong&gt;&lt;a href="http://www.michaelazocar.com/blog/?p=485"&gt;Coolest Team System Gadget Contest&lt;/a&gt;&lt;/strong&gt;. Do blog do Mike: &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;Have you created a useful gadget for Team System? Do you have one in mind? I am looking for the coolest community built tool for VSTS. It can be something for TFS, for Visual Studio, or something that is stand alone. The winner will receive a one year subscription to MSDN with Team Suite and a one year subscription to Infragistics NetAdvantage controls! &lt;/em&gt; &lt;p&gt;&lt;em&gt;To enter, submit a screen cast (up to 3 minutes long) which tells everyone why your gadget is the coolest and the source code. All submissions will be released to the public as free source to use and enjoy (with you getting all the credit of course). Videos will also be made available to the public to help make you famous! This should be something new (i.e. not on Codeplex or previously released) and not something repackaged. &lt;/em&gt;&lt;/blockquote&gt; &lt;p&gt;Inscreva-se até o dia 31/agosto. O vencedor será anunciado no dia 15/setembro. Inscreva-se! Vote no seu preferido!  &lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+Concurso%3a+Qual+o+%22gadget%22+mais+legal+para+o+Team+System%3f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>VSTS</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!851.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!851.entry</guid><pubDate>Mon, 16 Jun 2008 01:49:09 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!851/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!851.entry#comment</wfw:comment><dcterms:modified>2008-06-16T02:00:24Z</dcterms:modified></item><item><title>Preciso instalar o Visual Studio no meu servidor de build?</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!845.entry</link><description>&lt;p&gt;Mais uma da série &amp;quot;dúvidas comuns sobre o Team System&amp;quot;: Muitos clientes nos perguntam se é preciso instalar alguma versão do Visual Studio Team System no servidor de build (mais precisamente no &lt;em&gt;agente de build&lt;/em&gt; - essa é a nomenclatura correta). 
&lt;p&gt;A resposta curta é: &lt;strong&gt;Provavelmente&lt;/strong&gt;. A resposta completa é: 
&lt;p&gt;Se você pretende usar em seus builds algum dos recursos a seguir: 
&lt;ul&gt;
&lt;li&gt;Testes em geral (unitários, web, carga etc.); 
&lt;li&gt;Análise Estática de Código (&lt;em&gt;Code Analysis&lt;/em&gt;); 
&lt;li&gt;Testes Unitários de Banco de Dados; 
&lt;li&gt;Compilação e Implantação de Projetos de Banco de Dados.&lt;/ul&gt;
&lt;p&gt;Então você precisará instalar a versão adequada do Visual Studio no agente de build. Isso se deve ao fato de que os recursos listados acima são exclusivo do IDE, sendo &amp;quot;aproveitados&amp;quot; pelo agente no ato da execução do build. As DLLs que executam cada uma das funções acima não podem ser instaladas individualmente; para isso você deve instalar o Visual Studio, de acordo com a tabela abaixo: 
&lt;p&gt;  
&lt;table cellspacing=0 cellpadding=2 width=743 border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign=top width=252&gt;&lt;strong&gt;Recurso&lt;/strong&gt; 
&lt;td valign=top width=489&gt;&lt;strong&gt;Versão Necessária&lt;/strong&gt; 
&lt;tr&gt;
&lt;td valign=top width=252&gt;Testes Unitários 
&lt;td valign=top width=489&gt;Team Developer ou Team Tester (2005); Professional (2008) 
&lt;tr&gt;
&lt;td valign=top width=252&gt;Testes em geral 
&lt;td valign=top width=489&gt;Test Edition 
&lt;tr&gt;
&lt;td valign=top width=252&gt;Análise Estática de Código 
&lt;td valign=top width=489&gt;Development Edition 
&lt;tr&gt;
&lt;td valign=top width=252&gt;Testes Unitários de Banco de Dados 
&lt;td valign=top width=489&gt;Database Edition 
&lt;tr&gt;
&lt;td valign=top width=252&gt;Projetos de Banco de Dados 
&lt;td valign=top width=489&gt;Database Edition&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;  
&lt;p&gt;Para simplificar o processo de seleção listado na tabela acima, muitos de nossos clientes preferem instalar o Team Suite nos agentes de build. 
&lt;h3&gt;Licenciamento&lt;/h3&gt;
&lt;p&gt;Este é um ponto muito importante: &lt;strong&gt;Na maioria dos casos, você NÃO PRECISA COMPRAR uma licença adicional para seus agentes de build&lt;/strong&gt;. O licenciamento segue a seguinte lógica: 
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;A pessoa que &lt;strong&gt;criar o script de build&lt;/strong&gt; pode instalar no agente de build &lt;strong&gt;a mesma licença que ela tem&lt;/strong&gt; para uso em seu próprio computador&amp;quot;&lt;/em&gt;&lt;/blockquote&gt;
&lt;p&gt;Em outras palavras: Se eu tiver um Visual Studio Team System Development Edition (que eu uso no dia-a-dia para desenvolvimento dos meus sistemas) e for o responsável por criar o script de build, isso me dá o direito a: 
&lt;ol&gt;
&lt;li&gt;Adicionar o recurso de Análise de Código (que faz parte do Development Edition) ao meu script de build; 
&lt;li&gt;Instalar o Visual Studio Team System Development Edition (que é a licença que eu tenho em meu próprio computador) no servidor de build, &lt;strong&gt;sem custo adicional&lt;/strong&gt;.&lt;/ol&gt;
&lt;p&gt;Por isso, se você quiser usar num mesmo script de build os recursos de análise de código (Development Edition), testes (Test Edition) e banco de dados (Database Edition), a pessoa que &lt;strong&gt;cria o script de build&lt;/strong&gt; deve ter o Team Suite.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+Preciso+instalar+o+Visual+Studio+no+meu+servidor+de+build%3f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>Team Build</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!845.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!845.entry</guid><pubDate>Wed, 11 Jun 2008 04:52:13 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!845/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!845.entry#comment</wfw:comment><dcterms:modified>2008-06-13T13:30:05Z</dcterms:modified></item><item><title>Cobertura de Código - Só para testes unitários?</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!844.entry</link><description>&lt;p&gt;Antes de discutir cobertura de código, uma rápida recapitulação: 
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cobertura de código&lt;/strong&gt;: Uma métrica que indica a efetividade dos testes feitos em uma aplicação. Expressa em termos de porcentagem do código-fonte da aplicação, mostra extaamente o quanto da aplicação foi testada durante uma dada bateria de testes; 
&lt;li&gt;&lt;strong&gt;Testes Unitários&lt;/strong&gt;: Pequenas rotinas (tipicamente escritas na mesma linguagem de programação do sistema que será testado) que descrevem regras de negócios e outros comportamentos conhecidos e esperados do sistema. Os testes unitários invocam rotinas e outras pequenas porções de código do sistema-alvo, suprindo parâmetros com valores pré-definidos e analisando o comportamento resultante, que deve estar de acordo com a regra de negócio ou comportamento esperado em questão.&lt;/ul&gt;
&lt;p&gt;Para que os testes unitários sejam efetivos, eles devem cobrir o maior número possível de &amp;quot;caminhos&amp;quot; no código da aplicação. A cobertura de código visa a responder justamente o quanto desses caminhos foi realmente testado. Veja um exemplo (totalmente fictício, hein?!) que ilustra tudo isso: 
&lt;p&gt; 
&lt;p&gt;
&lt;table style="width:731px;height:1414px" cellspacing=0 cellpadding=2 width=731 border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign=top width=809&gt;
&lt;p&gt;&lt;strong&gt;Regra de Negócio:&lt;/strong&gt; 
&lt;p&gt;&lt;em&gt;Para o cálculo do salário líquido de um funcionário, dados:&lt;/em&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;O valor do salário bruto; &lt;/em&gt;
&lt;li&gt;&lt;em&gt;Um &amp;quot;flag&amp;quot; indicando a adesão ao plano de saúde; &lt;/em&gt;
&lt;li&gt;&lt;em&gt;Um &amp;quot;flag&amp;quot; indicando a adesão ao vale-refeição;&lt;/em&gt;&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Deve ser efetuado o seguinte cálculo:&lt;/em&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Descontar o imposto de renda de acordo com com as seguintes faixas: &lt;/em&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;R$0 - R$1000: Isento; &lt;/em&gt;
&lt;li&gt;&lt;em&gt;R$1001 - R$2000: 5%;&lt;/em&gt; 
&lt;li&gt;&lt;em&gt;R$2001 - R$3000: 15%;&lt;/em&gt; 
&lt;li&gt;&lt;em&gt;R$3001 em diante: 25.&lt;/em&gt;&lt;/ol&gt;
&lt;li&gt;&lt;em&gt;Descontar 10% de INSS;&lt;/em&gt; 
&lt;li&gt;&lt;em&gt;10% do salário bruto, caso tenha aderido ao plano de saúde; &lt;/em&gt;
&lt;li&gt;&lt;em&gt;5% do salário bruto, caso tenha aderido ao vale-refeição.&lt;/em&gt;&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Código-fonte da aplicação:&lt;/strong&gt; 
&lt;div&gt;&lt;pre&gt;&lt;span&gt;   1:  &lt;/span&gt;&lt;span&gt;public&lt;/span&gt; &lt;span&gt;class&lt;/span&gt; Empregado&lt;br&gt;&lt;span&gt;   2:  &lt;/span&gt;{&lt;br&gt;&lt;span&gt;   3:  &lt;/span&gt;    &lt;span&gt;public&lt;/span&gt; &lt;span&gt;static&lt;/span&gt; &lt;span&gt;double&lt;/span&gt; CalcularSalario(&lt;span&gt;double&lt;/span&gt; salarioBruto, &lt;span&gt;bool&lt;/span&gt; temPlanoSaude, &lt;span&gt;bool&lt;/span&gt; temValeRefeicao)&lt;br&gt;&lt;span&gt;   4:  &lt;/span&gt;    {&lt;br&gt;&lt;span&gt;   5:  &lt;/span&gt;        var salarioLiquido = salarioBruto;&lt;br&gt;&lt;span&gt;   6:  &lt;/span&gt; &lt;br&gt;&lt;span&gt;   7:  &lt;/span&gt;        &lt;span&gt;// Cálculo do imposto de renda&lt;br&gt;&lt;/span&gt;&lt;span&gt;   8:  &lt;/span&gt; &lt;br&gt;&lt;span&gt;   9:  &lt;/span&gt;        &lt;span&gt;if&lt;/span&gt; (salarioBruto &amp;gt; 1000 &amp;amp;&amp;amp; salarioLiquido &amp;lt;= 2000)&lt;br&gt;&lt;span&gt;  10:  &lt;/span&gt;        {&lt;br&gt;&lt;span&gt;  11:  &lt;/span&gt;            salarioLiquido -= (salarioBruto * .05);&lt;br&gt;&lt;span&gt;  12:  &lt;/span&gt;        }&lt;br&gt;&lt;span&gt;  13:  &lt;/span&gt;        &lt;span&gt;else&lt;/span&gt; &lt;span&gt;if&lt;/span&gt; (salarioBruto &amp;gt; 2000 &amp;amp;&amp;amp; salarioBruto &amp;lt;= 3000)&lt;br&gt;&lt;span&gt;  14:  &lt;/span&gt;        {&lt;br&gt;&lt;span&gt;  15:  &lt;/span&gt;            salarioLiquido -= (salarioBruto * .15);&lt;br&gt;&lt;span&gt;  16:  &lt;/span&gt;        }&lt;br&gt;&lt;span&gt;  17:  &lt;/span&gt;        &lt;span&gt;else&lt;/span&gt; &lt;span&gt;if&lt;/span&gt; (salarioBruto &amp;gt; 3000)&lt;br&gt;&lt;span&gt;  18:  &lt;/span&gt;        {&lt;br&gt;&lt;span&gt;  19:  &lt;/span&gt;            salarioLiquido -= (salarioBruto * .25);&lt;br&gt;&lt;span&gt;  20:  &lt;/span&gt;        }&lt;br&gt;&lt;span&gt;  21:  &lt;/span&gt; &lt;br&gt;&lt;span&gt;  22:  &lt;/span&gt;        &lt;span&gt;// Cálculo do plano de saúde&lt;/span&gt;&lt;br&gt;&lt;span&gt;  23:  &lt;/span&gt; &lt;br&gt;&lt;span&gt;  24:  &lt;/span&gt;        &lt;span&gt;if&lt;/span&gt; (temPlanoSaude)&lt;br&gt;&lt;span&gt;  25:  &lt;/span&gt;        {&lt;br&gt;&lt;span&gt;  26:  &lt;/span&gt;            salarioLiquido -= (salarioBruto * .10);&lt;br&gt;&lt;span&gt;  27:  &lt;/span&gt;        }&lt;br&gt;&lt;span&gt;  28:  &lt;/span&gt; &lt;br&gt;&lt;span&gt;  29:  &lt;/span&gt;        &lt;span&gt;// Cálculo do vale-refeição&lt;/span&gt;&lt;br&gt;&lt;span&gt;  30:  &lt;/span&gt; &lt;br&gt;&lt;span&gt;  31:  &lt;/span&gt;        &lt;span&gt;if&lt;/span&gt; (temValeRefeicao)&lt;br&gt;&lt;span&gt;  32:  &lt;/span&gt;        {&lt;br&gt;&lt;span&gt;  33:  &lt;/span&gt;            salarioLiquido -= (salarioBruto * .05);&lt;br&gt;&lt;span&gt;  34:  &lt;/span&gt;        }&lt;br&gt;&lt;span&gt;  35:  &lt;/span&gt; &lt;br&gt;&lt;span&gt;  36:  &lt;/span&gt;        &lt;span&gt;return&lt;/span&gt; salarioLiquido;&lt;br&gt;&lt;span&gt;  37:  &lt;/span&gt;    }&lt;br&gt;&lt;span&gt;  38:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Teste Unitário:&lt;/strong&gt;&lt;pre&gt;&lt;span&gt;public&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; CalcularSalarioTest()
{
    &lt;span&gt;// &amp;quot;Valores conhecidos&amp;quot;. São arbitrários; posso usar qualquer valor&lt;/span&gt;

    &lt;span&gt;double&lt;/span&gt; salarioBruto = 1500; 
    &lt;span&gt;bool&lt;/span&gt; temPlanoSaude = &lt;span&gt;false&lt;/span&gt;; 
    &lt;span&gt;bool&lt;/span&gt; temValeRefeicao = &lt;span&gt;true&lt;/span&gt;; 

    &lt;span&gt;// &amp;quot;Valor esperado&amp;quot;. Deve estar de acordo com a regra de negócio e com&lt;/span&gt;
    &lt;span&gt;// os valores dados acima&lt;/span&gt;

    &lt;span&gt;double&lt;/span&gt; expected = 1350; 

    &lt;span&gt;// &amp;quot;Valor real&amp;quot;. É o valor que será retornado pela minha rotina de cálculo;&lt;/span&gt;
    &lt;span&gt;// se tudo der certo, deve ser igual ao &amp;quot;valor esperado&amp;quot;&lt;/span&gt;

    &lt;span&gt;double&lt;/span&gt; actual;

    &lt;span&gt;// Executa a rotina passando os valores acima como parâmetros&lt;/span&gt;

    actual = Empregado.CalcularSalario(salarioBruto, temPlanoSaude, temValeRefeicao);

    &lt;span&gt;// Confere se os resultados (&amp;quot;valor esperado&amp;quot;, &amp;quot;valor real&amp;quot;) são iguais; se forem,&lt;/span&gt;
    &lt;span&gt;// o teste é considerado bem-sucedido&lt;/span&gt;

    Assert.AreEqual(expected, actual);
} &lt;/pre&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Compare a regra de negócio, o código-fonte da aplicação e o teste unitário: 
&lt;ul&gt;
&lt;li&gt;A rotina de cálculo está atendendo a todas as premissas da regra de negócio? No exemplo acima, sim. 
&lt;li&gt;O teste unitário está testando todas as variações possíveis da rotina de cálculo? No exemplo acima, não está: 
&lt;ul&gt;
&lt;li&gt;Não foram feitos testes para todas as faixas de salários (para garantir que o IRPF está sendo calculado corretamente); 
&lt;li&gt;Não foram testadas outras variações para &amp;quot;plano de saúde&amp;quot; e &amp;quot;vale-refeição&amp;quot;.&lt;/ul&gt;&lt;/ul&gt;
&lt;p&gt;É justamente nesse momento que entra a cobertura de código. Ela nos ajuda a identificar quais pontos da rotina não foram testados: 
&lt;p&gt;&lt;a href="http://nlj65q.blu.livefilestore.com/y1poI8emIhb0ei5Zdo7i8tQ4_EcU7DjE_mNqwxFKImT6FwmxvDXORC9LpWV60tt2AXdeLvUam6mhlW8OfRMpiOcqvxrPc7h9KN4?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=480 alt=image src="http://nlj65q.blu.livefilestore.com/y1poI8emIhb0ejPZ9ov4-Q8nP7Q8KFKorXAbmC6LEBmG6vutcMq1ZhH-WTAoCAru_1E8jwGjMXQoPAkEcWuws7S4j1hrA4OH8fk?PARTNER=WRITER" width=623 border=0&gt;&lt;/a&gt; 
&lt;p&gt;Viu? A cobertura de código é quase indispensável quando estamos trabalhando com testes unitários. Ela nos dá a medida da eficácia do teste que escrevemos e acabamos de executar. Daí vem uma dúvida bastante comum quando discutimos cobertura de código e testes unitários no Team System. Tipicamente esses dois recursos são mostrados em conjunto - e por isso há quem acredite que são parte da mesma funcionalidade, e que portanto cobertura de código significa &amp;quot;porcentagem do código testado pelos &lt;em&gt;testes unitários&lt;/em&gt;&amp;quot;, quando na verdade significa &amp;quot;porcentagem do código &lt;strong&gt;&lt;em&gt;testado&lt;/em&gt;&lt;/strong&gt;&amp;quot;! 
&lt;h1&gt;Cobertura de Código e outros testes&lt;/h1&gt;
&lt;p&gt;Veja como a cobertura de código se comporta em conjunto com alguns dos outros testes disponíveis no Team System. Para isso, crie uma solução com dois projetos: uma Web Application e um Test Project. Não se esqueça de ativar a cobertura de código para seu projeto Web Application (Test | Edit Test Run Configurations | Local Test Run): 
&lt;p&gt;&lt;a href="http://nlj65q.blu.livefilestore.com/y1poI8emIhb0ehpqzAfnD2qHDrwL2O17p07YVT1V2ckdHGs_yhwwQdA2iCP5rWd2pGhx0-9QZ6ZcCGMKq5N8Ra_gb6Hmy8DXPpC?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=455 alt=image src="http://nlj65q.blu.livefilestore.com/y1poI8emIhb0eh3bbRs_2JSW78Oi9blKWQvLhlo9rOARLSR_eZlVXn2KdflEuJk0tZLghWS7YYpIxXL1JTsCdn8dS4-BPzzHfb-?PARTNER=WRITER" width=640 border=0&gt;&lt;/a&gt; 
&lt;h2&gt;Testes Manuais&lt;/h2&gt;
&lt;p&gt;Faça uma experiência: adicione um teste manual e execute-o. Enquanto ele estiver em execução, abra o seu web site (que deve ter sido carregado automaticamente pelo Visual Studio). Navegue à vontade pelas páginas de teste que você deve ter criado (espero que sim!). Depois, no Visual Studio, marque o teste manual como concluído: 
&lt;p&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=289 alt=image src="http://blu1.storage.msn.com/y1p17xCeMqAcTuwtABiHjGsK5bgJD4zQnh0VOZCpgC_Lz7r4v1IvI7BW6lhIl6WwahkNMmQm5sVA9wQnG0fJHixaXZG5vUEH_dt?PARTNER=WRITER" width=491 border=0&gt; 
&lt;p&gt;Ao clicar numa das opções acima (e em seguida em Apply) você terá concluído o teste. Inspecione agora a janela de resultado da cobertura de código (Test | Windows | Code Coverage Results). Veja como a cobertura de código foi corretamente preenchida de acordo com as páginas que você navegou: 
&lt;p&gt;&lt;a href="http://nlj65q.blu.livefilestore.com/y1poI8emIhb0ei7tfqCvahG4ZZTfvxYJxYqOFppgtm39y3wvoKgj_hVqW3siI8lywQGZMSzl4qo3tn4aNptL0jf1n0giX-SG7gJ?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=252 alt=image src="http://nlj65q.blu.livefilestore.com/y1poI8emIhb0eikbms-WAJnI7T8mh5jNg6teK3Vb1MYp4NH2he5Uc2G_ogkJqu9lPFIuTyEvr4b54mpJcobTjoILPyw6gSsZzLH?PARTNER=WRITER" width=640 border=0&gt;&lt;/a&gt; 
&lt;h2&gt;Testes Web e Testes de Carga&lt;/h2&gt;
&lt;p&gt;Testes Web (&lt;em&gt;Web Test&lt;/em&gt;) e Testes de Carga (&lt;em&gt;Load Test&lt;/em&gt;) também alimentam a cobertura de código. Faça seus testes e confira! 
&lt;h2&gt;Outros tipos de testes&lt;/h2&gt;
&lt;p&gt;Veja como alguns dos outros tipos de teste disponíveis no Team System se comportam quanto à cobertura de código: 
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Testes Unitários de Banco de Dados&lt;/strong&gt;: Esses testes nada mais são que o teste unitário convencional com algumas facilidades para a execução de T-SQL. Na verdade, por baixo dos panos eles são .NET puro. Assim, se por acaso invocarem trechos da sua aplicação então a cobertura de código refletirá tal fato; 
&lt;li&gt;&lt;strong&gt;Testes Ordenados&lt;/strong&gt;: Como estes são nada mais que agrupadores de outros testes, estarão sujeitos às regras aplicáveis a cada um dos &amp;quot;sub-testes&amp;quot; que os compõem; 
&lt;li&gt;&lt;strong&gt;Testes Genéricos&lt;/strong&gt;: Esses testes existem para que possamos testar componentes não- .NET ou que sejam externos à nossa aplicação. Assim, não faz sentido esperar que esses testes &amp;quot;sensibilizem&amp;quot; a cobertura de código.&lt;/ul&gt;
&lt;h1&gt;Conclusão&lt;/h1&gt;
&lt;p&gt;A cobertura de código é um recurso muito importante da Test Edition do Visual Studio Team System, e está disponível para a maioria dos tipos de testes - não só para testes unitários. Use e abuse da cobertura de código! 
&lt;p&gt;  
&lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/VSTS" rel=tag&gt;VSTS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team System" rel=tag&gt;Team System&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Test" rel=tag&gt;Test&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Test Edition" rel=tag&gt;Test Edition&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Unit Test" rel=tag&gt;Unit Test&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Code Coverage" rel=tag&gt;Code Coverage&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.NET" rel=tag&gt;.NET&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+Cobertura+de+C%c3%b3digo+-+S%c3%b3+para+testes+unit%c3%a1rios%3f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>Test Edition</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!844.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!844.entry</guid><pubDate>Wed, 11 Jun 2008 04:51:05 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!844/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!844.entry#comment</wfw:comment><dcterms:modified>2008-06-13T13:30:58Z</dcterms:modified></item><item><title>Pôsteres de Visual Studio Team System em português</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!825.entry</link><description>&lt;p&gt;Um MVP de Team System da África do Sul, &lt;a href="http://dotnet.org.za/willy/default.aspx"&gt;Willy-Peter Schaub&lt;/a&gt;, teve uma grande idéia - criar &lt;a href="http://www.drp.co.za/"&gt;pôsteres de referência&lt;/a&gt;, cobrindo vários aspectos do Visual Studio Team System. Como os pôsteres originais são em inglês, comecei no ano passado um trabalho com ele para traduzirmos o material para o português. 
&lt;p&gt;&lt;a href="http://1efjkw.blu.livefilestore.com/y1poI8emIhb0ehO0FVR-yuOY00pMJvKVMUPYJsP4d8C_swzpSzdg3xkhNK52dqbADULEEMEK4DKFhFKQUYWpk_la6KEaWqqLHZ-?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=398 alt="0202 Microsoft Team System" src="http://1efjkw.blu.livefilestore.com/y1pHf9_V0Hysyy22XGC3EuyrMhk297x1wNfqBzWmdf-3Rs0DB0-AVcbrQ71poKIQR8auX3BptwFAKnUrnPhIGKYPQ?PARTNER=WRITER" width=772 border=0&gt;&lt;/a&gt; 
&lt;p&gt;Para baixar os pôsteres, visite &lt;a title="http://www.drp.co.za/Media/Posters/tabid/73/Default.aspx" href="http://www.drp.co.za/Media/Posters/tabid/73/Default.aspx"&gt;http://www.drp.co.za/Media/Posters/tabid/73/Default.aspx&lt;/a&gt;. Fique de olho, pois mais pôsteres em português estão a caminho!&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+P%c3%b4steres+de+Visual+Studio+Team+System+em+portugu%c3%aas&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>VSTS</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!825.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!825.entry</guid><pubDate>Tue, 06 May 2008 01:54:22 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!825/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!825.entry#comment</wfw:comment><dcterms:modified>2008-06-13T13:31:36Z</dcterms:modified></item><item><title>Integração TFS - CA Harvest</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!821.entry</link><description>&lt;p&gt;Recentemente, participei do processo de adoção do TFS em um grande banco brasileiro. A equipe do projeto gostaria de utilizar o Team System - e em especial o TFS - para melhorar seu processo de desenvolvimento de software. Todos os envolvidos já conheciam a ferramenta e tinham ciência dos ganhos de produtividade e visibilidade oferecidos. Excelente, não? 
&lt;p&gt;Mas como nada na vida é tão simples assim, eles tinham um porém: o banco já havia adotado algumas ferramentas da Computer Associates (CA) para gestão do ciclo de vida. Essa decisão se deu, em parte, pela necessidade de integração com o mainframe. Dentre essas ferramentas, destaque para o CA Software Change Manager (anteriormente chamado de Harvest). Como o Harvest é a ferramenta de controle de versão &amp;quot;oficial&amp;quot; do banco, nosso desafio era integrar o TFS e o Harvest. 
&lt;p&gt;&lt;strong&gt;A solução&lt;/strong&gt; 
&lt;p&gt;No cenário definido pelo banco, não havia a exigência de que toda e qualquer versão do código-fonte fosse mantida no servidor do Harvest. Ou seja, como o TFS oferece um controle de versão seguro e auditável, poderia ser usado durante toda a fase de desenvolvimento, sem precisar &amp;quot;conversar&amp;quot; com o Harvest. A integração se daria apenas nos &lt;em&gt;milestones&lt;/em&gt; definidos pela equipe de projeto - ou seja, quando fossem &amp;quot;gerar um pacote&amp;quot; (ou &amp;quot;fechar uma baseline&amp;quot;) para que as equipes de teste e homologação pudessem testar o produto. 
&lt;p&gt;Com esse requisito, a solução desenvolvida utilizou o Team Build para &amp;quot;fechar o pacote&amp;quot;. Através de um conjunto de &lt;em&gt;custom tasks&lt;/em&gt; do MSBuild, foi possível criar scripts de build que, de forma simples, interagiam com o Harvest. 
&lt;p&gt;Essas &lt;em&gt;custom tasks&lt;/em&gt; encapsulam a API COM do Harvest (CHSDK), de modo que seu script pode conter tags tais como &amp;lt;Harvest.CheckIn&amp;gt; ou &amp;lt;Harvest.CreatePackage&amp;gt;. Simples assim :). 
&lt;p&gt;&lt;strong&gt;CodePlex!&lt;/strong&gt; 
&lt;p&gt;Minha intenção é publicar esse código no CodePlex (assim que definirmos as questões legais e de licença do código-fonte). Avisarei aqui no blog quando tiver novidades. Fique atento!&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+Integra%c3%a7%c3%a3o+TFS+-+CA+Harvest&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><category>Integração com Terceiros</category><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!821.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!821.entry</guid><pubDate>Tue, 29 Apr 2008 21:35:31 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!821/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!821.entry#comment</wfw:comment><dcterms:modified>2008-06-13T13:32:24Z</dcterms:modified></item><item><title>De casa nova!!!</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!802.entry</link><description>&lt;p&gt;Depois de um looongo e tenebroso inverno, o blogueiro Igor Abade resolveu retomar suas atividades. &lt;p&gt;Agora, você pode meu blog sobre Visual Studio Team System aqui no Windows Live Spaces! &lt;a href="http://igoravl.spaces.live.com/"&gt;http://igoravl.spaces.live.com/&lt;/a&gt; &lt;p&gt;Aponte seus leitores de RSS para o feed do meu blog: &lt;a href="http://igoravl.spaces.live.com/blog/feed.rss"&gt;http://igoravl.spaces.live.com/blog/feed.rss&lt;/a&gt; &lt;p&gt;Aos leitores novos e antigos do meu blog: Bem-vindos! Teremos um longo e proveitoso caminho pela frente. &lt;p&gt;Um abraço,&lt;br&gt;    Igor&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+De+casa+nova!!!&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!802.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!802.entry</guid><pubDate>Sat, 29 Mar 2008 17:49:38 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!802/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!802.entry#comment</wfw:comment><dcterms:modified>2008-03-29T17:49:38Z</dcterms:modified></item><item><title>Pesquisa Internacional sobre VSTS</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!747.entry</link><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/buckh/"&gt;Bock Hodges&lt;/a&gt; anunciou uma &lt;a href="http://blogs.msdn.com/buckh/archive/2007/04/03/vsts-international-survey.aspx"&gt;pesquisa internacional&lt;/a&gt; que está sendo feita pela MS para obter feedback sobre o VSTS. Há pesquisas para alguns idiomas específicos e até mesmo outras para países específicos &lt;blockquote&gt; &lt;p&gt;Aldo Donetti, lead PM on the VSTS globalization team, sent out email today about the newly released VSTS International Surveys.  These complement the previously released English language survey.  There are both language-specific and some country-specific surveys.  If you use VSTS in one of the languages and/or countries below, it would be helpful to us for you to take the survey and let us know your opinion.&lt;/blockquote&gt; &lt;p&gt;Para participar da pesquisa direcionada ao público brasileiro, clique &lt;a href="http://c2.microsoft.fr/surveyIntlVSTS/?elng=2057&amp;amp;src=Bra"&gt;aqui&lt;/a&gt;.&lt;img src="http://blogs.vstsrocks.com.br/aggbug.aspx?PostID=410" width=1 height=1&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+Pesquisa+Internacional+sobre+VSTS&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!747.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!747.entry</guid><pubDate>Wed, 11 Apr 2007 04:36:36 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!747/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!747.entry#comment</wfw:comment><dcterms:modified>2008-03-29T16:59:26Z</dcterms:modified></item><item><title>TFS Management Console</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!748.entry</link><description>&lt;p&gt; &lt;p&gt;Tenho pensado já há algum tempo em como melhorar a experiência do usuário na administração do TFS. Quer dizer, acho que todos concordamos que a administração do TFS usando as (poucas) ferramentas existentes é, no mínimo, confuso. &lt;p&gt;Não foram poucas as vezes em que vi reclamações de usuários frustrados com o trabalho de procurar por diversas ferramentas de administração do TFS na internet para suprir as lacunas deixadas pela ferramenta. Ainda que realmente existam tais ferramentas, as queixas geralmente batem numa mesma tecla: deveria haver um &amp;quot;pacote&amp;quot; único de ferrramentas, que deveriam ser mais &lt;b&gt;consistentes&lt;/b&gt; e fáceis de usar. &lt;p&gt;Há diversas ferramentas que facilitam o dia-a-dia dos administradores - como aquelas desenvolvidas pela Accentient e a já famosa TFS Admin Tool da Microsoft - mas falta a elas &lt;strong&gt;integração&lt;/strong&gt; e &lt;strong&gt;consistência&lt;/strong&gt;. Do ponto de vista de um desenvolvedor isso é compreensível - afinal, essas ferramentas foram feitas por pessoas diferentes em circunstâncias diferentes - simplesmente não há como integrá-las. &lt;p&gt;Ainda assim, nossos usuários estão acostumados com excelentes ferramentas de administração, como aquelas oferecidas pelos servidores SQL Server, Internet Information Services (IIS)e Exchange Server. Elas compartilham uma plataforma comum - MMC, ou Microsoft Management Console,  - que foi desenvolvido com a meta de oferecer a desenvolvedores a possibilidade de criar ferramentas de administração consistentes e extensíveis. &lt;p&gt;Assim, minha pergunta é: Que tal se, ao invés de termos diversas ferramentas, separadas e inconsistentes, tivéssemos algo como o mostrado nas figuras abaixo? &lt;p&gt;&lt;br&gt;&lt;a href="http://www.codeplex.com/tfsconsole/Project/FileDownload.aspx?DownloadId=10011"&gt;&lt;img alt="Computer Management.png" src="http://www.codeplex.com/tfsconsole/Project/FileDownload.aspx?DownloadId=10011" width="50%"&gt;&lt;/a&gt; &lt;p&gt;&lt;br&gt;&lt;a href="http://www.codeplex.com/tfsconsole/Project/FileDownload.aspx?DownloadId=10013"&gt;&lt;img alt=TfsConsole01.png src="http://www.codeplex.com/tfsconsole/Project/FileDownload.aspx?DownloadId=10013" width="50%"&gt;&lt;/a&gt; &lt;p&gt;&lt;br&gt;&lt;a href="http://www.codeplex.com/tfsconsole/Project/FileDownload.aspx?DownloadId=10014"&gt;&lt;img alt=TfsConsole02.png src="http://www.codeplex.com/tfsconsole/Project/FileDownload.aspx?DownloadId=10014" width="50%"&gt;&lt;/a&gt; &lt;p&gt;&lt;br&gt;&lt;a href="http://www.codeplex.com/tfsconsole/Project/FileDownload.aspx?DownloadId=10015"&gt;&lt;img alt=TfsConsole03.png src="http://www.codeplex.com/tfsconsole/Project/FileDownload.aspx?DownloadId=10015" width="50%"&gt;&lt;/a&gt; &lt;p&gt;&lt;br&gt;Este é o &lt;a href="http://www.codeplex.com/tfsconsole"&gt;TFS Management Console&lt;/a&gt; (pelo menos até alguém sugerir um nome melhor) - um projeto pessoal meu, que nasceu como uma prova-de-conceito mas que agora está &amp;quot;criando asas&amp;quot;, indo para o &lt;a href="http://www.codeplex.com/"&gt;CodePlex&lt;/a&gt;. Eu o imagino como uma plataforma com os recursos básicos - enumerar servidores e projetos, por exemplo - que tira proveito dos fabulosos recursos de extensibilidade oferecidos pelo framework do MMC (especialmente considerando o fato de que o MMC 3.0 suporta snap-ins gerenciados - que são realmente muito fáceis de se desenvolver em C# ou VB) para permitir que outros desenvolvedores criem extensões de uma maneira organizada e consistente. &lt;p&gt;Agora eu gostaria de saber: &lt;b&gt;o que você acha dessa idéia?&lt;/b&gt; Se você já criou (ou pensa em criar) uma ferramenta para o TFS, usaria o TFS Management Console como plataforma? &lt;p&gt;Quais recursos você acha importantes? O que você gostaria de ver contemplado nesta ferramenta? Por favor, dê sua opinião - aqui neste blog ou diretamente no site do projeto. Farei de tudo para que todas as idéias, pedidos e sugestões sejam, dentro do possível, incorporadas ao produto final.&lt;img src="http://blogs.vstsrocks.com.br/aggbug.aspx?PostID=400" width=1 height=1&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+TFS+Management+Console&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!748.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!748.entry</guid><pubDate>Sun, 08 Apr 2007 06:29:19 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!748/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!748.entry#comment</wfw:comment><dcterms:modified>2008-03-29T16:59:27Z</dcterms:modified></item><item><title>Microsoft Expression Web e Blend - Agora no MSDN Subscriptions!</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!749.entry</link><description>&lt;p&gt;(&lt;strong&gt;UPDATE&lt;/strong&gt;: Assinantes do MSDN Premium com Visual Studio Team Suite receberão o pacote Expression Studio completo - incluindo as ferramentas de design de imagens.) &lt;p&gt;Acabei de ver um &lt;a href="http://blogs.zdnet.com/microsoft/?p=364"&gt;post&lt;/a&gt; no blog da &lt;a href="http://blogs.zdnet.com/microsoft"&gt;Mary Jo Foley&lt;/a&gt; em que ela anuncia algo que, até então, a maioria achava impossível: a Microsoft incluiu nas assinaturas MSDN Premium as ferramentas da suíte Expression voltadas à criação de aplicações - Expression Web e Expression Blend. Mas nem todas as ferramentas serão disponibilizadas para os desenvolvedores: &lt;blockquote&gt; &lt;p&gt;Microsoft isn't planning to make Expression Design or Expression Media available as part of MSDN, however, company officials said.  &lt;p&gt;&amp;quot;This is not a change in who these products are for,&amp;quot; said Forest Key, director of product management for Microsoft's design tools. &amp;quot;It's ore about giving developers access to the tools&amp;quot; in case they want to see how they work and how they will dovetail with Visual Studio. &lt;/blockquote&gt; &lt;p&gt;Expression Web já está disponível para download. Expression Blend deve ser liberada assim que estiver pronta, nas próximas semanas.&lt;img src="http://blogs.vstsrocks.com.br/aggbug.aspx?PostID=397" width=1 height=1&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+Microsoft+Expression+Web+e+Blend+-+Agora+no+MSDN+Subscriptions!&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!749.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!749.entry</guid><pubDate>Tue, 03 Apr 2007 19:06:32 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!749/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!749.entry#comment</wfw:comment><dcterms:modified>2008-03-29T16:59:28Z</dcterms:modified></item><item><title>Redmond: D - 4 !!!</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!750.entry</link><description>&lt;p&gt;Pois é, daqui a apenas quatro dias estaremos chegando a Seattle e de lá para Redmond. Microsoft, se cuide!!!  :-D &lt;p&gt;  &lt;p&gt;No período de 12 a 15 de março ocorre o &lt;strong&gt;2007 MVP Global Summit&lt;/strong&gt;, evento patrocinado pela Microsoft e que reúne MVPs do mundo inteiro, numa oportunidade única de troca de idéis e conhecimentos - além de podermos participar de palestras e bate-papos direto com as equipes de produto! Imagine só poder conversar com os caras que &lt;em&gt;fazem&lt;/em&gt; o Visual Studio Team System, ver o produto direto no computador deles e conhecer o que vem por aí! &lt;p&gt;Por falar em oportunidade única, esta é provavelmente a última vez que Bill Gates fará uma apresentação pública como &lt;em&gt;chairman&lt;/em&gt; da Microsoft. Tomara que consigamos tirar uma foto com ele (se bem que com a quantidade de MVPs que vão estar na fila, deve ser difícil... ;-) ) &lt;p&gt;  &lt;p&gt;Fique ligado, blogarei diretamente de Redmond para contar tudo sobre o evento (claro, tudo aquilo que puder ser contado - muitas das palestras são confidenciais...)&lt;img src="http://blogs.vstsrocks.com.br/aggbug.aspx?PostID=383" width=1 height=1&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+Redmond%3a+D+-+4+!!!&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!750.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!750.entry</guid><pubDate>Tue, 06 Mar 2007 04:07:20 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!750/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!750.entry#comment</wfw:comment><dcterms:modified>2008-03-29T16:59:29Z</dcterms:modified></item><item><title>Team Foundation Server Power Tools 1.2</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!751.entry</link><description>&lt;p&gt;Foi lançada a nova versão do pacote de ferramentas (anteriormente conhecido como Power Toys) que estende os recursos do Team Foundation Server. &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/robcaron/archive/2007/02/20/1731907.aspx"&gt;Now Available: Team Foundation Server Power Tool v1.2&lt;/a&gt; &lt;p&gt;The February release of the &lt;a href="http://go.microsoft.com/?linkid=5422499"&gt;Team Foundation Server Power Tool&lt;/a&gt; is now available for download. Formerly known as the Team Foundation Power Toy, these utilities pack too much punch to be considered toys. &lt;p&gt;In this release, among other things you'll find a process template editor that runs inside the Visual Studio IDE for customizing your own process templates. To use the editor, you must first install the &lt;a href="http://go.microsoft.com/?linkid=6270225"&gt;Domain-Specific Language Tools for Visual Studio 2005 Redistributable Components&lt;/a&gt;.&lt;/blockquote&gt; &lt;p&gt;Link para download: &lt;a href="http://go.microsoft.com/?linkid=5422499"&gt;Team Foundation Server Power Tool&lt;/a&gt;&lt;img src="http://blogs.vstsrocks.com.br/aggbug.aspx?PostID=369" width=1 height=1&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=157475768196638370&amp;page=RSS%3a+Team+Foundation+Server+Power+Tools+1.2&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=igoravl.spaces.live.com&amp;amp;GT1=igoravl"&gt;</description><comments>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!751.entry#comment</comments><guid isPermaLink="true">http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!751.entry</guid><pubDate>Fri, 23 Feb 2007 06:22:52 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://igoravl.spaces.live.com/blog/cns!22F77607817A6A2!751/comments/feed.rss</wfw:commentRss><wfw:comment>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!751.entry#comment</wfw:comment><dcterms:modified>2008-03-29T16:59:30Z</dcterms:modified></item><item><title>Java &amp; .NET</title><link>http://igoravl.spaces.live.com/Blog/cns!22F77607817A6A2!752.entry</link><description>
        &lt;p&gt;Eu estava revendo meu arquivo de documentos e encontrei um artigo que escrevi para a revista Fórum Access em março de 2005, falando sobre um dilema comum a muitos desenvolvedores: &amp;quot;qual é a melhor opção, Java ou .NET?&amp;quot; Bem, gostaria de compartilhar esse artigo com vocês. Veja abaixo a íntegra do referido artigo &lt;hr&gt;  &lt;p&gt; &lt;h2&gt;Java e .NET: dois lados da mesma moeda?&lt;/h2&gt; &lt;p&gt;Desde que comecei a me envolver com a Informática, algo sempre me deixou curioso: ver como certas pessoas se envolviam em intermináveis discussões sobre quais seriam as melhores ferramentas de desenvolvimento. Ainda posso me lembrar das brigas entre os programadores de dBASE e os de Clipper, mais tarde repetida pelos programadores de Access e Visual Basic.  &lt;p&gt;Por falar em Visual Basic, quando entrei no colégio técnico, as comparações começaram em torno dele. “O Delphi é melhor que o VB”, ou então “o Visual C++ é para programadores de verdade; VB é para crianças”.  &lt;p&gt;Peça a qualquer desenvolvedor e ele vai lhe contar casos semelhantes. Como num encontro de torcedores de times de futebol rivais, sempre há alguém “puxando a sardinha” para o lado da sua ferramenta preferida.  &lt;p&gt;Com o advento da plataforma .NET não podia ser diferente. A Microsoft finalmente conseguiu, com seu moderno modelo de desenvolvimento, ameaçar o então inabalável Java em seu reduto, o desenvolvimento de aplicações para a Internet.  &lt;p&gt;“E daí”, você pode se perguntar, “o que eu tenho a ver com tudo isso?”. Bem, se você tira seu sustento do desenvolvimento de sistemas, este é um assunto do seu interesse.  &lt;h3&gt;Especialista ou generalista?&lt;/h3&gt; &lt;p&gt;Um dilema que sempre atormentou a nós, profissionais de Informática, é decidir o quanto devemos nos manter atualizados, sem exageros. Sabemos que as novidades em nossa área vêm em velocidade vertiginosa, e que é humanamente impossível mantermo-nos a par de tudo que é lançado. Junte-se a isso a preferência por essa ou aquela tecnologia, e acabamos optando por nos especializar em umas poucas ferramentas. Essa especialização faz com que muitas pessoas, por vezes incertas de terem optado pelo rumo correto, digam repetidamente a todos que “a linguagem ABC é muito melhor que a XYZ”, como se estivessem tentando se(Convencer a si próprias disso?/ convencer a elas mesmas?) convencer disso.  &lt;p&gt;Por conta dessa tendência de especialização, há quem diga que nossa área começa a sofrer de um problema que já vem preocupando aos profissionais da Medicina: está desaparecendo o “clínico-geral”. Muitos médicos recém-formados, de olho em modismos ou na busca por áreas mais rentáveis, acabam se especializando excessivamente. Com isso, depois de um tempo, tornam-se incapazes de diagnosticar um simples resfriado.  &lt;p&gt;Da mesma forma que um clínico-geral tem um papel fundamental na Medicina, por ser ele quem tem o primeiro contato com o paciente, ajudando-o inclusive a identificar qual especialista deve ser procurado, assim é o profissional generalista: com uma visão mais ampla do mercado, ele consegue fornecer orientações mais lúcidas, imparciais e precisas a seus clientes.  &lt;h3&gt;“Não ponha todos os ovos na mesma cesta”&lt;/h3&gt; &lt;p&gt;Isso não quer dizer que não deve haver especialistas. Porém, um grau muito alto de especialização pode ser perigoso num mercado tão dinâmico como o de Informática.  &lt;p&gt;Os leitores com mais de trinta anos – e com pelo menos quinze anos no desenvolvimento de sistemas – certamente se lembrarão do Clipper, e do quanto ele foi relevante. Se você dissesse a qualquer analista de sistemas, há quinze anos atrás, que o Clipper estava fadado a morrer em pouco tempo, provavelmente ele iria rir de você. A vasta maioria de todos os aplicativos comerciais da época era baseado na linguagem de programação derivada do venerável dBASE.  &lt;p&gt;Entretanto, em maio de 1990, foi lançado um produto que iria mudar o mundo: O Windows 3.0. Com sua interface gráfica e a habilidade de aproveitar melhor a memória do micro (&lt;i&gt;veja quadro&lt;/i&gt;), abriu um novo horizonte de possibilidades. A partir daí, e com o constante avanço do hardware, os clientes passaram a exigir programas que rodassem nesse novo ambiente, praticamente sepultando o outrora inabalável Clipper. Ninguém teria previsto tal acontecimento.  &lt;p&gt;Provavelmente, muitos especialistas em Clipper não conseguiram se ajustar às mudanças, e eventualmente tiveram problemas, até mesmo financeiros, durante a transição. Por outro lado, os “clínicos-gerais” da Informática, com sua abordagem mais generalista, adaptaram-se mais rapidamente à nova realidade do mercado, lucrando muito com isso.  &lt;div&gt; &lt;h3 align=center&gt;&lt;em&gt;A revolução chamada Windows&lt;/em&gt;&lt;/h3&gt; &lt;p align=left&gt;&lt;em&gt;Enquanto no Brasil ainda se conhecia apenas o MS-DOS (e a versão mais popular ainda era a 3.3) no quartel-general da Microsoft, em Redmond, uma revolução acontecia silenciosamente. A Microsoft estava colocando todos os seus esforços de desenvolvimento no OS/2 1.1, um projeto em parceria com a IBM para criar o “sistema operacional do futuro”, capaz de substituir o DOS. &lt;/em&gt; &lt;p align=left&gt;&lt;em&gt;A versão mais recente do Windows era a 2.0. Ainda muito primitiva, era incapaz de rodar programas DOS, além de estar limitada pela barreira de 640Kbytes da memória convencional, o que impedia a criação de programas avançados. &lt;/em&gt; &lt;p align=left&gt;&lt;em&gt;Quem virou o jogo, abrindo o caminho para a Informática como a conhecemos hoje, foi David Weise, ex-integrante da equipe de desenvolvimento do Windows, criador da técnica que permitiu ao Windows executar aplicações em modo protegido (um recurso dos processadores que permite a utilização de toda a memória do micro), virtualmente eliminando a barreira dos 640K. Tudo isso feito sem que ninguém soubesse, como se fosse um pet project – um projeto de estimação, feito nas horas vagas. Só aí foi apresentado a Steve Ballmer o que viria a ser o Windows 3.0, e o resto é história. O Windows 3.0 foi um dos lançamentos mais bem-sucedidos do mercado de software, vendendo mais de dez milhões de cópias num mês. &lt;/em&gt;&lt;/div&gt; &lt;h3&gt;Não tente abraçar o mundo &lt;/h3&gt; &lt;p&gt;Será que é possível conciliar as duas coisas? Quer dizer, como ser generalista, conhecendo um pouco de cada ferramenta, e ainda assim ser bom o bastante no que se faz, se destacando num mercado tão competitivo? O fato é que não exis