<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feed.lambda3.com.br/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Blog Lambda3</title>
	
	<link>http://blog.lambda3.com.br</link>
	<description />
	<lastBuildDate>Fri, 18 May 2012 03:07:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feed.lambda3.com.br/Lambda3Blog" /><feedburner:info uri="lambda3blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Lambda3Blog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Erro “UUID Already Exists” ao registrar o HD virtual no VirtualBox</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/IRIX4dQGHTM/</link>
		<comments>http://blog.lambda3.com.br/2012/05/erro-uuid-already-exists-ao-registrar-o-hd-virtual-no-virtualbox/#comments</comments>
		<pubDate>Fri, 18 May 2012 03:04:52 +0000</pubDate>
		<dc:creator>Igor Abade</dc:creator>
				<category><![CDATA[Outros]]></category>
		<category><![CDATA[sethduuid]]></category>
		<category><![CDATA[VHD]]></category>
		<category><![CDATA[Virtual Machine]]></category>
		<category><![CDATA[VirtualBox]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=3014</guid>
		<description><![CDATA[Se você chegou até até, deve ter se deparado com uma situação parecida com esta: Você criou uma máquina virtual no VirtualBox; Agora você precisa criar uma segunda VM e quer aproveitar a primeira VM como ponto de partida; Para &#8230; <a href="http://blog.lambda3.com.br/2012/05/erro-uuid-already-exists-ao-registrar-o-hd-virtual-no-virtualbox/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/05/SNAGHTML2535d9fd.png" rel="lightbox"><img style="background-image: none; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="SNAGHTML2535d9fd" src="http://blog.lambda3.com.br/wp-content/uploads//2012/05/SNAGHTML2535d9fd_thumb.png" alt="SNAGHTML2535d9fd" width="244" height="156" align="right" border="0" /></a>Se você chegou até até, deve ter se deparado com uma situação parecida com esta:</p>
<ol>
<li>Você criou uma máquina virtual no VirtualBox;</li>
<li>Agora você precisa criar uma segunda VM e quer aproveitar a primeira VM como ponto de partida;</li>
<li>Para isso, copia o VHD/VDI/VMDX e tenta adicioná-lo à nova máquina virtual.</li>
</ol>
<p>É quando você se depara com a mensagem de erro na janela ao lado!</p>
<p>Isso acontece porque o VirtualBox cria um identificador único (UUID) para cada disco virtual que você vier a utilizar. Como esse UUID é gravado dentro do próprio disco, ao adicionar uma cópia de um disco pré-existente ele detecta a duplicata.</p>
<p>O “truque” é gravar um novo UUID na cópia. Abra o prompt de comando e execute o comando abaixo (o arquivo VBoxManage.exe está no diretorio de instalação do VirtualBox):</p>
<pre class="brush: shell">VBoxManage internalcommands sethduuid X:\diretório\MeuVHD.vhd</pre>
<p>&nbsp;</p>
<p>Um abraço,<br />
    Igor</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/IRIX4dQGHTM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/05/erro-uuid-already-exists-ao-registrar-o-hd-virtual-no-virtualbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/05/erro-uuid-already-exists-ao-registrar-o-hd-virtual-no-virtualbox/</feedburner:origLink></item>
		<item>
		<title>Desenvolvimento Ágil e TFS no Microsoft TechDay em Sorocaba e Barra Bonita</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/uFKF4QGnOMY/</link>
		<comments>http://blog.lambda3.com.br/2012/05/desenvolvimento-agil-e-tfs-no-microsoft-techday-em-sorocaba-e-barra-bonita/#comments</comments>
		<pubDate>Tue, 15 May 2012 01:48:20 +0000</pubDate>
		<dc:creator>Igor Abade</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[ALM]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[Evento]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[TechDay]]></category>
		<category><![CDATA[TFS11]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=3009</guid>
		<description><![CDATA[Pessoal, recentemente tive o prazer de ser convidado pela Fernanda Saraiva (MVP de SharePoint) para palestrar no Microsoft TechDay em Sorocaba e Barra Bonita (ambas em SP). Minha palestra: Desenvolvimento Ágil de Aplicações com SCRUM e Team Foundation Server “11” &#8230; <a href="http://blog.lambda3.com.br/2012/05/desenvolvimento-agil-e-tfs-no-microsoft-techday-em-sorocaba-e-barra-bonita/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mstechday.com.br" target="_blank"><img title="SNAGHTML156ee9e1" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="SNAGHTML156ee9e1" align="right" src="http://blog.lambda3.com.br/wp-content/uploads//2012/05/SNAGHTML156ee9e1.png" width="279" height="139"></a>Pessoal, recentemente tive o prazer de ser convidado pela <a href="http://fernandasaraiva.com.br/" target="_blank">Fernanda Saraiva</a> (MVP de SharePoint) para palestrar no Microsoft TechDay em Sorocaba e Barra Bonita (ambas em SP). Minha palestra: </p>
<blockquote><h2>Desenvolvimento Ágil de Aplicações com SCRUM e Team Foundation Server “11”</h2>
<p>Empresas no mundo inteiro têm cada vez mais dificuldade para desenvolver e entregar software de qualidade. Os desafios são vários, tais como gerenciar as expectativas do usuário e as mudanças constantes de requisitos, bem como garantir a coesão e o foco do time. Venha ver como o desenvolvimento ágil de aplicações, apoiado sobre o SCRUM e o novo Team Foundation Server “11”, podem ajudar times de desenvolvimento a melhorar seu dia-a-dia de trabalho para entregar software de qualidade a seus clientes.</p>
</blockquote>
<p>A palestra em Sorocaba será no próximo sábado, dia 19/05/2012.</p>
<p>Já em Barra Bonita será no sábado seguinte, dia 26/05/2012.</p>
<p>Espero ver todos lá!</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/uFKF4QGnOMY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/05/desenvolvimento-agil-e-tfs-no-microsoft-techday-em-sorocaba-e-barra-bonita/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/05/desenvolvimento-agil-e-tfs-no-microsoft-techday-em-sorocaba-e-barra-bonita/</feedburner:origLink></item>
		<item>
		<title>Testes de unidade são mais importantes do que testes de integração?</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/E5XjaqSfNEo/</link>
		<comments>http://blog.lambda3.com.br/2012/05/testes-de-unidade-sao-mais-importantes-do-que-testes-de-integrao/#comments</comments>
		<pubDate>Fri, 11 May 2012 22:12:57 +0000</pubDate>
		<dc:creator>Giovanni Bassi</dc:creator>
				<category><![CDATA[Testes]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=3004</guid>
		<description><![CDATA[O Elemar Jr está em dúvida sobre isso e colocou no blog dele um diálogo interessante que teve com o Juan Lopes, onde o Juan defende que testes de unidade são mais importantes, e o Elemar acha o contrário. Leiam &#8230; <a href="http://blog.lambda3.com.br/2012/05/testes-de-unidade-sao-mais-importantes-do-que-testes-de-integrao/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>O Elemar Jr está em dúvida sobre isso e colocou no <a href="http://bit.ly/IJnr6K">blog dele</a> um diálogo interessante que teve com o <a href="http://twitter.com/juanplopes">Juan Lopes</a>, onde o Juan defende que testes de unidade são mais importantes, e o Elemar acha o contrário. Leiam lá pra entender a discussão, e leiam também os comentários.</p>
<p>Em vez de deixar um comentário no blog do Elemar achei melhor colocar o comentário aqui e depois eu volto lá e linko pro comentário, e vocês ganham poder ler a discussão toda. Aproveitem e já leiam o resto do blog também que é muito bom. Vamos lá.</p>
<p>É difícil classificar testes de unidade ou integrado ou aceitação como importante ou menos importante. Depende de qual ponto de vista você observa. É isso que tenho visto que leva alguns a defender um ou outro como mais importante. Basta observar o post e os comentário pra perceber isso.</p>
<p>Por esse motivo, temos que entender exatamente do que estamos falando.</p>
<p>Do ponto de vista de que <strong>um teste é responsável por me dizer quando um sistema quebra</strong>: tanto testes de unidade quanto de integração são capazes de dizer isso, mas de fato, assim como aponta o Juan, os de integração dificilmente vão apontar exatamente o local. Os de unidade são muito mais precisos do que os de integração nesse sentido. Por outro lado, se um teste de unidade quebrar, um de integração também deveria quebrar. Dessa forma, tenho uma informação mais genérica, mas que aponta na direção do negócio, e tenho uma informação mais precisa, que aponta na direção técnica. Qual a mais importante? Depende da sua necessidade. Eu diria que as duas são importantes e depende do que você está fazendo. Não diria que dá pra prescindir de nenhuma das duas.</p>
<p>Mas há uma diferença aí: não necessariamente quando um teste de integração quebrar, um teste de unidade irá quebrar também. O problema pode ser justamente na integração, enquanto as unidades funcionam bem, há um erro em como elas se inter-relacionam. Isso torna os testes de integração mais efetivos pra pegar erros, por serem mais abrangentes: testam as unidades, mas também como se integram.</p>
<p>Do ponto de vista <strong>da facilidade de escrita e produtividade de escrita</strong>: lógicamente testes de unidade são melhores nesse ponto de vista. A questão é: essa característica é mais importante do que as outras? Difícil dizer isso. É verdade que se você focar em escrever testes de ponta a ponta não vai ter tempo de fazer testes de unidade? Não, não é verdade, dado o uso correto das ferramentas disponsíveis esses testes serão mais lentos para serem escritos, mas não vão tomar todo o seu tempo. Por outro lado, o código usado em testes integrados com frequencia pode ser utilizado também para o caso real, servindo de inspiração para a escrita das camadas mais externas.</p>
<p>Quanto ao estilo de trabalhar usando BDD ou ATDD, com outside-in. Eu sei do benefício de trabalhar dessa forma, essa é a forma com que eu trabalho, e praticamente toda a equipe da Lambda3 trabalha. Nós criamos testes de aceitação automatizados utilizando técnicas como o BDD. Esse tipo de teste, que na verdade é uma especificação executável, é importante porque <strong>ajuda a guiar o comportamento do software</strong>. Nem encaro esse tipo de artefato como um teste, ao menos enquanto está sendo usado para descrever um comportamento. Depois, ok, trata-se de um teste de regressão. Mas esse é simplemente um efeito colateral positivo, não é o motivo que me faz trabalhar com BDD. Se o objetivo fosse ter testes de regressão eu poderia escrever testes depois, e eles não guiariam o comportamento.</p>
<p>Nem toda especificação executável escrita ao estilo de BDD será um teste integrado, mas em geral é muito mais comum que os testes escritos com BDD sejam testes integrados que podem ser encarados como testes de aceitação. Essa é a ideia por trás do outside-in, criar uma descrição de como o software se comporta, em termos de negócio, e dificlmente você faz isso com testes de unidade.</p>
<p>Com relação à <strong>fragilidade de testes integrados</strong>, isso é fato, testes que vão de uma ponta a outra do sistema com frequencia quebram por motivos alheios ao comportamento do sistema. Isso obviamente é um problema, que, é importante dizer, pode ser mitigado e diminuido ao ponto em que não chega a ser um problema, na grande maioria dos casos. E isso não quer dizer que testes de unidade são mais importantes, só que são mais resistentes.</p>
<p>…</p>
<p>Assim,&nbsp; gostaria que, em vez de falarmos de importância, falemos de relevância dentro de um contexto. Alguns cenários serão melhores com testes de unidade, outros com testes integrados. Abrir mão de um martelo, só porque você tem uma excelente chave de fenda, me parece um pouco míope. Ambas as ferramentas são igualmente importantes quando necessárias.</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/E5XjaqSfNEo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/05/testes-de-unidade-sao-mais-importantes-do-que-testes-de-integrao/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/05/testes-de-unidade-sao-mais-importantes-do-que-testes-de-integrao/</feedburner:origLink></item>
		<item>
		<title>Como acessar programaticamente as configurações de SMTP do TFS</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/qImR_qy3NPE/</link>
		<comments>http://blog.lambda3.com.br/2012/05/como-acessar-programaticamente-as-configuraes-de-smtp-do-tfs/#comments</comments>
		<pubDate>Fri, 11 May 2012 21:13:37 +0000</pubDate>
		<dc:creator>Igor Abade</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ALM]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Registry]]></category>
		<category><![CDATA[SMTP]]></category>
		<category><![CDATA[TFS2010]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=3000</guid>
		<description><![CDATA[Você está desenvolvendo um plugin server-side para o TFS (como um event handler) que precisa enviar email? Uma estratégia bastante interessante seria usar o mesmo servidor SMTP já configurado para o TFS – dessa forma você não precisa manter essa &#8230; <a href="http://blog.lambda3.com.br/2012/05/como-acessar-programaticamente-as-configuraes-de-smtp-do-tfs/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Você está desenvolvendo um plugin <em>server-side</em> para o TFS (como um <em>event handler</em>) que precisa enviar email?</p>
<p>Uma estratégia bastante interessante seria usar o mesmo servidor SMTP já configurado para o TFS – dessa forma você não precisa manter essa configuração em seu plugin.</p>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/05/SNAGHTML5126b88.png" rel="lightbox"><img title="Clique para ampliar" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Configura&ccedil;&otilde;es de SMTP do TFS - vamos ver como l&ecirc;-las programaticamente?" src="http://blog.lambda3.com.br/wp-content/uploads//2012/05/SNAGHTML5126b88_thumb.png" width="640" height="275"></a></p>
<p>Essa configuração – e muitas outras – está gravada no <a href="http://pascoal.net/2011/11/using-team-foundation-server-registrypart-i-the-concepts" target="_blank">TFS Registry</a>. Para acessá-la, use o exemplo de código abaixo (cortesia do MVP português <a href="https://twitter.com/#!/tspascoal" target="_blank">Tiago Pascoal</a>):</p>
<p>&nbsp;</p>
<pre class="brush: csharp;">internal class EmailSettings
{
    private TfsTeamProjectCollection _tfs;
    private string smtpServer, fromAddress;
    private Nullable<bool> emailEnabled;

    public EmailSettings(TfsTeamProjectCollection tfs)
    {
        tfs = tfs;
    }

    public string GetSMTPServer()
    {
        if (smtpServer != null) return smtpServer;

        return smtpServer = GetValueFromRegistry<string>("/Service/Integration/Settings/SmtpServer");
    }

    public string GetFromAddress()
    {
        if (fromAddress != null) return fromAddress;

        return fromAddress = GetValueFromRegistry<string>("/Service/Integration/Settings/EmailNotificationFromAddress");

    }

    public bool GetEmailEnabled()
    {
        if (emailEnabled.HasValue) return emailEnabled.Value;

        emailEnabled = GetValueFromRegistry<bool>("/Service/Integration/Settings/EmailEnabled");

        return emailEnabled.Value;
    }

    private T GetValueFromRegistry<t>(string key)
    {
        ITeamFoundationRegistry service = tfs.ConfigurationServer.GetService<iteamfoundationregistry>();

        return service.GetValue<t>(key);
    }
}
</pre>
<p>&nbsp;</p>
<p>Um abraço,</p>
<table class="MsoNormalTable" style="border-collapse: collapse; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 0cm 0cm 0cm" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
<td style="border-top: white 1pt solid; border-right: white 1pt solid; border-bottom: white 1pt solid; padding-bottom: 0cm; padding-top: 0cm; padding-left: 5.4pt; border-left: white 1pt solid; padding-right: 5.4pt" valign="top" width="56">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: 13pt" align="center"><a name="_MailAutoSig"><b style="mso-bidi-font-weight: normal"><span style="color: ; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-fareast-language: pt-br; mso-no-proof: yes"><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/05/clip_image0014.png" rel="lightbox"><img title="clip_image001[4]" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="clip_image001[4]" src="http://blog.lambda3.com.br/wp-content/uploads//2012/05/clip_image0014_thumb.png" width="40" height="63"></a></span></b></a><span style="mso-bookmark: _mailautosig"><b><span style="color: ; mso-ascii-font-family: calibri; mso-fareast-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-language: pt-br; mso-no-proof: yes"></span></b></span></p>
</td>
<td style="border-top: white 1pt solid; border-right: white 1pt solid; border-bottom: white 1pt solid; padding-bottom: 0cm; padding-top: 0cm; padding-left: 5.4pt; border-left: medium none; padding-right: 5.4pt" valign="top" width="470">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: 13pt"><span style="mso-bookmark: _mailautosig"><b><span style="color: ; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-fareast-language: pt-br; mso-no-proof: yes"><font color="#1f497d">Igor Abade V. Leite</font></span></b></span><span style="mso-bookmark: _mailautosig"><span style="color: ; mso-ascii-font-family: calibri; mso-fareast-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-language: pt-br; mso-no-proof: yes"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: 13pt"><span style="mso-bookmark: _mailautosig"><span style="color: ; line-height: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-fareast-language: pt-br; mso-no-proof: yes"><font style="font-size: 9pt" color="#1f497d">Microsoft MVP &#8211; Visual Studio ALM<span style="mso-spacerun: yes">&nbsp; </span>- Brasil</font></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: 13pt"><span style="mso-bookmark: _mailautosig"></span><a href="https://mvp.support.microsoft.com/profile/igor.leite"><span style="mso-bookmark: _mailautosig"><span style="color: ; line-height: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-fareast-language: pt-br; mso-no-proof: yes"><font style="font-size: 9pt" color="#0000ff">https://mvp.support.microsoft.com/profile/igor.leite</font></span></span><span style="mso-bookmark: _mailautosig"></span></a><span style="mso-bookmark: _mailautosig"><span style="color: ; line-height: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-fareast-language: pt-br; mso-no-proof: yes"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: 13pt"><span style="mso-bookmark: _mailautosig"><span style="color: ; line-height: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-fareast-language: pt-br; mso-no-proof: yes"><font color="#1f497d"><font style="font-size: 9pt">Twitter: </font></font></span></span><font style="font-size: 9pt"><span style="mso-bookmark: _mailautosig"></span></font><a href="http://twitter.com/igorabade"><span style="mso-bookmark: _mailautosig"><span style="color: ; line-height: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-fareast-language: pt-br; mso-no-proof: yes"><font style="font-size: 9pt" color="#0000ff">@igorabade</font></span></span><span style="mso-bookmark: _mailautosig"></span></a><span style="mso-bookmark: _mailautosig"><span style="color: ; mso-ascii-font-family: calibri; mso-fareast-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-language: pt-br; mso-no-proof: yes"></span></span></p>
</td>
<p><span style="mso-bookmark: _mailautosig"></span></tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="mso-bookmark: _mailautosig"><span style="mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-fareast-language: pt-br; mso-no-proof: yes">&nbsp;</span></span></p>
<p><span style="mso-bookmark: _mailautosig"></span></p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/qImR_qy3NPE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/05/como-acessar-programaticamente-as-configuraes-de-smtp-do-tfs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/05/como-acessar-programaticamente-as-configuraes-de-smtp-do-tfs/</feedburner:origLink></item>
		<item>
		<title>Material Complementar para o HandsOn LAB</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/aGYgBFCtZSI/</link>
		<comments>http://blog.lambda3.com.br/2012/05/material-complementar-para-o-handson-lab/#comments</comments>
		<pubDate>Wed, 02 May 2012 19:08:38 +0000</pubDate>
		<dc:creator>Claudio Leite</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[ALM Rangers]]></category>
		<category><![CDATA[Comunidade]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Testes]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=2992</guid>
		<description><![CDATA[Pessoal, com um pouco de demora, mas conforme prometido, estou escrevendo esse post para destacar alguns materiais complementares do que foi apresentado no HandsON aqui no Rio, porém acredito que isso sirva para todas as outras localidades que tiveram o &#8230; <a href="http://blog.lambda3.com.br/2012/05/material-complementar-para-o-handson-lab/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pessoal, com um pouco de demora, mas conforme prometido, estou escrevendo esse post para destacar alguns materiais complementares do que foi apresentado no HandsON aqui no Rio, porém acredito que isso sirva para todas as outras localidades que tiveram o HandsON.</p>
<p>Vamos lá, começando pelo básico. Para quem não pode copiar a máquina no dia do hands on ou quer uma versão digital do material dado, segue o link onde podem ser encontrados :</p>
<ul>
<li><a href="http://blogs.msdn.com/b/visualstudiobr/archive/2011/11/26/materiais-com-os-principais-recursos-do-visual-studio-2010-em-portugu-234-s-dispon-237-veis.aspx">Laboratórios e Máquina Virutal do Visual Studio ALM 2010</a></li>
<li><a href="http://blogs.msdn.com/b/visualstudiobr/archive/2011/10/10/visual-studio-vnext-alm-laborat-243-rios-dispon-237-veis-em-portugu-234-s-hands-on-labs.aspx">Laboratórios e Máquina Virtual do Visual Studio VNext</a></li>
</ul>
<h1>Perfil&nbsp; &#8211; Time de Desenvolvedores e Arquitetos:</h1>
<ul>
<li>Lab 1 – Introdução ao Source Control:</li>
<ul>
<li><a title="http://msdn.microsoft.com/pt-br/library/ms181368.aspx" href="http://msdn.microsoft.com/pt-br/library/ms181368.aspx">http://msdn.microsoft.com/pt-br/library/ms181368.aspx</a> – Link sobre source control no MSDN</li>
<li><a title="http://social.msdn.microsoft.com/Forums/is/tfsversioncontrol/thread/85602e42-9c99-424c-9ed9-cebe883a847b" href="http://social.msdn.microsoft.com/Forums/is/tfsversioncontrol/thread/85602e42-9c99-424c-9ed9-cebe883a847b">http://social.msdn.microsoft.com/Forums/is/tfsversioncontrol/thread/85602e42-9c99-424c-9ed9-cebe883a847b</a> – Thread no MSDN falando de como conectar versões antigas no TFS 2010.</li>
</ul>
<li>Lab 2 – Branch e Merge com Team Foundation Server 2010</li>
<ul>
<li><a href="http://vsarbranchingguide.codeplex.com/releases">Visual Studio Team Foundation Server Branching and Merging Guide</a> – Esse é um guide escrito pelos Visual Studio ALM Rangers sobre algumas estratégias de Branch e Merge para as versões 2010 e já está disponível a versão beta do Vnext.</li>
</ul>
<li>Lab 3 – Customização de Workflow de Build</li>
<ul>
<li><a href="http://vsarbuildguide.codeplex.com/">Team Foundation Build Customization Guide</a> – Mais um guide dos Visual Studio ALM Rangers só sobre Team Build e como trabalhar com algumas customizações.</li>
</ul>
<li>Lab 4 – Depurando código com Intellitrace</li>
<ul>
<li><a href="http://channel9.msdn.com/search?term=Intellitrace">Videos no Channel 9 sobre Intellitrace</a></li>
</ul>
<li>Lab 5 – Utilizando Code Analysis para Melhoria da Qualidade de Código</li>
<ul>
<li><a href="http://channel9.msdn.com/blogs/wriju/code-analysis-using-visual-studio-2010">Video Channel 9</a></li>
</ul>
<li>Lab 6 – Code Discovery utilizando Architecture Tools</li>
<ul>
<li><a title="Doug Seven- Code Understanding and Systems Design with Visual Studio 2010" href="http://channel9.msdn.com/Shows/VS2010Launch/Doug-Seven-Code-Understanding-and-Systems-Design-with-Visual-Studio-2010">Doug Seven- Code Understanding and Systems Design with Visual Studio 2010</a></li>
<li><a href="http://msdn.microsoft.com/pt-br/vstudio/gg487293.aspx">Entendendo Sistemas Existentes com Visual Studio 2010</a></li>
<li><a href="http://vsararchitectguide.codeplex.com/">Visual Studio Architecture Tooling Guide</a></li>
</ul>
<li>Lab 7 – Entendendo Acoplamento de Classes</li>
<ul>
<li><a href="http://msdn.microsoft.com/pt-br/vstudio/gg487293.aspx">Entendendo Sistemas Existentes com Visual Studio 2010</a></li>
<li><a href="http://vsararchitectguide.codeplex.com/">Visual Studio Architecture Tooling Guide</a></li>
</ul>
<li>Lab 8 – Utilizando o Architecture Explorer </li>
<ul>
<li>Video Channel 9</li>
<li><a href="http://vsararchitectguide.codeplex.com/">Visual Studio Architecture Tooling Guide</a></li>
</ul>
</ul>
<h1>Perfil – Líderes e Coordenadores :</h1>
<ul>
<li>Lab 1 –Planejando Seus projetos com o TFS 2010</li>
<ul>
<li><a href="http://msdn.microsoft.com/pt-br/library/dd286619.aspx">Planejando e acompanhando projetos</a></li>
<li><a title="http://channel9.msdn.com/shows/VS2010Launch/Proactive-Project-Management-with-Visual-Studio-2010/" href="http://channel9.msdn.com/shows/VS2010Launch/Proactive-Project-Management-with-Visual-Studio-2010/">Proactive Project Management with Visual Studio 2010</a></li>
<li><a href="http://channel9.msdn.com/blogs/visualstudio/agile-planning-templates-in-visual-studio-team-system-2010">Agile Planning Templates in Visual Studio Team System 2010</a></li>
</ul>
<li>Lab 2 – Acompanhamento da Qualidade</li>
<ul>
<li><a href="http://msdn.microsoft.com/pt-br/library/dd286718.aspx">Acompanhamento de Bugs, tarefas e outros itens de trabalho</a></li>
</ul>
<li>Lab 3 &#8211; Utilizando Excel e Report Builder para Relatorios Customizados</li>
<ul>
<li><a href="http://blog.lambda3.com.br/2012/05/customizao-de-relatrios-no-tfs-2010/">Customização de relatórios no TFS 2010</a></li>
<li><a title="http://msdn.microsoft.com/library/bb649552.aspx" href="http://msdn.microsoft.com/library/bb649552.aspx">Criação, personalização e gerenciamento de relatórios para ALM de Visual Studio</a></li>
</ul>
</ul>
<h1>Perfil – Time de Qualidade e Testadores :</h1>
<p>Links para o MSDN : <a title="http://msdn.microsoft.com/library/ms182409.aspx" href="http://msdn.microsoft.com/library/ms182409.aspx">Testando o aplicativo</a></p>
<p>Links que abordam o modelo completo : </p>
<ul>
<li><a title="http://blog.lambda3.com.br/2012/01/tudo-o-que-voc-precisa-saber-sobre-testes-no-visual-studio-parte-1/" href="http://blog.lambda3.com.br/2012/01/tudo-o-que-voc-precisa-saber-sobre-testes-no-visual-studio-parte-1/">Tudo o que você precisa saber sobre testes no Visual Studio – Parte 1</a></li>
<li><a title="http://blog.lambda3.com.br/2012/01/tudo-o-que-voc-precisa-saber-sobre-testes-no-visual-studio-parte-2/" href="http://blog.lambda3.com.br/2012/01/tudo-o-que-voc-precisa-saber-sobre-testes-no-visual-studio-parte-2/">Tudo o que você precisa saber sobre testes no Visual Studio – Parte 2</a></li>
<li><a href="http://blog.lambda3.com.br/2012/04/tudo-o-que-voc-precisa-saber-sobre-testes-no-visual-studio-parte-3/">Tudo o que você precisa saber sobre testes no Visual Studio – Parte 3</a>
</li>
<li>Lab 1 -Planejamento de Testes com o Microsoft Test Manager 2010</li>
<ul>
<li><a href="http://msdn.microsoft.com/pt-br/vstudio/hh457671">Introdução e visão geral sobre testes e qualidade na Plataforma Microsoft</a></li>
<li><a href="http://msdn.microsoft.com/pt-br/vstudio/hh457675">Planejamento de testes com Test Manager 2010</a></li>
<li><a href="http://msdn.microsoft.com/pt-br/vstudio/hh457672">Derrubando as barreiras entre testadores e desenvolvedores</a></li>
</ul>
<li>Lab 2 -Gerenciamento de Casos de Testes com o Microsoft Test Manager 2010</li>
<ul>
<li><a href="http://msdn.microsoft.com/pt-br/vstudio/hh457673">Gerenciando grandes volumes de teste em uma mesma solução</a></li>
<li><a href="http://blog.lambda3.com.br/2012/04/tudo-o-que-voc-precisa-saber-sobre-testes-no-visual-studio-parte-3/">Tudo o que você precisa saber sobre testes no Visual Studio – Parte 3</a></li>
</ul>
<li>Lab 3 -Criando e Executando Testes Manuais com o Microsoft Test Manager 2010</li>
<ul>
<li><a href="http://msdn.microsoft.com/pt-br/vstudio/hh563952">Entendendo os testes manuais</a></li>
<li><a href="http://blog.lambda3.com.br/2012/04/tudo-o-que-voc-precisa-saber-sobre-testes-no-visual-studio-parte-3/">Tudo o que você precisa saber sobre testes no Visual Studio – Parte 3</a></li>
</ul>
<li>Lab 4 -Testes Exploratórios com o Microsoft Test Manager 2010</li>
<ul>
<li><a href="http://channel9.msdn.com/Blogs/TheOliver/Visual-Studio-Team-System-2010-Exploratory-Testing">Visual Studio Team System 2010: Exploratory Testing</a></li>
<li><a href="http://channel9.msdn.com/Events/ALM-Summit/2011/Exploratory-Testing">Exploratory Testing</a>&nbsp;</li>
</ul>
<li>Lab 5 -Testes em Diferentes Plataformas com o Microsoft Test Manager 2010</li>
<ul>
<li><a href="http://blog.lambda3.com.br/2012/04/tudo-o-que-voc-precisa-saber-sobre-testes-no-visual-studio-parte-3/">Tudo o que você precisa saber sobre testes no Visual Studio – Parte 3</a></li>
</ul>
<li>Lab 6 -Introdução a Coded UI com o Microsoft Visual Studio Ultimate 2010</li>
<ul>
<li><a href="http://msdn.microsoft.com/pt-br/vstudio/ee957688">Iniciando o uso dos testes de IU codificados</a></li>
<li><a href="http://channel9.msdn.com/Events/TechDays/TechDays-2011-Belgium/TD023">Building Robust, Maintainable Coded UI Tests with Visual Studio 2010</a></li>
</ul>
<li>Lab 7 -Ciclo de Correção de Bugs com o Microsoft Test Manager 2010</li>
<ul>
<li><a href="http://blog.lambda3.com.br/2012/04/tudo-o-que-voc-precisa-saber-sobre-testes-no-visual-studio-parte-3/">Tudo o que você precisa saber sobre testes no Visual Studio – Parte 3</a></li>
</ul>
</ul>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/aGYgBFCtZSI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/05/material-complementar-para-o-handson-lab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/05/material-complementar-para-o-handson-lab/</feedburner:origLink></item>
		<item>
		<title>Customização de relatórios no TFS 2010</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/Grde5_5zLL0/</link>
		<comments>http://blog.lambda3.com.br/2012/05/customizao-de-relatrios-no-tfs-2010/#comments</comments>
		<pubDate>Wed, 02 May 2012 01:13:27 +0000</pubDate>
		<dc:creator>Vinicius Moura</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[TFS]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=2990</guid>
		<description><![CDATA[Pessoal, boa noite, nesse ultimo final de semana tivemos o ALM Summit Brasil 2012. Nesse evento tivemos a oportunidade de compartilhar as experiências de campo e as melhores práticas de utilização do TFS 2010. Tive o imenso prazer e satisfação &#8230; <a href="http://blog.lambda3.com.br/2012/05/customizao-de-relatrios-no-tfs-2010/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pessoal, boa noite, nesse ultimo final de semana tivemos o <a href="http://www.almsummitbrasil.com.br/2012/">ALM Summit Brasil 2012</a>. Nesse evento tivemos a oportunidade de compartilhar as experiências de campo e as melhores práticas de utilização do TFS 2010.
<p>Tive o imenso prazer e satisfação de ser um dos palestrantes. Minha apresentação mostrou como podemos gerar os relatórios em diferentes ferramentas (Excel e Report Builder por exemplo). Apresentei também relatórios para um melhor de controle dos merges entre as branchs complementando todo o conceito apresentado pelo Claudio Leite <a href="http://blog.lambda3.com.br/2012/05/minha-palestra-no-alm-summit-brasil-2012/">ALM Summit 2012 &#8211; Branch</a>.
<p>A minha apresentação está disponibilizada no link abaixo.
<p><a href="http://www.slideshare.net/ViniciusMoura4/alm-summit-2012-12764405">ALM Summit 2010 &#8211; Reports</a>
<p>Agradecemos a presença de todos e esperamos ter contribuido no aprendizado do TFS 2010.
<p>Abraços,
<p>Vinicius Moura.</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/Grde5_5zLL0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/05/customizao-de-relatrios-no-tfs-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/05/customizao-de-relatrios-no-tfs-2010/</feedburner:origLink></item>
		<item>
		<title>Minha Palestra no ALM Summit  Brasil 2012</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/yA-3jL5Gqrw/</link>
		<comments>http://blog.lambda3.com.br/2012/05/minha-palestra-no-alm-summit-brasil-2012/#comments</comments>
		<pubDate>Tue, 01 May 2012 20:53:00 +0000</pubDate>
		<dc:creator>Claudio Leite</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[ALM Rangers]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Source Control]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=2987</guid>
		<description><![CDATA[Boa tarde pessoal, primeiro gostaria de agradecer à todos pela presença no evento e na minha palestra! Estou aqui através desse post publicando a minha palestra (que pode ser baixada aqui) e gostaria de complementar alguns tópicos que infelizmente não &#8230; <a href="http://blog.lambda3.com.br/2012/05/minha-palestra-no-alm-summit-brasil-2012/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Boa tarde pessoal, primeiro gostaria de agradecer à todos pela presença no evento e na minha palestra! Estou aqui através desse post publicando a minha palestra (que pode ser baixada <a href="https://skydrive.live.com/view.aspx?cid=97640379FE13BFDA&amp;resid=97640379FE13BFDA%21220">aqui</a>) e gostaria de complementar alguns tópicos que infelizmente não deu tempo de compartilhar com vocês, por isso vamos ao que interessa!</p>
<p>Primeiro é onde vocês podem baixar&nbsp; o Branch Guide dos ALM Rangers.</p>
<p>Nesse link ( <a href="http://msdn.microsoft.com/en-us/vstudio/ee358787">Projetos dos ALM Rangers</a> ), você pode encontrar todos os projetos que estão sendo desenvolvidos pela equipe, vale a pena dar uma olhada em tudo que estamos trabalhando e qualquer proposta nova ou problema encontrado não deixe de nos comunicar!</p>
<p>Mas especificamente sobre a minha palestra, segue o endereço do <a href="http://vsarbranchingguide.codeplex.com/">Visual Studio Team Foundation Server Branching and Merging Guide</a> .</p>
<p>Outros pontos que não deram tempo de passar na palestra:</p>
<h1>Melhores Práticas</h1>
<p>• Usar nomes significativos para o Branch – Sempre que possível utilize nomes que realmente tenham algum siginifcado para o seu projeto. Isso parece um detalhe bobo, mas imagine a situação onde você está utilizando a estratégia por feature, e começa utilizando nomes não tão significantes. Com o andar do projeto, esse número de branches pode ficar alto e sem nomes significativos, pode começar a gerar problemas para a sua equipe, impossibilitando que ela saiba qual feature eles tem que trabalhar no momento.
<p>• Sempre prefira Branch ao invés de code-freezen – Code-freezen é um dos &#8221; porquês “ que queremos evitar. Então sempre que surgir uma situação onde a sua equipe de desenvolvimento tiver que ficar parada para que testes, deploys ou qualquer outra coisa que não seja desenvolver novos códigos, acertar bugs identificados em versões anteriores, pense em criar um branch. Isso já gera um valor para esse branch justificando a sua criação.
<p>• Integre sempre que possível – Integrar sempre que possível tem que ser um mantra! deixar para fazer tudo na última hora, trazer as modificações geradas na main para o seu branch de trabalho apenas no final, pode gerar um tempo muito maior de resolução de conflitos e com isso impactar diretamente no seu prazo de entrega. Por isso, integre sempre, pelo menos 1 vez por semana, mais do que isso, você e sua equipe já estarão correndo riscos.
<p>• Resolva conflitos no “Soft” branch – O Soft branch é onde você está desenvolvendo no momento, é o seu branch de desenvolvimento. Sempre resolva os comflitos nesse branch e nunca no que é considerado o mais estável, como o Main por exemplo. Isso que dizer que você antes de publicar alguma nova feature para a Main, baixa a versão do Main para a seu Branch de desenvolvimento resolva todos os conflitos e aí sim, faça a entrega para o Main.
<p>• Evitar branches em cascatas – Tente evitar ao máximo o cascateamento nos branches, pois isso torna muito mais complicada a sua integração e trás um tempo muito maior para a liberação do seu código. Como vimos no início da palestra, isso vai impactar diretamente no custo de manutenção do branch, o que pode não trazer o valor esperado para o branch exigindo que a sua estratégia tenha que ser completamente revista.
<p>• Isole a mudança – Isolar a mudança e não a equipe. Nós temos que isolar apenas&nbsp; o que queremos modificar no nosso sistema sem impactar os outros membros do time e nunca isolar um grupo ou uma pessoa. Todos tem que saber o que está acontecendo no sistema e porque algum branch foi criado. Caso você comece a isolar as pessoas, você começará a criar silos na sua equipe o que trará muitos problemas para o seu projeto. TOME MUITO CUIDADO!
<p>• Evitar Baseless Merge&nbsp; &#8211; Como vimos, as vezes o Baseless Merge é necessário (Estratégia de Branch por Release com Mainline), mas tome cuidado com essa técnica, pois ela acaba abrindo caminhos novos caminhos para a release do seu sistema que podem forçar o seu código a não passar por áreas críticas e ser lançada uma versão sem todas as funcionalidades ou bugs que já foram corrigidos.<br />
<h1>Anti-Padrões</h1>
<p>• Merge Paranoia – Medo de realizar o merge entre dois branches. Se isso está acontecendo com o seu projeto, com certeza sua estratégia de branch não é a mais adequada para o seu problema. Pare agora e revise sua estratégia. Esse medo de realizar merges entre branches não pode existir.
<p>• Merge Mania – Ao contrário da primeira, realizar merge todo o tempo também não é uma coisa boa. Esse item também sugere que a estratégia selecionada não está sendo a mais eficaz nesse momento para o seu projeto. Para um tempo e revise o seu modelo.
<p>• Big Bang Merge – Deixar para fazer o merge apenas na última hora, na hora de realizar a liberação do código para Release. NUNCA FAÇA ISSO!
<p>• Branch Mania – Um dos pontos para que um branch seja criado é descobrir qual o valor que ele trará para o projeto. Se ele não trouxer valor ou tiver alguma outra técnica que possa ser empregada no lugar, então não crie o branch! Cada branch que você criar, é mais uma complexidade que você está trazendo para a gestão do seu sistema. Por tanto, sair criando branches sem um bom motivo também é um problema.
<p>• Branches Temporarios – Nunca crie branches para executar algum teste ou fazer pequenas alterações temporárias! Isso não trás valor para o seu projeto! para realizar esse tipo de tarefa, prefira usar shelve, com certeza ele vai resolver o seu problema e não trará complexidade desnecessária para o seu gerenciamento.<br />
<h1>Escolhendo a sua estratégia </h1>
<p>Esse não é um modelo único, porém é um ponto de partida para que você escolha qual estratégia de branch deve ser utilizada no seu projeto.</p>
<p>&nbsp;</p>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/05/image.png" rel="lightbox"><img style="border-bottom: 0px;border-left: 0px;padding-left: 0px;padding-right: 0px;border-top: 0px;border-right: 0px;padding-top: 0px" border="0" alt="image" src="http://blog.lambda3.com.br/wp-content/uploads//2012/05/image_thumb.png" width="569" height="218"></a></p>
<p>Utilize isso como um ponto de partida, mas adicione mais alguns pontos de validação para a sua decisão. Uma delas é, qual caminho que eu teria que percorrer para fazer a liberação do meu código ? Existe alguma compliance que eu devo seguir na minha empresa ? As vezes, como vimos na DEMO, teremos que utilizar mais de uma estratégia para atingir os objetivos que aquele projeto necessita.</p>
<p>Tenha em mente que cada projeto pode ter uma estratégia de branch diferente. Então sugiro que você tenha pelo menos 3 modelos padrões na sua empresa para projetos pequenos, projetos médios e um para projetos grandes ou críticos. Mas na hora de definir, faça uma simulação para validar se aquela estratégia não vai lhe trazer complexidade desnecessária.</p>
<p>Espero que tenham gostado da palestra e em caso de dúvidas, deixem seus comentários ou enviem por twitter ou e-mail.</p>
<p>Até a próxima!</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/yA-3jL5Gqrw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/05/minha-palestra-no-alm-summit-brasil-2012/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/05/minha-palestra-no-alm-summit-brasil-2012/</feedburner:origLink></item>
		<item>
		<title>Customização de Políticas de Check-in e de Geradores de Dados no ALM Summit Brasil 2012</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/NA1zpMeEIMI/</link>
		<comments>http://blog.lambda3.com.br/2012/04/customizao-de-polticas-de-check-in-e-de-geradores-de-dados-no-alm-summit-brasil-2012/#comments</comments>
		<pubDate>Sat, 28 Apr 2012 20:08:38 +0000</pubDate>
		<dc:creator>Igor Abade</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ALM]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[ALM Summit]]></category>
		<category><![CDATA[Checkin Policy]]></category>
		<category><![CDATA[Customization]]></category>
		<category><![CDATA[Data Generation]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[DataDude]]></category>
		<category><![CDATA[DbPro]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[VS2010]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=2977</guid>
		<description><![CDATA[Hoje no ALM Summit Brasil foi dia de compartilhar a experiência de campo dos consultores que trabalham com TFS. Minha participação foi mostrar como criar Políticas de Check-in e Geradores de Dados personalizados. Baixe agora a apresentação. O código-fonte vai &#8230; <a href="http://blog.lambda3.com.br/2012/04/customizao-de-polticas-de-check-in-e-de-geradores-de-dados-no-alm-summit-brasil-2012/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/04/AlmSummit_D2.jpg" rel="lightbox"><img style="background-image: none; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Clique para ampliar" src="http://blog.lambda3.com.br/wp-content/uploads//2012/04/AlmSummit_D2_thumb.jpg" alt="Palestra no segundo dia do ALM Summit Brasil" width="244" height="184" align="right" border="0" /></a>Hoje no <a href="http://www.almsummitbrasil.com.br/almsummitbrasil/2012/Default.aspx" target="_blank">ALM Summit Brasil</a> foi dia de compartilhar a experiência de campo dos consultores que trabalham com TFS.</p>
<p>Minha participação foi mostrar como criar Políticas de Check-in e Geradores de Dados personalizados.</p>
<p>Baixe agora a apresentação. O código-fonte vai ser postado na sequência; atualizo o post com o link para download do código dos exemplos.</p>
<div id="__ss_12729574" style="width: 425px;"><strong style="margin: 12px 0px 4px; display: block;"><a title="Customização de Políticas de Check-in e de Geradores de Dados" href="http://www.slideshare.net/igoravl/customizao-de-polticas-de-checkin-e-de-geradores-de-dados">Customização de Políticas de Check-in e de Geradores de Dados</a></strong><object id="__sse12729574" width="425" height="355" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="wmode" value="transparent" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=customizaodepolticasdecheck-inedegeradoresdedados-120428142110-phpapp01&amp;stripped_title=customizao-de-polticas-de-checkin-e-de-geradores-de-dados&amp;userName=igoravl" /><param name="allowscriptaccess" value="always" /><param name="allowfullscreen" value="true" /><embed id="__sse12729574" width="425" height="355" type="application/x-shockwave-flash" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=customizaodepolticasdecheck-inedegeradoresdedados-120428142110-phpapp01&amp;stripped_title=customizao-de-polticas-de-checkin-e-de-geradores-de-dados&amp;userName=igoravl" allowFullScreen="true" allowScriptAccess="always" wmode="transparent" allowscriptaccess="always" allowfullscreen="true" /></object></p>
<div style="padding-bottom: 12px; padding-top: 5px; padding-left: 0px; padding-right: 0px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/igoravl">Igor Abade</a>.</div>
</div>
<p>Mais uma vez, obrigado a todos que vieram ao ALM Summit Brasil!</p>
<p>&nbsp;</p>
<p>Um abraço,<br />
    Igor</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/NA1zpMeEIMI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/04/customizao-de-polticas-de-check-in-e-de-geradores-de-dados-no-alm-summit-brasil-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/04/customizao-de-polticas-de-check-in-e-de-geradores-de-dados-no-alm-summit-brasil-2012/</feedburner:origLink></item>
		<item>
		<title>O Futuro do Data Dude no ALM Summit Brasil 2012</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/D_wtlk7OoZ0/</link>
		<comments>http://blog.lambda3.com.br/2012/04/o-futuro-do-data-dude-no-alm-summit-brasil-2012/#comments</comments>
		<pubDate>Sat, 28 Apr 2012 19:20:30 +0000</pubDate>
		<dc:creator>Igor Abade</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[Bancos de Dados]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[ALM Summit]]></category>
		<category><![CDATA[DataDude]]></category>
		<category><![CDATA[DbPro]]></category>
		<category><![CDATA[SQL Server Data Tools]]></category>
		<category><![CDATA[SSDT]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[VS2010]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=2973</guid>
		<description><![CDATA[Ontem tive a oportunidade e o prazer de apresentar o SQL Server Data Tools ao pessoal que veio ao ALM Summit Brasil 2012. Foi muito legal falar mais uma vez sobre uma das ferramentas mais bacanas – e mais desconhecidas &#8230; <a href="http://blog.lambda3.com.br/2012/04/o-futuro-do-data-dude-no-alm-summit-brasil-2012/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/04/AlmSummit_D1.jpg" rel="lightbox"><img style="background-image: none; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Clique para ampliar" src="http://blog.lambda3.com.br/wp-content/uploads//2012/04/AlmSummit_D1_thumb.jpg" alt="Palestra no primeiro dia do ALM Summit Brasil" width="244" height="184" align="right" border="0" /></a>Ontem tive a oportunidade e o prazer de apresentar o SQL Server Data Tools ao pessoal que veio ao <a href="http://www.almsummitbrasil.com.br/almsummitbrasil/2012/Default.aspx" target="_blank">ALM Summit Brasil 2012</a>.</p>
<p>Foi muito legal falar mais uma vez sobre uma das ferramentas mais bacanas – e mais desconhecidas – do Visual Studio: os projetos de bancos de dados, que foram introduzidos com o VSTS for Database Professionals.</p>
<p>Como combinado, a apresentação que usei na palestra já está disponível para download:</p>
<div id="__ss_12729487" style="width: 425px;"><strong style="margin: 12px 0px 4px; display: block;"><a title="O Futuro do Data Dude (VS DBPro)" href="http://www.slideshare.net/igoravl/o-futuro-do-data-dude-vs-dbpro">O Futuro do Data Dude (VS DBPro)</a></strong><object id="__sse12729487" width="425" height="355" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="wmode" value="transparent" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ofuturododatadudevsdbpro-120428141226-phpapp02&amp;stripped_title=o-futuro-do-data-dude-vs-dbpro&amp;userName=igoravl" /><param name="allowscriptaccess" value="always" /><param name="allowfullscreen" value="true" /><embed id="__sse12729487" width="425" height="355" type="application/x-shockwave-flash" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ofuturododatadudevsdbpro-120428141226-phpapp02&amp;stripped_title=o-futuro-do-data-dude-vs-dbpro&amp;userName=igoravl" allowFullScreen="true" allowScriptAccess="always" wmode="transparent" allowscriptaccess="always" allowfullscreen="true" /></object></p>
<div style="padding-bottom: 12px; padding-top: 5px; padding-left: 0px; padding-right: 0px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/igoravl">Igor Abade</a>.</div>
</div>
<p>Espero que todos tenham curtido a palestra. E para quem não teve oportunidade de participar, fique ligado na <a href="http://www.youtube.com/user/Lambda3TV" target="_blank">Lambda3 TV</a> – logo teremos vídeos sobre o “DataDude” e o novo SQL Server Data Tools!</p>
<p>&nbsp;</p>
<p>Um abraço,<br />
    Igor</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/D_wtlk7OoZ0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/04/o-futuro-do-data-dude-no-alm-summit-brasil-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/04/o-futuro-do-data-dude-no-alm-summit-brasil-2012/</feedburner:origLink></item>
		<item>
		<title>Portable Class Library – a versão .NET do “Write Once, Run Anywhere”?</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/rPfHiHmIG4U/</link>
		<comments>http://blog.lambda3.com.br/2012/04/portable-class-library-a-verso-net-do-write-once-run-anywhere/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 05:43:42 +0000</pubDate>
		<dc:creator>Igor Abade</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[.Net Framework]]></category>
		<category><![CDATA[CLR]]></category>
		<category><![CDATA[Portable Class Library]]></category>
		<category><![CDATA[VS11]]></category>
		<category><![CDATA[VS2010]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=2964</guid>
		<description><![CDATA[Você sabia que com Portable Class Libraries é possível rodar o mesmo binário em diferentes CLRs? Bom, mas antes disso: Você sabia que há mais de uma CLR? Aliás, o que é CLR mesmo? Common Language Runtime é a parte &#8230; <a href="http://blog.lambda3.com.br/2012/04/portable-class-library-a-verso-net-do-write-once-run-anywhere/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/04/image.png" rel="lightbox"><img style="background-image: none; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Clique para ampliar" src="http://blog.lambda3.com.br/wp-content/uploads//2012/04/image_thumb.png" alt="Esquema geral da Common Language Runtime" width="240" height="166" align="right" border="0" /></a>Você sabia que com Portable Class Libraries é possível rodar o mesmo binário em diferentes CLRs?</p>
<p>Bom, mas antes disso: Você sabia que há mais de uma CLR? Aliás, o que é CLR mesmo? <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="http://blog.lambda3.com.br/wp-content/uploads//2012/04/wlEmoticon-smile1.png" alt="Smile" /></p>
<p><a href="http://msdn.microsoft.com/en-us/library/8bs2ecf4.aspx" target="_blank">Common Language Runtime</a> é a parte do .NET Framework onde seu código é executado. Os diversos serviços essenciais para uma aplicação .NET, tais como o compilador JIT e os gerenciadores de código e memória, são parte da CLR. Mal comparando, a CLR equivale à máquina virtual (JVM) do Java.</p>
<p>Originalmente a Microsoft criou uma única máquina virtual / CLR, que vem evoluindo desde o .NET 1.0. Essa CLR presente no .NET é a versão de referência, baseada na especificação ECMA/ISO da <a href="http://en.wikipedia.org/wiki/Common_Language_Infrastructure" target="_blank">Common Language Infrastructure</a>.</p>
<p>Entretanto, quando surgiu a necessidade de rodar código .NET em outros ambientes – tais como num smartphone ou mesmo num browser – percebeu-se que a enorme quantidade de recursos da CLR havia, de certa forma, se tornado um problema. A CLR era maior do que seria possível hospedar nesses ambientes restritos. Foi aí que começaram a surgir novas CLRs:</p>
<ul>
<li>Silverlight (browser);</li>
<li>Silverlight (Windows Phone 7);</li>
<li>.NET Compact Framework;</li>
<li>.NET Micro Framework;</li>
<li>Xbox etc.</li>
</ul>
<p>Todas essas CLRs têm pontos em comum, o que significa que era possível escrever código “compartilhável” – ou seja, um mesmo código-fonte podia ser reaproveitado em diferentes projetos (exemplo comum: WPF, Silverlight Browser e Silverlight WP7). Ou seja, havia a <strong>compatibilidade de código</strong>, mas não a <strong>compatibilidade binária</strong> para que assemblies produzidos pelo Visual Studio pudessem ser diretamente referenciados por diferentes plataformas.</p>
<p>É aqui que voltamos ao assunto deste post. Com as <strong>Portable Class Libraries</strong> é possível criar assemblies que podem ser diretamente compartilhados entre diferentes plataformas/CLRs. Finalmente a tão conveniente compatibilidade binária!</p>
<h1>O que muda?</h1>
<p>Quando você usa Portable Class Libraries, o Visual Studio garante que o código que você está escrevendo – e o binário resultante – serão compatíveis com todas as plataformas que você selecionar. A consequência natural disso é que você sempre estará nivelando pela plataforma com <strong>menos</strong> recursos.</p>
<p>Todos os outros benefícios oferecidos pelo Visual Studio – testes de unidade, Intellisense, Intellitrace e outros – continuam funcionando exatamente da mesma forma com que estamos acostumados.</p>
<h1>Como usar?</h1>
<p>Portable Class Library é um novo modelo de projeto disponível no Visual Studio “11”. Basta usar esse novo modelo de projeto no lugar do antigo Class Library:</p>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/04/SNAGHTML1ff6d81d.png" rel="lightbox"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Clique para ampliar" src="http://blog.lambda3.com.br/wp-content/uploads//2012/04/SNAGHTML1ff6d81d_thumb.png" alt="Criando um novo projeto Portable Class Library no VS11" width="644" height="447" border="0" /></a></p>
<p>Se você ainda estiver usando o Visual Studio 2010, pode <a href="http://visualstudiogallery.msdn.microsoft.com/b0e0b5e9-e138-410b-ad10-00cb3caf4981?SRC=VSIDE" target="_blank">baixar o modelo de projeto</a> a partir da Visual Studio Gallery:</p>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/04/SNAGHTML1ffa4560.png" rel="lightbox"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Clique para ampliar" src="http://blog.lambda3.com.br/wp-content/uploads//2012/04/SNAGHTML1ffa4560_thumb.png" alt="Extensão &quot;Portable Library Tools&quot; para criar Portable Class Libraries no VS2010" width="644" height="448" border="0" /></a></p>
<p>Depois disso é só criar seu projeto no Visual Studio 2010!</p>
<p>&nbsp;</p>
<p>Um abraço,<br />
    Igor</p>
<p>&nbsp;</p>
<p><em>Para saber mais:</em></p>
<ul>
<li><em>Portable Class Libraries (VS2010): </em><a title="http://msdn.microsoft.com/en-us/library/gg597391.aspx" href="http://msdn.microsoft.com/en-us/library/gg597391.aspx"><em>http://msdn.microsoft.com/en-us/library/gg597391.aspx</em></a></li>
<li><em>Portable Class Libraries (VS11): </em><a title="http://msdn.microsoft.com/en-us/library/gg597391(v=vs.110).aspx" href="http://msdn.microsoft.com/en-us/library/gg597391(v=vs.110).aspx"><em>http://msdn.microsoft.com/en-us/library/gg597391(v=vs.110).aspx</em></a></li>
<li><em>API Differences in Portable Class Library: </em><a title="http://technet.microsoft.com/en-us/query/gg597392" href="http://technet.microsoft.com/en-us/query/gg597392"><em>http://technet.microsoft.com/en-us/query/gg597392</em></a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/rPfHiHmIG4U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/04/portable-class-library-a-verso-net-do-write-once-run-anywhere/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/04/portable-class-library-a-verso-net-do-write-once-run-anywhere/</feedburner:origLink></item>
		<item>
		<title>Orgulhosos patrocinadores do DNAD12</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/uS_lPZ_TVMY/</link>
		<comments>http://blog.lambda3.com.br/2012/04/orgulhosos-patrocinadores-do-dnad12/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 04:19:47 +0000</pubDate>
		<dc:creator>Giovanni Bassi</dc:creator>
				<category><![CDATA[Comunidade]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[comunidade]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[patrocinio]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=2954</guid>
		<description><![CDATA[A Lambda3 acaba de se confirmar como uma das patrocinadoras do .NET Architects Days 2012, que acontecerá dias 1 e 2 de Junho em São Paulo. Discutimos internamente e apoiar um evento que tem tanta ligação conosco e uma comunidade &#8230; <a href="http://blog.lambda3.com.br/2012/04/orgulhosos-patrocinadores-do-dnad12/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blog.lambda3.com.br/wp-content/uploads//2012/04/dnad12_banner_728x90.gif"></p>
<p>A Lambda3 <a href="http://dnad.dotnetarchitects.net/dnad/2012/2012/04/09/conheca-nossos-patrocinadores-lambda3/" target="_blank">acaba de se confirmar</a> como uma das patrocinadoras do .NET Architects Days 2012, que acontecerá dias 1 e 2 de Junho em São Paulo. Discutimos internamente e apoiar um evento que tem tanta ligação conosco e uma comunidade igualmente próxima faz todo o sentido, e daí o patrocínio. </p>
<p>O .NET Architects <a href="http://blog.lambda3.com.br/2008/10/grupo-de-estudos-de-arquitetura-de-software/" target="_blank">nasceu de um post neste blog</a> (quando ainda era o .NET Unplugged), e começou a tomar corpo quando o <a href="http://twitter.com/vcavalcante" target="_blank">Victor Cavalcante</a> conversou comigo no TechEd uns anos atrás. Hoje, estamos os 2 organizando o evento, e também palestraremos. É muito importante para nós dois estar lá.</p>
<p>Ainda não sabemos exatamente o que faremos com o nosso espaço no evento. Teremos 9 metros quadrados pra puxar uma interação interessante com a comunidade. Entre as ideias estão dojos, open spaces, ou coisas do tipo. Ainda vamos definir.</p>
<p>Vemos vocês lá.</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/uS_lPZ_TVMY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/04/orgulhosos-patrocinadores-do-dnad12/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/04/orgulhosos-patrocinadores-do-dnad12/</feedburner:origLink></item>
		<item>
		<title>Umwelt</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/4lUY9gi27yE/</link>
		<comments>http://blog.lambda3.com.br/2012/04/umwelt/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 03:58:23 +0000</pubDate>
		<dc:creator>Giovanni Bassi</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Carreira]]></category>
		<category><![CDATA[Agilidade]]></category>
		<category><![CDATA[democracia organizacional]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=2952</guid>
		<description><![CDATA[Dia primeiro de Abril, dia da mentira, ou April’s fool em inglês (dia do tolo), o XKCD publicou uma excelente tirinha. Vá lá ver, eu espero: http://bit.ly/xkcdumwelt Se você não conhecia o XKCD, faça duas coisas: primeiro, volte no post &#8230; <a href="http://blog.lambda3.com.br/2012/04/umwelt/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dia primeiro de Abril, dia da mentira, ou April’s fool em inglês (dia do tolo), o XKCD publicou uma excelente tirinha. Vá lá ver, eu espero: <a href="http://bit.ly/xkcdumwelt">http://bit.ly/xkcdumwelt</a></p>
<p>Se você não conhecia o XKCD, faça duas coisas: primeiro, volte no post e pare o mouse sobre a imagem e leia o texto alternativo. Oi leia aqui, ele diz isso:</p>
<blockquote><p>“Umwelt is the idea that because their senses pick up on different things, different animals in the same ecosystem actually live in very different worlds. Everything about you shapes the world you inhabit&#8211;from your ideology to your glasses prescription to your web browser”</p>
</blockquote>
<p>Ou em português:</p>
<blockquote><p>“Umwelt é a idéia de que porque seus sentidos notam coisas diferentes, animais diferentes no mesmo ecossistema na verdade vivem em mundos muito diferentes. Todas suas características moldam o mundo em que você habita – da sua ideologia, passando por sua receita de óculos ao seu navegador”</p>
</blockquote>
<p>Toda tirinha do XKCD só termina quando você lê o alt text. </p>
<p>Segundo: volte ao XKCD e assine o RSS ou anote nos seus favoritos. É a melhor tira geek da atualidade, muito a frente do segundo lugar.</p>
<p>Mas não era isso que eu queria falar. O que eu queria falar é sobre umwelt, ou a ideia de que suas características e opções decorrentes de quem você é mudam o mundo em que você vive. Voltávamos, agora a pouco, <a href="http://twitter.com/victorhg" target="_blank">Victor Hugo Germano</a> e eu da nossa sessão de escalada. Vínhamos de bicicleta e era a primeira vez que fazíamos isso. Tínhamos já ido da Lambda3, que fica na Frei Caneca com a Paulista, até a academia <a href="http://90graus.com.br/" target="_blank">90 Graus</a>, que fica atrás do Aeroporto de Congonhas e agora voltávamos. Foram 12 kms e vocês podem ver o trecho <a href="http://runkeeper.com/user/giovannibassi/activity/80616195" target="_blank">no Runkeeper</a>. O Victor, que já morou em Floripa, Irlanda e outros lugares, comentou comigo que se sente muito feliz de poder escalar e pedalar, e que isso torna a vida dele completamente diferente do que seria se ele não estivesse fazendo isso. Eu acrescentei que minha vida estava também muito diferente nos últimos anos, com esse lance todo de deixar de ser sedentário, agora escalando, pedalando, e com a Lambda3 e tudo o que tem acontecido.</p>
<p>Foi então que me lembrei da tirinha do XKCD. Essa tira é especial. Ela é diferente em diversos lugares do mundo, em cada canto aparece uma tira diferente. Se você abrir ela com outros navegadores vai ver tiras diferentes. Se abrir com tamanhos de janela diferentes, pode ser que a tira altere. Se mora em outro continente, é outra tira completamente diferente, algumas muito específicas para o país em que a pessoa está vendo a tira (vejam as diversas tirar catalogadas por diversos contribuidores <a href="http://www.explainxkcd.com/2012/04/03/umwelt-follow-up/" target="_blank">aqui</a>). Ao lembrar da tira, notei que minha vida seria de fato muito diferente se eu não tivesse arriscado e seguido como consultor independente, porque não teria tido tempo pra me dedicar e me tornar um profissional melhor, e me envolver mais com a comunidade. O que depois levaria à abertura da Lambda3. E à vida que tenho hoje. Uma coisa puxa a outra. É interessante como pequenas mudanças na direção correta podem fazer toda a diferença, e é igualmente interessante como é difícil ter certeza se a direção é correta. E por isso temos que nos adaptar e corrigir quando erramos.</p>
<p>Da mesma forma como diz o texto, duas pessoas que trabalhem uma do lado da outra, ou no mesmo prédio mas em andares diferentes, ou vizinhas uma da outra, podem viver vidas completamente diferentes, quase opostas.</p>
<p>Isso joga sobre nós um senso de responsabilidade sobre nossa felicidade, nosso status atual e nosso status futuro. Sou eu que me coloco no mundo em que vivo, eu sou o principal responsável sobre como o vejo e para onde ele vai. E posso mudar tudo para ir para outro lado se não estou satisfeito. Eu, especificamente, posso dizer isso, porque eu já fiz isso. E trabalho ensinando empresas e pessoas a fazerem isso, e já vi isso acontecer diversas vezes. Estou inclusive envolvido em projetos de mudança atualmente.</p>
<p>Talvez isso explique porque vejo tanto criticismo e descrença. Vejo muita gente falando que democracia organizacional nunca funcionaria, que agilidade é uma utopia, que orientação a objetos é coisa acadêmica. Eu acredito que no mundo em que essas pessoas vivem isso é tudo verdade. Só que no meu não é. No meu mundo, democracia organizacional e agilidade me tornam melhor que meu concorrente que não segue nos mesmos princípios. No meu mundo, OO é realidade e ajuda a modelar sistemas complexos de verdade.</p>
<p>Fico feliz de muitas vezes ajudar a ampliar a visão de mundo de quem posso. Esse blog, os podcasts, eventos, e toda minha ação na comunidade, são formas de fazer isso. Espero que estejam ajudando.</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/4lUY9gi27yE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/04/umwelt/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/04/umwelt/</feedburner:origLink></item>
		<item>
		<title>Como configurar a Host Key do VirtualBox para usar “Right ALT”</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/LKirEQXDbeM/</link>
		<comments>http://blog.lambda3.com.br/2012/04/como-configurar-a-host-key-do-virtualbox-para-usar-right-alt/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 02:21:50 +0000</pubDate>
		<dc:creator>Igor Abade</dc:creator>
				<category><![CDATA[Outros]]></category>
		<category><![CDATA[Host Key]]></category>
		<category><![CDATA[VBoxManage]]></category>
		<category><![CDATA[Virtual Machine]]></category>
		<category><![CDATA[VirtualBox]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=2941</guid>
		<description><![CDATA[Mais um post sobre VirtualBox. Inevitável, já que uso VMs no dia-a-dia, seja para programar (ou “codar”, como gosta de falar o Giovanni Bassi) ou para demonstrações para clientes… Agora é sobre a configuração da Host Key. Gosto de usar &#8230; <a href="http://blog.lambda3.com.br/2012/04/como-configurar-a-host-key-do-virtualbox-para-usar-right-alt/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img style="float: right; margin: 0px 0px 0px 10px; display: inline" align="right" src="http://www.buteco.com.br/wp-content/uploads/2009/04/ctrl-alt-del-pillowsjpg.jpeg" width="240" height="177">Mais um post sobre VirtualBox. Inevitável, já que uso VMs no dia-a-dia, seja para programar (ou “codar”, como gosta de falar o Giovanni Bassi) ou para demonstrações para clientes…</p>
<p>Agora é sobre a configuração da <strong>Host Key</strong>. Gosto de usar a tecla “Right Alt” (também conhecida como “Alt Gr”) já que, além de estar à mão ela também não serve para nada <img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="http://blog.lambda3.com.br/wp-content/uploads//2012/04/wlEmoticon-smile.png">. Essa configuração, aliás, é a padrão do VirtualPC (que usei por muito tempo) e talvez por isso tenha sobrado alguma <a href="http://en.wikipedia.org/wiki/Muscle_memory" target="_blank">memória muscular</a>.</p>
<p>Teoricamente isso seria algo muito simples de resolver: Na tela inicial no VirtualBox bastaria ir em File | Preferences | Input, clicar na caixa de texto Host Key e então pressionar a tecla Alt da direita. Mas este é o resultado:</p>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/04/SNAGHTMLbc094bd.png" rel="lightbox"><img title="Clique para ampliar" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Caixa de di&aacute;logo de Prefer&ecirc;ncias do VirtualBox detecta Ctrl+RightAlt ao inv&eacute;s de RightAlt" src="http://blog.lambda3.com.br/wp-content/uploads//2012/04/SNAGHTMLbc094bd_thumb.png" width="244" height="227"></a></p>
<p>Se não dá para configurar do jeito fácil, vamos ao jeito difícil!</p>
<table style="background-color: cornsilk" cellspacing="0" cellpadding="2" width="665">
<tbody>
<tr>
<td style="text-align: center" valign="top" width="117"><img title="" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Works on my machine" src="http://blog.lambda3.com.br/wp-content/uploads//2012/04/SNAGHTMLbcb4e7a1.png" width="96" height="92"></td>
<td width="546"><font size="4"><strong>AVISO</strong>: Execute o comando abaixo por sua conta e risco! Não me responsabilizo por quaisquer problemas que isso possa causar no seu computador, nas suas máquinas virtuais ou até mesmo no seu forno de microondas, na sua tevê ou na sua samambaia! <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Open-mouthed smile" src="http://blog.lambda3.com.br/wp-content/uploads//2012/04/wlEmoticon-openmouthedsmile.png"></font></td>
</tr>
</tbody>
</table>
<p>Abra um prompt elevado, vá ao diretório de instalação do VirtualBox (que por padrão é %PROGRAMFILES%\Oracle\VirtualBox) e execute o comando:</p>
<pre>VBoxManage setextradata global GUI/Input/HostKeyCombination 65514</pre>
<p>Onde 65514 é o código Python para RightAlt, de acordo com <a title="http://packages.python.org/pyglet/api/pyglet.window.key-module.html" href="http://packages.python.org/pyglet/api/pyglet.window.key-module.html">http://packages.python.org/pyglet/api/pyglet.window.key-module.html</a>.</p>
<p>Para saber mais, veja <a title="https://forums.virtualbox.org/viewtopic.php?f=1&amp;t=46523" href="https://forums.virtualbox.org/viewtopic.php?f=1&amp;t=46523">https://forums.virtualbox.org/viewtopic.php?f=1&amp;t=46523</a>.</p>
<p>&nbsp;</p>
<p>Um abraço,<br />&nbsp;&nbsp;&nbsp; Igor</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/LKirEQXDbeM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/04/como-configurar-a-host-key-do-virtualbox-para-usar-right-alt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/04/como-configurar-a-host-key-do-virtualbox-para-usar-right-alt/</feedburner:origLink></item>
		<item>
		<title>Tudo o que você precisa saber sobre testes no Visual Studio – Parte 3</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/nEWUa4TkG1w/</link>
		<comments>http://blog.lambda3.com.br/2012/04/tudo-o-que-voc-precisa-saber-sobre-testes-no-visual-studio-parte-3/#comments</comments>
		<pubDate>Sat, 07 Apr 2012 22:22:44 +0000</pubDate>
		<dc:creator>André Dias</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Lambda3 TV]]></category>
		<category><![CDATA[Testes]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[Webcast]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=2934</guid>
		<description><![CDATA[Dando continuidade à série de vídeos sobre testes com o Visual Studio 2010, acabamos de publicar a 3a. parte na Lambda3 TV. Neste terceiro episódio, abordamos os seguintes assuntos: Microsoft Test Manager Criação e configuração de planos de teste Criação &#8230; <a href="http://blog.lambda3.com.br/2012/04/tudo-o-que-voc-precisa-saber-sobre-testes-no-visual-studio-parte-3/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dando continuidade à série de vídeos sobre testes com o Visual Studio 2010, acabamos de publicar a 3a. parte na <a href="http://www.youtube.com/Lambda3TV" target="_blank">Lambda3 TV</a>. Neste terceiro episódio, abordamos os seguintes assuntos:
<ul>
<li><strong>Microsoft Test Manager</strong>
<ul>
<li>Criação e configuração de planos de teste
<li>Criação de test suites a partir de user stories
<li>Criação de casos de teste
<li>Execução de casos de testes com o test runner
<li>Criação de casos de teste com diferentes configurações de browser
<li>Execução de Casos de Testes utilizando FireFox
<li>Geração de bugs a partir do test runner
<li>Anexo automático de evidências como vídeos, screenshots, Intellitrace, event log e system information nos bugs.
<li>Gerenciamento de bugs e casos de testes
<li>Identificação e verificação de bugs corrigidos
<li>Identificação e re-teste de casos de testes impactados
<li>Criação de casos de teste com fonte de dados (parâmetros)
<li>Databind de casos de teste com a aplicação
<li>Execução de casos de testes com parâmetros diferentes</li>
</ul>
<li><strong>Coded UI</strong>
<ul>
<li>Geração de teste automatizado a partir de um caso de teste do Test Manager
<li>Inclusão de assertions
<li>Geração de código de teste do zero
<li>Execução de um caso de teste complexo (cenário de compra de produto)</li>
</ul>
<li><strong>Build (apenas utilização)</strong>
<ul>
<li>Integração Contínua
<li>Deployment automático no IIS</li>
</ul>
</li>
</ul>
<p><iframe height="315" src="http://www.youtube.com/embed/oLFBPGuIqGk" frameborder="0" width="560" allowfullscreen></iframe></p>
<p>Se você perdeu os últimos dois episódios, não deixe de acessá-los:
<ul>
<li><a href="http://blog.lambda3.com.br/2012/01/tudo-o-que-voc-precisa-saber-sobre-testes-no-visual-studio-parte-2/" target="_blank">Tudo o que você precisa saber sobre testes no Visual Studio – Parte 2</a>
<li><a href="http://blog.lambda3.com.br/2012/01/tudo-o-que-voc-precisa-saber-sobre-testes-no-visual-studio-parte-1/" target="_blank">Tudo o que você precisa saber sobre testes no Visual Studio – Parte 1</a></li>
</ul>
<p>Abraços e até a próxima<br />André Dias</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/nEWUa4TkG1w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/04/tudo-o-que-voc-precisa-saber-sobre-testes-no-visual-studio-parte-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/04/tudo-o-que-voc-precisa-saber-sobre-testes-no-visual-studio-parte-3/</feedburner:origLink></item>
		<item>
		<title>Vale a pena utilizar o Team Build?</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/EYwFqdp6-y4/</link>
		<comments>http://blog.lambda3.com.br/2012/04/vale-a-pena-utilizar-o-team-build/#comments</comments>
		<pubDate>Fri, 06 Apr 2012 20:26:51 +0000</pubDate>
		<dc:creator>André Dias</dc:creator>
				<category><![CDATA[Build]]></category>
		<category><![CDATA[TFS]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/2012/04/vale-a-pena-utilizar-o-team-build/</guid>
		<description><![CDATA[Ontem, eu respondi uma dúvida no grupo de discussão do ALM Brasil e vou replicá-la aqui, pois acredito que possa ajudar outras pessoas com a mesma necessidade. A pergunta foi: “Quais são as vantagens de fazer a build no Team &#8230; <a href="http://blog.lambda3.com.br/2012/04/vale-a-pena-utilizar-o-team-build/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ontem, eu respondi uma dúvida no grupo de discussão do <a href="http://www.almbrasil.com.br/" target="_blank">ALM Brasil</a> e vou replicá-la aqui, pois acredito que possa ajudar outras pessoas com a mesma necessidade.
<p>A pergunta foi: “<i>Quais são as vantagens de fazer a build no Team Build em vez do Visual Studio?</i>”. Bom, vamos à resposta:
<p><b></b>
<ol>
<li><b>Independência de pessoas e de estações de desenvolvimento</b>
<ul>
<li>Qualquer pessoa com permissão pode gerar a build com apenas um click. Você não fica dependendo de apenas uma pessoa que já tem a máquina configurada para gerar a build; </li>
</ul>
<li><b>Melhora o gerenciamento de dependências</b>
<ul>
<li>É muito comum o código compilar na máquina do desenvolvedor, mas quando vai para o servidor de build, não funciona de jeito nenhum. Isso normalmente ocorre devido a um gerenciamento de dependências ruim;<br /> 
<li>Como o servidor de build é uma máquina independente e ele compila o código que está no source control, se a sua estratégia de versionamento não gerenciar as dependências corretamente, o servidor de build dificilmente conseguirá compilar a sua aplicação, ou seja, ele te forçará a trabalhar direito;<br /> 
<li>Outro ganho que você terá aqui, é que sempre que um programador novo entrar no seu time, a chance dele fazer um get latest version no projeto e compilar de primeira será altíssima; </li>
</ul>
<li><b>Integração Contínua</b>
<ul>
<li>A cada check-in você poderá:
<ol>
<li>Executar testes de automatizados (inclusive de UI) garantindo que as funcionalidades existentes não sejam quebradas (teste de regressão);
<li>Ligar o Code Coverage e saber o percentual de código que os testes estão cobrindo;
<li>Validar a arquitetura da sua aplicação e garantir, por exemplo, que a camada de apresentação não faça acesso direto ao banco de dados;
<li>Execução de análise de código estática; </li>
</ol>
</li>
</ul>
<li><b>Relatórios</b>
<ul>
<li>Diversos relatórios cruzando informações sobre qualidade, build e bugs são gerados automaticamente pelo simples fato de você utilizar o Team Build;</li>
</ul>
<li><b>Políticas de check-in</b>
<ul>
<li>Você pode impedir que o programador envie um código para o controlador de versão caso a build esteja quebrada. Isso evita que uma build ruim, fique ainda pior; </li>
</ul>
<li><b>Notificação por e-mail</b>
<ul>
<li>Seu time pode ser avisado toda vez que uma build for executada, falhar ou mesmo ser promovida para ambientes de homologação / produção; </li>
</ul>
<li><b>Agendamento de Builds</b>
<ul>
<li>Com esse recurso, você pode usar a prática de build noturna e, com isso, quando o programador chegar para trabalhar pela manhã, já saberá se a build está estável ou se tem algo para corrigir do dia anterior; </li>
</ul>
<li><b>Gated Check-in</b>
<ul>
<li>Recurso muito bacana que permite rejeitar o check-in do programador caso a build falhe, seja por problemas de compilação, testes, arquitetura ou qualquer outro motivo. </li>
</ul>
<li><b>Automação de Deployment</b>
<ul>
<li>Você pode estender o Team Build para usar frameworks como o MSBuild e MSDeploy para implantar o seu site em homologação/produção e atualizar o seu banco de dados com apenas um click; </li>
</ul>
<li><b>Rastreabilidade</b>
<ul>
<li>Toda vez que você gera uma build, o Team Build automaticamente identifica e associa as changesets, work items e outros artefatos com a build. Com isso, você consegue ter uma rastreabilidade entre requisitos, código fonte, build e resultados de testes e consequentemente passa a atender práticas de Gerenciamento de Configuração requeridas pelo CMMi,&nbsp; MPS.br e ITIL; </li>
</ul>
<li><b>Integração com o Microsoft Test Manager</b>
<ul>
<li>Se você utilizar o MTM, o seu tester, assim que identificar que uma nova build foi gerada, saberá quais BUGs ele precisa verificar e quais planos de testes foram afetados e precisam ser retestados; </li>
</ul>
<li><b>Gerenciamento de Builds</b>
<ul>
<li>A partir&nbsp; de um console de gerenciamento, você consegue saber quais builds estão em ambientes de homologação, produção, etc; </li>
</ul>
<li><b>Aplicação de label automática; </b>
<ul>
<li>Você não precisa se preocupar em aplicar labels no seu código fonte. O team build já faz isso para você e caso você queira alterar um código que está em produção, basta criar uma branch da label que o Team Build gerou; </li>
</ul>
<li><b>Totalmente extensível</b>
<ul>
<li>Se nada disso acima te atender, você pode ir além e estender o workflow, eventos, e tudo mais que você imaginar; </li>
</ul>
</li>
</ol>
<p>E aí? Depois de tudo isso, você ainda vai fazer “build” no F5?
<p>Abraços<br />André Dias</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/EYwFqdp6-y4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/04/vale-a-pena-utilizar-o-team-build/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/04/vale-a-pena-utilizar-o-team-build/</feedburner:origLink></item>
		<item>
		<title>.NET Architects Days 2012</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/LjgXD6oLg4A/</link>
		<comments>http://blog.lambda3.com.br/2012/04/net-architects-days-2012/#comments</comments>
		<pubDate>Fri, 06 Apr 2012 19:50:10 +0000</pubDate>
		<dc:creator>Giovanni Bassi</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[Arquitetura]]></category>
		<category><![CDATA[comunidade]]></category>
		<category><![CDATA[eventos]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=2925</guid>
		<description><![CDATA[Em 2 meses estaremos mais uma vez no DNAD. O .NET Architects Days é o maior evento com foco exclusivo em arquitetura e .NET do Brasil, e está também entre os maiores eventos de .NET do país. Já é a &#8230; <a href="http://blog.lambda3.com.br/2012/04/net-architects-days-2012/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://dnad.dotnetarchitects.net/dnad/2012/" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="DNAD12" border="0" alt="DNAD12" src="http://blog.lambda3.com.br/wp-content/uploads//2012/04/dnad12_banner_728x90.gif" width="600" height="74"></a></p>
<p>Em 2 meses estaremos mais uma vez no DNAD. O .NET Architects Days é o maior evento com foco exclusivo em arquitetura e .NET do Brasil, e está também entre os maiores eventos de .NET do país.</p>
<p>Já é a quarta edição do evento, que é o encontro anual do <a href="http://dotnetarchitects.net/" target="_blank">.NET Architects</a>. Começamos pequenos e crescemos todo ano. Agora estacionamos em 350 pessoas, principalmente porque encontramos um local muito bom, que tem esse limite de tamanho, e qualquer evento maior demandaria de nós um esforço muito grande. Também exigiria da organização um comprometimento financeiro que nos deixa um pouco desconfortáveis.</p>
<p>Esse ano o evento terá, novamente, 2 dias. Será dias 1 e 2 de Junho, sexta e sábado, no mesmo hotel Braston que nos recebeu ano passado. O hotel é muito bem localizado, ao lado do metrô e no centro de São Paulo.</p>
<p>A <a href="http://dnad.dotnetarchitects.net/dnad/2012/programacao/" target="_blank">grade de palestras</a> está quase fechada e com <a href="http://dnad.dotnetarchitects.net/dnad/2012/palestrantes/" target="_blank">excelentes palestrantes</a> e vai falar de ESB, REST, novos paradigmas para web, nodeJS, e lógico, Cloud. Teremos ainda espaços para Lightning Talks e Open Spaces. </p>
<p>Daqui da <a href="http://www.lambda3.com.br" target="_blank">Lambda3</a> vamos palestrar <a href="https://twitter.com/#!/vcavalcante" target="_blank">Victor Cavalcante</a> e eu, sobre a nova web (você pode conferir um pouco da ideia <a href="http://www.tecnoretorica.com.br/2012/04/victor-cavalcante-nova-web/" target="_blank">no último episódio do Tecnoretórica</a>). A Lambda3 também apoia o evento administrativamente, assim como ano passado, gerenciando toda a parte financeira e administrativa.</p>
<p>No Twitter, você pode acompanhar o evento pela hashtag <a href="http://bit.ly/hashdnad12" target="_blank">#dnad12</a> e pelos posts do <a href="https://twitter.com/#!/netarchitects" target="_blank">@netarchitects</a>. Estamos também com <a href="http://on.fb.me/fbdnad12" target="_blank">uma página no Facebook</a>, onde você pode discutir sobre o evento e dizer se vai. E se você divulgar o evento, ganha um link de volta, sendo uma das nossas <a href="http://bit.ly/dnad12amigos" target="_blank">páginas amigas</a>.</p>
<p>Vai ser uma ótima oportunidade pra reencontrar a comunidade e fazer um network bacana. E pra quem quiser ver como foi o evento nos anos anteriores, vejam aqui meus posts sobre <a href="http://blog.lambda3.com.br/2009/06/o-net-architects-day-2009-foi-um-sucesso/" target="_blank">2009</a>, <a href="http://blog.lambda3.com.br/2010/11/mais-uma-edio-do-dnad/" target="_blank">2010</a> e <a href="http://blog.lambda3.com.br/2011/03/anncio-do-dnad-2011/" target="_blank">2011</a>, além dos sites de cada ano que ainda estão no ar.</p>
<p>Vejo vocês por lá!</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/LjgXD6oLg4A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/04/net-architects-days-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/04/net-architects-days-2012/</feedburner:origLink></item>
		<item>
		<title>Enviando os e-mails de alerta do TFS pelo Gmail</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/SMFwI3tsL6k/</link>
		<comments>http://blog.lambda3.com.br/2012/04/enviando-os-e-mails-de-alerta-do-tfs-pelo-gmail/#comments</comments>
		<pubDate>Sun, 01 Apr 2012 23:19:24 +0000</pubDate>
		<dc:creator>Claudio Leite</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[TFS]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/2012/04/enviando-os-e-mails-de-alerta-do-tfs-pelo-gmail/</guid>
		<description><![CDATA[Empresas de pequeno ou médio porte tem optado por alguns serviços na nuvem, como por exemplo, utilizar o gmail como seu servidor de e-mails e o google doc´s como repositório de documentos. Essas mesmas empresas também utilizam serviços internos como &#8230; <a href="http://blog.lambda3.com.br/2012/04/enviando-os-e-mails-de-alerta-do-tfs-pelo-gmail/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Empresas de pequeno ou médio porte tem optado por alguns serviços na nuvem, como por exemplo, utilizar o gmail como seu servidor de e-mails e o google doc´s como repositório de documentos.</p>
<p>Essas mesmas empresas também utilizam serviços internos como o Team Foundation Server para gerenciar seus projetos de desenvolvimento, independente da linguagem .NET, Java, Cobol, VB6 etc.
<p>Nesse cenário surge a necessidade de integração entre alguns serviços internos com serviços externos. E como podemos fazer isso com o Team Foundation Server e o Gmail ?
<p>Nativamente, não é possível passar informações de servidores e-mail, usuários e contas para autenticação, por isso temos que implementar uma funcionalidade do IIS, o SMTP Server, para criar um servidor virtual de SMTP e fazer ele “conversar” com o gmail, permitindo que o TFS envie seus alertas.
<p>Para fazer isso, primeiro precisaremos instalar a feature do <strong>SMTP Server,</strong> para isso acesse o <strong>Server Manager</strong>, e selecione a feature do <strong>SMTP Server<br /></strong></p>
<p><a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/gmail0.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="gmail0" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/gmail0_thumb.png" width="409" height="277"></a></p>
<p><a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/gmail1.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="gmail1" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/gmail1_thumb.png" width="414" height="306"></a><br /> 
<p>Click em Next até chegar ao final da instalação. Depois de instalar, precisamos configurar o SMTP Server do IIS para isso, vamos acessar o IIS Manager abrir a Feature do SMTP E-mail</p>
<p><a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/2.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="2" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/2_thumb.png" width="269" height="332"></a></p>
<p><a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/3.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="3" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/3_thumb.png" width="425" height="180"></a></p>
<p>Na tela de configuração da Feature do <strong>SMTP E-Mail</strong>, deixaremos as opções padrões.</p>
<p><a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/4.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="4" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/4_thumb.png" width="420" height="290"></a></p>
<p>Agora precisamos configurar o nosso servidor virtual para conversar com o Gmail. Para isso, vamos acessar o IIS Manager 6.0</p>
<p><a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/5.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="5" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/5_thumb.png" width="424" height="282"></a></p>
<p>Ao abrirmos a console do IIS Manager 6.0, percebemos que o serviço está parado, então o primeiro passo é iniciar o serviço. Selecione o serviço ao lado direito e depois clique no botão iniciar (a figura igual ao botão play na barra superior)</p>
<p><a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/6.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="6" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/6_thumb.png" width="425" height="300"></a></p>
<p>Depois de iniciado, selecione o serviço e entre nas propriedades para começarmos as configurações</p>
<p><a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/7.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="7" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/7_thumb.png" width="324" height="359"></a><br />Na aba <strong>Access</strong>, vamos habilitar quais as máquinas vamos permitir que faça relay nesse servidor. Podem ser adicionadas máquina a máquina, uma rede válida ou um domínimo específico. No nosso exemplo, vou adicionar uma rede.<a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/8.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="8" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/8_thumb.png" width="270" height="299"></a></p>
<p><a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/9.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="9" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/9_thumb.png" width="301" height="294"></a></p>
<p>Agora na aba <strong>Delivery</strong>, acesse a opção <strong>Outbound Sercurity </strong>selecione a opção <strong>basic authentication</strong> e coloque o e-mail do gmail e a senha de acesso do e-mail. Tem que ser um e-mail válido. São com essas informações que o IIS realizará a conexão com o Gmail para enviar os e-mails de alerta. Importante não podemos esquecer de marcar a opção <strong>TLS Encryptation</strong></p>
<p><strong><a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/10.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="10" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/10_thumb.png" width="309" height="343"></a></p>
<p><a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/111.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="11" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/11_thumb.png" width="317" height="322"></a></p>
<p></strong>
<p><strong></strong>
<p>No <strong>Outbound Connections</strong> precisamos alterar a porta de comunicação de TCP. Por padrão a porta é a <strong>25</strong>, porém o gmail utiliza a porta <strong>587 <strong> </strong></strong><strong></p>
<p><a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/121.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="12" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/12_thumb.png" width="326" height="176"></a><br /> 
<p></strong>
<p><strong></strong>
<p>Por último, vamos na opção <strong>Advanced</strong>. Nessa tela vamos informar qual é o nome do nosso servidor virtual, tem que ser o nome do seu servidor que é conhecido na rede (nome + domínio)&nbsp; e o <strong>smart host</strong>, precisamos informar qual é o smtp do gmail (smtp.gmail.com), conforme figura abaixo</p>
<p><a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/13.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="13" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/13_thumb.png" width="344" height="333"></a></p>
<p>Com isso, configuramos o Servidor de SMTP, agora vamos configurar os alertas do Visual Studio. Para isso, entre na console administration, selecione o <strong>application tier</strong> e role até a opção de configurar os alertas de e-mail.</p>
<p><a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/14.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="14" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/14_thumb.png" width="293" height="361"></a><br /><a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/15.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="15" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/15_thumb.png" width="425" height="237"></a></p>
<p>Na opção SMTP Server, entre com o nome do servidor onde acabou de ser configurado o servidor de SMTP. No E-mail From Address coloque um endereço de e-mail, pode ser qualquer endereço.</p>
<p><a href="http://claudioleite.com/blog/wp-content/uploads/2011/05/16.png" rel="lightbox[2915]"><img style="float: none;margin-left: auto;margin-right: auto" border="0" alt="16" src="http://claudioleite.com/blog/wp-content/uploads/2011/05/16_thumb.png" width="380" height="132"></a><br />Pronto, agora você pode gerar algum alerta no TFS que receberá o e-mail através do gmail configurada no passo 8.</p>
<p>Esse procedimento pode ser utilizado para qualquer servidor de e-mail externo que você possua um usuário válido ou se na sua empresa a porta padrão de conexão com o servidor de e-mail é diferente da padrão.</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/SMFwI3tsL6k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/04/enviando-os-e-mails-de-alerta-do-tfs-pelo-gmail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/04/enviando-os-e-mails-de-alerta-do-tfs-pelo-gmail/</feedburner:origLink></item>
		<item>
		<title>Debugando um Event Handler no TFS 2010</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/bT2vA-9d17E/</link>
		<comments>http://blog.lambda3.com.br/2012/03/debugando-um-event-handler-no-tfs-2010/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 13:45:20 +0000</pubDate>
		<dc:creator>Claudio Leite</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[TFS]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=2911</guid>
		<description><![CDATA[Esse post pode ser considerado um complemento do post do André Dias, sobre como impedir que um desenvolvedor sobrescrever a política de check-in no TFS. Com os Events Handlers, podemos fazer mais coisas além de verificação de comentários, podemos adicionar &#8230; <a href="http://blog.lambda3.com.br/2012/03/debugando-um-event-handler-no-tfs-2010/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Esse post pode ser considerado um complemento do post do <a href="http://blog.lambda3.com.br/L3/andredias/">André Dias</a>, <a href="http://blog.lambda3.com.br/2011/07/como-impedir-o-desenvolvedor-de-sobrescrever-a-poltica-de-check-in-no-tfs/">sobre como impedir que um desenvolvedor sobrescrever a política de check-in no TFS</a>.</p>
<p>Com os Events Handlers, podemos fazer mais coisas além de verificação de comentários, podemos adicionar uma complexidade maior  que exigirá alguns testes prévios e debug.</p>
<p>Para debugar um Event Handler e facilitar a vida, vamos adicionar o output do projeto já para a pasta padrão do Team Foundation Server, com isso o nosso Event Handler já será publicado na área de instalação e começará a funcionar sem que seja necessárias nenhuma configuração a mais ou cópia de arquivos. Para isso acesse a propriedade do projeto</p>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/03/clip_image002.png" rel="lightbox"><img style="padding-left: 0px;padding-right: 0px;float: none;margin-left: auto;margin-right: auto;padding-top: 0px;border: 0px" src="http://blog.lambda3.com.br/wp-content/uploads//2012/03/clip_image002_thumb.png" alt="clip_image002" width="301" height="521" border="0" /></a></p>
<p>Na página de propriedades do projeto, vá para aba Build e vamos adicionar a propriedade Output Path para: C:\Program Files\Microsoft Team Foundation Server 2010\Application Tier\Web Services\Plugins\</p>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/03/clip_image005.png" rel="lightbox"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border: 0px" src="http://blog.lambda3.com.br/wp-content/uploads//2012/03/clip_image005_thumb.png" alt="clip_image005" width="569" height="435" border="0" /></a></p>
<p>Feito isso, podemos mandar compilar o Event Handler que estamos trabalhando para que ele seja instalado.</p>
<p>Agora, para realizarmos um debug, vamos precisar atachar o processo do IIS que está rodando o TFS 2010. Para isso, vamos no menu Debug -&gt; Attach Process</p>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/03/clip_image008.png" rel="lightbox"><img style="padding-left: 0px;padding-right: 0px;float: none;margin-left: auto;margin-right: auto;padding-top: 0px;border: 0px" src="http://blog.lambda3.com.br/wp-content/uploads//2012/03/clip_image008_thumb.png" alt="clip_image008" width="458" height="333" border="0" /></a></p>
<p>Irá aparecer uma lista de processos disponíveis. Procure o processo do IIS (w3wp.exe) que esteja rodando o .net framework 4.0 (caso no seu servidor possua outras aplicações no framework 4.0, você terá que identificar o processo por algum dos outros campos, o um exemplo, seria o User Name, que é o usuário que está rodando o TFS 2010)</p>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/03/clip_image010.png" rel="lightbox"><img style="padding-left: 0px;padding-right: 0px;float: none;margin-left: auto;margin-right: auto;padding-top: 0px;border: 0px" src="http://blog.lambda3.com.br/wp-content/uploads//2012/03/clip_image010_thumb.png" alt="clip_image010" width="493" height="332" border="0" /></a></p>
<p>Não esqueça de marcar a opção “Show processes in all sessions” para ver o processo do IIS. Caso você não encontre o processo do TFS, basta força uma “rodada” do TFS, para isso, vá no team explorer e dê um refresh. Isso fará que o processo “entre no ar” novamente. Feito isso, clique em Attach.</p>
<p>Para realizar o debug, abra uma nova IDE do VS2010, conecte no TFS e faça um check-in, com isso você poderá começar a debugar o seu código.</p>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/03/clip_image012.png" rel="lightbox"><img style="padding-left: 0px;padding-right: 0px;float: none;margin-left: auto;margin-right: auto;padding-top: 0px;border: 0px" src="http://blog.lambda3.com.br/wp-content/uploads//2012/03/clip_image012_thumb.png" alt="clip_image012" width="569" height="414" border="0" /></a></p>
<p>Espero que tenha ajudado e qualquer dúvida, não deixe de entrar em contato!</p>
<p>Até a próxima!</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/bT2vA-9d17E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/03/debugando-um-event-handler-no-tfs-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/03/debugando-um-event-handler-no-tfs-2010/</feedburner:origLink></item>
		<item>
		<title>Visual Studio Dev11 vem sem SQL Server Express e isso não é um problema</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/NwNxAVXPKDk/</link>
		<comments>http://blog.lambda3.com.br/2012/03/visual-studio-dev11-vem-sem-sql-server-express-e-isso-no-um-problema/#comments</comments>
		<pubDate>Mon, 26 Mar 2012 12:15:00 +0000</pubDate>
		<dc:creator>Giovanni Bassi</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/2012/03/visual-studio-dev11-vem-sem-sql-server-express-e-isso-no-um-problema/</guid>
		<description><![CDATA[A nova versão do Visual Studio, que está agora em Beta, não traz a opção de instalar o SQL Server Express, como acontecia com o VS 2010. Isso não é um problema. A partir desta versão, temos a nossa disposição &#8230; <a href="http://blog.lambda3.com.br/2012/03/visual-studio-dev11-vem-sem-sql-server-express-e-isso-no-um-problema/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A nova versão do Visual Studio, que está agora em Beta, não traz a opção de instalar o SQL Server Express, como acontecia com o VS 2010. Isso não é um problema. A partir desta versão, temos a nossa disposição via SQL Server 2012 (codename Denali) o LocalDB. Esse vem instalado com o Visual Studio Dev11.</p>
<p>Qual a diferença? O LocalDB não fica rodando toda hora na sua máquina. Ele é um SQL Server “sob demanda”, só sobe quando você precisa, e se ficar muito tempo sem usar, ele fecha. Pra usar é fácil, basta trocar a string de conexão para usar “(localdb)\v11.0” onde antes ficava o “.\SQLExpress”, na string de conexão. Você pode inclusive se conectar nele via SQL Server Management Studio ou via as ferramentas do Visual Studio. Em tempo: o SQL Server Management Studio também não vem mais instalado.</p>
<p>Vejam aqui a conexã aberta no novo Management Studio (que é baseado em VS 2010):</p>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/03/image5.png" rel="lightbox"><img title="SQL Server 2012 Management Studio acessando LocalDB" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="SQL Server 2012 Management Studio acessando LocalDB" src="http://blog.lambda3.com.br/wp-content/uploads//2012/03/image_thumb5.png" width="304" height="275"></a></p>
<p>Para entender um pouco mais, <a href="http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx">vejam este post</a> onde o time do SQL Server anuncia o LocalDB.</p>
<p>Nos meus testes até aqui o LocalDB funcionou perfeitamente, exatamente como um SQL Server normal funcionaria.</p>
<p>Você ainda pode instalar o SQL Server Express se quiser. A versão 2012 já é final (RTM) e <a href="http://www.microsoft.com/betaexperience/pd/SQLEXPCTAV2/enus/default.aspx">pode ser baixada aqui</a>.</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/NwNxAVXPKDk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/03/visual-studio-dev11-vem-sem-sql-server-express-e-isso-no-um-problema/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/03/visual-studio-dev11-vem-sem-sql-server-express-e-isso-no-um-problema/</feedburner:origLink></item>
		<item>
		<title>Rodando NUnit nativamente no Visual Studio Dev11</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/yJXOvDwOenU/</link>
		<comments>http://blog.lambda3.com.br/2012/03/rodando-nunit-nativamente-no-visual-studio-dev11/#comments</comments>
		<pubDate>Fri, 23 Mar 2012 15:31:43 +0000</pubDate>
		<dc:creator>Giovanni Bassi</dc:creator>
				<category><![CDATA[Testes]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/2012/03/rodando-nunit-nativamente-no-visual-studio-dev11/</guid>
		<description><![CDATA[A essa altura todo mundo já sabe que a Microsoft abraçou a ideia de rodar outros frameworks de testes diretamente de dentro do Visual Studio. Isso se concretizou com o Visual Studio vNext, ainda sem nome mas chamado de Dev11. &#8230; <a href="http://blog.lambda3.com.br/2012/03/rodando-nunit-nativamente-no-visual-studio-dev11/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A essa altura todo mundo já sabe que a Microsoft abraçou a ideia de rodar outros frameworks de testes diretamente de dentro do Visual Studio. Isso se concretizou com o Visual Studio vNext, ainda sem nome mas chamado de Dev11. <br />Ao criar um projeto de testes no Dev11, o que vem por padrão é o MSTest, framework da Microsoft. Para rodar o popular NUnit, você tem que seguir poucos passos:</p>
<p>Acrescentar o <a href="http://visualstudiogallery.msdn.microsoft.com/6ab922d0-21c0-4f06-ab5f-4ecd1fe7175d">NUnit test adapter</a> no Visual Studio via Extension Gallery:</p>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/03/image3.png" rel="lightbox[testesdev11]"><img title="Extension Manager" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Extension Manager" src="http://blog.lambda3.com.br/wp-content/uploads//2012/03/image_thumb3.png" width="404" height="200"></a></p>
<p>Instalar o NUnit via Nuget:</p>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/03/image8.png" rel="lightbox[testesdev11]"><img title="Nuget com NUnit" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Nuget com NUnit" src="http://blog.lambda3.com.br/wp-content/uploads//2012/03/image8_thumb.png" width="404" height="206"></a></p>
<p>Opcionalmente remover a referência ao Assembly do MSTest, Microsoft.VisualStudio.QualityTools.UnitTestFramework.</p>
<p>Substituir os atributos do MSTest pelos do NUnit (de TestClass para TestFixture e de TestMethod para Test). Um find and replace all resolve isso rápido. Os asserts devem continuar funcionando, já que a maioria é igual nos dois frameworks, com pequenas diferenças. A classe padrão fica assim:</p>
<pre class="brush: csharp;">using NUnit.Framework;
namespace UnitTestProject1
{
    [TestFixture]
    public class UnitTest1
    {
        [Test]
        public void TestMethod1()
        {
        }
    }
}
</pre>
<p>&nbsp;</p>
<p>Um teste simples de soma, seria assim:</p>
<pre class="brush: csharp;">[Test]
public void Soma()
{
    Assert.AreEqual(3, 2 + 1);
}
</pre>
<p>&nbsp;</p>
<p>E rodar pelas vias normais (atalho de teclado, menu ou botão). O resultado aparece diretamente dentro do Visual Studio:</p>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/03/image4.png" rel="lightbox[testesdev11]"><img title="Unit Test Explorer com testes do NUnit" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Unit Test Explorer com testes do NUnit" src="http://blog.lambda3.com.br/wp-content/uploads//2012/03/image_thumb4.png" width="428" height="466"></a></p>
<p>Outra coisa interessante é que essa nova janela, Unit Test Explorer, é não invasiva. Depois de rodar os testes ela aparece, mostra os resultados, e logo volta pra posição em colapso, não obstruindo seu trabalho. Os testes parecem estar rodando mais rápido também.</p>
<p>Tudo muito bom. É uma grande evolução com relação a versão anterior, por diversos motivos.</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/yJXOvDwOenU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/03/rodando-nunit-nativamente-no-visual-studio-dev11/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/03/rodando-nunit-nativamente-no-visual-studio-dev11/</feedburner:origLink></item>
		<item>
		<title>Palestra sobre democracia organizacional pela Scrum.org</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/bSkupeKwwtI/</link>
		<comments>http://blog.lambda3.com.br/2012/03/palestra-sobre-democracia-organizacional-pela-scrum-org/#comments</comments>
		<pubDate>Fri, 16 Mar 2012 02:22:55 +0000</pubDate>
		<dc:creator>Giovanni Bassi</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[democracia organizacional]]></category>
		<category><![CDATA[eventos]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/2012/03/palestra-sobre-democracia-organizacional-pela-scrum-org/</guid>
		<description><![CDATA[Terça-feira que vem, dia 20/3/2012, às 18:30, palestrarei sobre democracia organizacional, pela Scrum.org. A palestra será em inglês. Você já pode se registrar para assistir: http://www.scrum.org/webcast &#160; E pode ver uma lista de quem vai e discutir sobre o assunto &#8230; <a href="http://blog.lambda3.com.br/2012/03/palestra-sobre-democracia-organizacional-pela-scrum-org/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Terça-feira que vem, dia 20/3/2012, às 18:30, palestrarei sobre democracia organizacional, pela Scrum.org. A palestra será em inglês. Você já pode se registrar para assistir:</p>
<p><a href="http://www.scrum.org/webcast">http://www.scrum.org/webcast</a></p>
<p>&nbsp;</p>
<p>E pode ver uma lista de quem vai e discutir sobre o assunto no Facebook:</p>
<p><a href="https://www.facebook.com/events/259584867461888/">https://www.facebook.com/events/259584867461888/</a></p>
<p>Vejo vocês lá.</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/bSkupeKwwtI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/03/palestra-sobre-democracia-organizacional-pela-scrum-org/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/03/palestra-sobre-democracia-organizacional-pela-scrum-org/</feedburner:origLink></item>
		<item>
		<title>Como converter discos virtuais VHD de fixos para dinâmicos (e vice-versa)</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/Ec4BaHUpHkw/</link>
		<comments>http://blog.lambda3.com.br/2012/03/como-converter-discos-virtuais-vhd-de-fixos-para-dinmicos-e-vice-versa/#comments</comments>
		<pubDate>Mon, 12 Mar 2012 01:07:10 +0000</pubDate>
		<dc:creator>Igor Abade</dc:creator>
				<category><![CDATA[Outros]]></category>
		<category><![CDATA[Dinâmico]]></category>
		<category><![CDATA[Fixo]]></category>
		<category><![CDATA[Redimensionar]]></category>
		<category><![CDATA[Resize]]></category>
		<category><![CDATA[VHD]]></category>
		<category><![CDATA[VhdResizer]]></category>
		<category><![CDATA[Virtual Machine]]></category>
		<category><![CDATA[VirtualBox]]></category>
		<category><![CDATA[VM]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/2012/03/como-converter-discos-virtuais-vhd-de-fixos-para-dinmicos-e-vice-versa/</guid>
		<description><![CDATA[Sou realmente um entusiasta das tecnologias de virtualização. uso máquinas virtuais o tempo todo, para as mais diversas finalidades: Ambiente de desenvolvimento/testes; Avaliação de novas aplicações; Demonstrações de produto… Como ex-usuário de Virtual PC (e atualmente de Hyper-V e VirtualBox), &#8230; <a href="http://blog.lambda3.com.br/2012/03/como-converter-discos-virtuais-vhd-de-fixos-para-dinmicos-e-vice-versa/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/03/SNAGHTML6a83f15.png" rel="lightbox"><img title="Clique para ampliar" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Exemplo da tela do VhdResizer" align="right" src="http://blog.lambda3.com.br/wp-content/uploads//2012/03/SNAGHTML6a83f15_thumb.png" width="244" height="224"></a>Sou realmente um entusiasta das tecnologias de virtualização. uso máquinas virtuais o tempo todo, para as mais diversas finalidades:</p>
<ul>
<li>Ambiente de desenvolvimento/testes;</li>
<li>Avaliação de novas aplicações;</li>
<li>Demonstrações de produto…</li>
</ul>
<p>Como ex-usuário de Virtual PC (e atualmente de Hyper-V e VirtualBox), todos os meus discos virtuais estão no formato VHD. O VirtualBox (atualmente minha solução preferida de virtualização para substituir o Virtual PC) suporta o formato VHD, logo pude reaproveitar todas as minhas máquinas virtuais.</p>
<p>Ao longo do tempo em que usei máquinas virtuais, mais de uma vez me deparei com a necessidade de editar/modificar meus discos virtuais. As soluções nunca eram muito triviais – tipicamente passavam por algum tipo de processo de <em>imaging</em> (também conhecido como <em>ghosting</em>, termo derivado de um dos produtos mais usados para imaging de computadores, o Norton Ghost).</p>
<p>Mas um dia conheci o <a href="http://vmtoolkit.com/files/folders/converters/entry87.aspx" target="_blank">VhdResizer</a> – e meus problemas acabaram<sup>TM</sup>! <img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="http://blog.lambda3.com.br/wp-content/uploads//2012/03/wlEmoticon-smile1.png"></p>
<p>O VhdResizer é uma ferramenta gratuita, desenvolvida em .NET, capaz de converter e/ou redimensionar discos virtuais no formato VHD. </p>
<p>Com ela você pode converter discos fixos para dinâmicos e vice-versa, podendo até mesmo redimensioná-los no processo.</p>
<p>&nbsp;</p>
<p>Um abraço,<br />&nbsp; Igor</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/Ec4BaHUpHkw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/03/como-converter-discos-virtuais-vhd-de-fixos-para-dinmicos-e-vice-versa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/03/como-converter-discos-virtuais-vhd-de-fixos-para-dinmicos-e-vice-versa/</feedburner:origLink></item>
		<item>
		<title>Windows 8, Oracle VirtualBox e problemas com Wi-Fi</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/2FHTE5Uofow/</link>
		<comments>http://blog.lambda3.com.br/2012/03/windows-8-oracle-virtualbox-e-problemas-com-wi-fi/#comments</comments>
		<pubDate>Sat, 10 Mar 2012 14:46:28 +0000</pubDate>
		<dc:creator>Igor Abade</dc:creator>
				<category><![CDATA[Outros]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[VirtualBox]]></category>
		<category><![CDATA[Wi-Fi]]></category>
		<category><![CDATA[WiFi]]></category>
		<category><![CDATA[Windows 8]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/2012/03/windows-8-oracle-virtualbox-e-problemas-com-wi-fi/</guid>
		<description><![CDATA[O pessoal que me segue no Twitter sabe que uso o Windows 8 desde que a Microsoft lançou o Developer Preview no //BUILD/ no ano passado. Surpreendentemente estável para um produto que ainda não está pronto, ele consegue ser ainda &#8230; <a href="http://blog.lambda3.com.br/2012/03/windows-8-oracle-virtualbox-e-problemas-com-wi-fi/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img title="" style="float: right; display: inline" alt="Rede Wi-Fi" align="right" src="http://www.dcsolucoes.com.br/portal4/images/stories/imagesMaterias/wifi2.jpg" width="240" height="240">O pessoal que me segue no Twitter sabe que uso o Windows 8 desde que a Microsoft lançou o Developer Preview no <a href="http://www.buildwindows.com/">//BUILD/</a> no ano passado. </p>
<p>Surpreendentemente estável para um produto que ainda não está pronto, ele consegue ser ainda mais rápido e leve que o Windows 7 (que, por sua vez, era uma evolução GIGANTESCA em comparação com seu antecessor).</p>
<p>Apesar de o Windows 8 agora oferecer Hyper-V até mesmo para as versões <em>client</em> do Windows, eu ainda tenho máquinas virtuais no VirtualBox. Como ele funciona muito bem, não fazia sentido converter as máquinas virtuais e por isso continuei usando o VirtualBox no Windows 8.</p>
<p>Porém, devo admitir que nem tudo foram flores na minha relação com o Windows 8. Em especial, um problema bem irritante: a rede Wi-Fi parava de funcionar sem motivo aparente. Particularmente depois de suspender/hibernar o notebook, na volta ela sempre tinha problemas para conectar ou pegar um IP no <em>access point</em>. Isso aconteceu durante meu uso do Developer Preview – até o ponto em que isso estava impactando minha produtividade e tive que, forçosamente, voltar para o Windows 7.</p>
<p>Quando a Microsoft lançou o beta – er, digo, Consumer Preview – do Windows 8, lá fui eu de novo com a esperança renovada de que agora o Wi-Fi funcionaria sem problemas.</p>
<p>E não é que agora estava redondinho?!?!?&nbsp; <img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="http://blog.lambda3.com.br/wp-content/uploads//2012/03/wlEmoticon-smile.png"></p>
<p>Só que, depois de uma duas semanas de uso do Windows 8 ele voltou a dar problema no Wi-Fi. Mas dessa vez eu dei sorte e <strong>achei o culpado</strong>!</p>
<p>A sorte foi que demorei, depois de instalar o Windows, para reinstalar o VirtualBox. E logo depois de reinstalá-lo é que começaram os problemas. Com isso, ficou fácil de deduzir e resolver o problema de vez.</p>
<p>O problema deve a alguma incompatibilidade com o <strong>VirtualBox Bridged Networking Driver</strong>. É só desligar o <em>binding</em> do driver na placa de rede Wi-Fi e tudo volta ao normal. </p>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/03/SNAGHTMLcb72c50.png" rel="lightbox"><img title="Clique para ampliar" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Propriedades da placa de rede Wi-Fi. Desmarque a op&ccedil;&atilde;o &quot;VirtualBox Bridged Networking Driver&quot;" src="http://blog.lambda3.com.br/wp-content/uploads//2012/03/SNAGHTMLcb72c50_thumb.png" width="194" height="244"></a></p>
<p>Obviamente, ao fazer isso, você não poderá mais fazer <em>bridging</em> com a NIC Wi-Fi. Mas no meu caso isso não é um problema, portanto a solução é perfeitamente aceitável.</p>
<p>&nbsp;</p>
<p>Um abraço,<br />&nbsp;&nbsp;&nbsp; Igor</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/2FHTE5Uofow" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/03/windows-8-oracle-virtualbox-e-problemas-com-wi-fi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/03/windows-8-oracle-virtualbox-e-problemas-com-wi-fi/</feedburner:origLink></item>
		<item>
		<title>Organizational democracy presentation at Scrum.org</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/p1FzSDKQFUA/</link>
		<comments>http://blog.lambda3.com.br/2012/02/organizational-democracy-presentation-at-scrum-org/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 21:17:38 +0000</pubDate>
		<dc:creator>Giovanni Bassi</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[democracy]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/2012/02/organizational-democracy-presentation-at-scrum-org/</guid>
		<description><![CDATA[I am at a face to face event in Redmond (USA) meeting some Scrum.org trainers, and I have presented a session on organizational democracy. The slides are below: Organizational democracy (Scrum.org presentation) View more presentations from Giovanni Bassi Thanks to &#8230; <a href="http://blog.lambda3.com.br/2012/02/organizational-democracy-presentation-at-scrum-org/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I am at a face to face event in Redmond (USA) meeting some Scrum.org trainers, and I have presented a session on organizational democracy. The slides are below:</p>
<div style="width: 425px" id="__ss_11758680"><strong style="margin: 12px 0px 4px; display: block"><a title="Organizational democracy (Scrum.org presentation)" href="http://www.slideshare.net/giovanni.bassi/organizational-democracy-scrumorg-presentation" target="_blank">Organizational democracy (Scrum.org presentation)</a></strong> <iframe height="355" marginheight="0" src="http://www.slideshare.net/slideshow/embed_code/11758680" frameborder="0" width="425" marginwidth="0" scrolling="no"></iframe>
<div style="padding-bottom: 12px; padding-left: 0px; padding-right: 0px; padding-top: 5px">View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/giovanni.bassi" target="_blank">Giovanni Bassi</a> </div>
</div>
<p>Thanks to all involved who shared information for this presentation and for <a href="http://www.lambda3.com.br" target="_blank">Lambda3</a> for actually making the dream come true.</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/p1FzSDKQFUA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/02/organizational-democracy-presentation-at-scrum-org/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/02/organizational-democracy-presentation-at-scrum-org/</feedburner:origLink></item>
		<item>
		<title>Resumo Semanal de ALM – 23/02/2012</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/rTuCs5VGGZk/</link>
		<comments>http://blog.lambda3.com.br/2012/02/resumo-semanal-de-alm-23022012/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 23:47:40 +0000</pubDate>
		<dc:creator>André Dias</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[Nuvem]]></category>
		<category><![CDATA[TFS]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/2012/02/resumo-semanal-de-alm-23022012/</guid>
		<description><![CDATA[The Road to Visual Studio 11 Beta and .NET 4.5 Beta Somasegar, VP da Developer Division, anuncia que o beta do Visual Studio 11 e do .NET Framework 4.5 será liberado no próximo dia 29/02 com licença “Go-Live”, isto é, &#8230; <a href="http://blog.lambda3.com.br/2012/02/resumo-semanal-de-alm-23022012/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://blogs.msdn.com/b/somasegar/archive/2012/02/23/the-road-to-visual-studio-11-beta-and-net-4-5-beta.aspx" target="_blank">The Road to Visual Studio 11 Beta and .NET 4.5 Beta</a></li>
</ul>
<p>Somasegar, VP da Developer Division, anuncia que o beta do Visual Studio 11 e do .NET Framework 4.5 será liberado no próximo dia 29/02 com licença “Go-Live”, isto é, pode ir pra produção com suporte da Microsoft. </p>
<ul>
<li><a href="http://blogs.msdn.com/b/bharry/archive/2012/02/23/coming-soon-tfs-express.aspx" target="_blank">Coming Soon: TFS Express</a></li>
</ul>
<p>Demorou, mas o meu pedido de longa data foi atendido. Finalmente teremos um TFS Express totalmente free! Essa versão do TFS oferecerá recursos como Source Control, Build, Work Items e Agile Taskboard para até 5 usuários.
<ul>
<li><a href="http://blogs.msdn.com/b/visualstudiobr/archive/2012/02/22/novidades-no-vlsc-para-atribuir-assinaturas-msdn-para-seus-desenvolvedores.aspx" target="_blank">Novidades no VLSC para atribuir assinaturas MSDN para seus desenvolvedores</a></li>
</ul>
<p>Se você tem o Visual Studio instalado em sua máquina e a empresa tem a assinatura do MSDN, não deixe de pedir ao responsável pelas assinaturas para atribuir uma delas a você. Dependendo de sua assinatura, você terá horas gratuitas de Azure, treinamentos gratuitos, chamados a suporte gratuito, além de acesso a Office, Project, Visio entre outros produtos.
<ul>
<li><a href="http://blogs.msdn.com/b/briankel/archive/2012/02/14/fix-for-visual-studio-11-alm-developer-preview-virtual-machine.aspx" target="_blank">Fix for Visual Studio 11 ALM Developer Preview Virtual Machine</a></li>
</ul>
<p>Se você está usando a máquina virtual do Brian Keller com o Visual Studio 11 Developer Preview, o SQL Server Denalli Express (SQL Server 2012) vai expirar essa semana. Neste post, Brian explicar como corrigir o problema. (É bastante simples).
<ul>
<li><a href="TFS%202010:%20What%20Service%20Packs%20and%20Hotfixes%20Should%20I%20Install?" target="_blank">TFS 2010: What Service Packs and Hotfixes Should I Install?</a></li>
</ul>
<p>Nesta semana, o MVP de ALM, <a href="http://marceloazuma.wordpress.com/">Marcelo Azuma</a>, deu uma grande dica quando indicou o site do Grantt Holliday com todos os services packs e hotfixes que você deveria instalar em seu TFS, Visual Studio, SQL Server, SharePoint e todos os outros produtos que compõe a plataforma de ALM da Microsoft. Sem dúvida, um post para manter nos favoritos.
<ul>
<li><a href="http://msmvps.com/blogs/vstsblog/archive/2012/02/18/how-to-set-the-smtp-port-in-tfs-2010.aspx" target="_blank">How to set the SMTP Port in TFS 2010</a></li>
</ul>
<p>Neno Loje, MVP e ALM Ranger, apresenta duas soluções para alterar a porta do SMTP do TFS.
<ul>
<li><a href="http://blogs.msdn.com/b/visualstudioalm/archive/2011/09/14/learning-about-team-foundation-service-preview.aspx" target="_blank">Learning about the Team Foundation Service Preview</a></li>
</ul>
<p>Por volta de Setembro/2011, vários tutoriais foram publicados no <a href="http://channel9.msdn.com/" target="_blank">Channel9</a> para demonstrar o TFS Preview, o TFS na Nuvem da Microsoft. Como já passou algum tempo e o produto evoluiu bastante, todos os vídeos foram regravados e agora estão utilizando a versão mais recente do produto. Se você não viu, veja agora, se já viu veja novamente!
<p>Abraços e até a próxima.<br />André Dias</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/rTuCs5VGGZk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/02/resumo-semanal-de-alm-23022012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/02/resumo-semanal-de-alm-23022012/</feedburner:origLink></item>
		<item>
		<title>SVNBridge: Integre seu TFS 2010 com clientes Subversion</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/vLg2PURPDys/</link>
		<comments>http://blog.lambda3.com.br/2012/02/svnbridge-integre-seu-tfs-2010-com-clientes-subversion/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 04:29:26 +0000</pubDate>
		<dc:creator>Igor Abade</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[SVNBridge]]></category>
		<category><![CDATA[TortoiseSVN]]></category>
		<category><![CDATA[Version Control]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/2012/02/svnbridge-integre-seu-tfs-2010-com-clientes-subversion/</guid>
		<description><![CDATA[Um dos grandes desafios de muitas empresas que pretendem migrar do Subversion para o TFS é: como integrar meu time – e suas ferramentas – ao novo servidor? Se você usa ferramentas que oferecem suporte nativo ao TFS – como &#8230; <a href="http://blog.lambda3.com.br/2012/02/svnbridge-integre-seu-tfs-2010-com-clientes-subversion/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img style="display: inline; margin-left: 0px; margin-right: 0px" title="image" alt="image" src="http://blog.lambda3.com.br/wp-content/uploads//2012/02/image2.png" width="640" height="80"></p>
<p>Um dos grandes desafios de muitas empresas que pretendem migrar do Subversion para o TFS é: como integrar meu time – e suas ferramentas – ao novo servidor?</p>
<p>Se você usa ferramentas que oferecem suporte nativo ao TFS – como o Visual Studio, o Eclipse (com o <a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions/team-explorer-everywhere" target="_blank">Team Explorer Everywhere</a>) ou até mesmo o <a href="http://www.jetbrains.com/idea" target="_blank">IntelliJ IDEA</a> – fica mais fácil. O problema é quando o time está usando ferramentas que só sabem falar com o Subversion, tal como o Adobe Dreamweaver ou o Apple Xcode. </p>
<p>Para esses casos, uma alternativa pode ser o <a href="http://svnbridge.codeplex.com/" target="_blank">SVNBridge</a> – um <em>tradutor de protocolos</em> (ou <em>“bridge”</em>) que emula o protocolo do Subversion, “enganando” os clientes como o Dreamweaver ou o Xcode e fazendo-os acreditar que estão conectados a um repositório Subversion, quando na verdade estão falando com o TFS.</p>
<p>O SVNBridge foi criado pelo time do CodePlex para que clientes SVN (em especial o TortoiseSVN) pudessem ser usados para conexão com os TFS oferecidos pelo serviço CodePlex. O time percebeu que muitas empresas poderiam se beneficiar disso e portanto decidiram compartilhar o código.</p>
<p>Se você já usa (ou pretende usar) o TFS e tem pessoas no seu time que dependem de ferramentas que não “falam” TFS mas “falam” Subversion, experimente o SVNBrigde!</p>
<p>Um abraço,<br />&nbsp;&nbsp;&nbsp; Igor</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/vLg2PURPDys" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/02/svnbridge-integre-seu-tfs-2010-com-clientes-subversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/02/svnbridge-integre-seu-tfs-2010-com-clientes-subversion/</feedburner:origLink></item>
		<item>
		<title>Mudanças na ferramenta de ALM para bancos de dados no Visual Studio “11”</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/_yonn0A7wRk/</link>
		<comments>http://blog.lambda3.com.br/2012/02/mudanas-na-ferramenta-de-alm-para-bancos-de-dados-no-visual-studio-11/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 03:37:36 +0000</pubDate>
		<dc:creator>Igor Abade</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[Bancos de Dados]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[DataDude]]></category>
		<category><![CDATA[DbPro]]></category>
		<category><![CDATA[Juneau]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SSDT]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/2012/02/mudanas-na-ferramenta-de-alm-para-bancos-de-dados-no-visual-studio-11/</guid>
		<description><![CDATA[A Microsoft introduziu, em 2005, uma ferramenta com uma proposta revolucionária: integrar o desenvolvimento de bancos de dados ao ciclo de vida da aplicação. Nascia então o “Visual Studio 2005 Team Edition for Database Professionals” (*), que oferecia recursos como &#8230; <a href="http://blog.lambda3.com.br/2012/02/mudanas-na-ferramenta-de-alm-para-bancos-de-dados-no-visual-studio-11/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A Microsoft introduziu, em 2005, uma ferramenta com uma proposta revolucionária: integrar o desenvolvimento de bancos de dados ao ciclo de vida da aplicação. </p>
<p><img style="display: inline; float: left" align="left" src="http://www.ecostsoftware.com/_products/images/microsoft_vs2005_te_dp_prem_BIG.gif">Nascia então o <strong>“Visual Studio 2005 Team Edition for Database Professionals”</strong> (*), que oferecia recursos como controle de versão para a estrutura (“<em>schema</em>”) de bancos de dados, testes de unidade para código de bancos de dados (ex. <em>stored procedures</em> e <em>queries</em>), geração de dados e mais.</p>
<p><img style="display: inline; float: right" align="right" src="http://blogs.msdn.com/blogfiles/gertd/WindowsLiveWriter/c2a900a95478_C4B5/Visual%20Studio%202008%20Team%20System%20Database%20Edition%20Angled_1.png" width="93" height="125">Quando a Microsoft lançou o Visual Studio Team System 2008, renomeou o produto para <strong>“Visual Studio Team System 2008 Database Edition”</strong>. Até aqui, o DbPro (como era conhecido o produto) era um vendido à parte – ou seja, para usar esses recursos de DDLC (<em>Database Development Lifecycle</em>) era necessário adquirir o VSTS Database Edition ou o venerável VSTS Team Suite (que incorporava todos os recursos disponíveis na plataforma Team System).</p>
<p>O problema é que, diferente do que o time de produto tinha imaginado, o grande usuário dessa ferramenta não era o DBA, mas sim o próprio desenvolvedor. Afinal, é ele quem precisa modificar o banco de dados sempre que necessário, como parte do processo de construção da aplicação. Com isso os desenvolvedores acabavam tendo que comprar duas ferramentas (VSTS 2008 Development Edition e VSTS 2008 Database Edition) para suas atividades do dia-a-dia. Desnecessário dizer que ninguém estava feliz com isso…</p>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/02/image.png" rel="lightbox"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://blog.lambda3.com.br/wp-content/uploads//2012/02/image_thumb.png" width="110" height="125"></a>Em 2010 veio a primeira grande mudança de posicionamento do produto. A Microsoft, a partir do <em>feedback</em> recebido dos clientes, decidiu juntar as duas ferramentas – VSTS Development Edition e Database Edition – num único produto: o novo <strong>Visual Studio 2010 Premium</strong>. Além da integração, veio também a possibilidade de gerenciar bancos de dados Oracle em complemento ao suporte original a SQL Server.</p>
<p>Ficou confuso com essa viagem no tempo? É, não é para menos… A ferramenta originalmente conhecida como DbPro (codinome “DataDude”) passou por muitas mudanças desde que foi lançada. A única constante era o fato de que, para usar a ferramenta, era necessário <strong>comprar um produto “premium”</strong> (Team System até 2008, VS Premium/Ultimate no 2010). E como se não bastassem tantas mudanças, vem aí mais uma mudança radical:</p>
<p><a href="http://msdn.microsoft.com/en-us/data/gg427686" target="_blank"><img style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" alt="image" src="http://blog.lambda3.com.br/wp-content/uploads//2012/02/image1.png" width="148" height="142"></a></p>
<p>SQL Server Data Tools (anteriormente conhecido como SQL Server Developer Tools, codinome “Juneau”) representa a nova versão da ferramenta de banco de dados anteriormente conhecida como DbPro, DataDude, VSTE for Database Professionals, VSTS Database Edition…</p>
<p>Reparou numa coisa estranha? Sim, <strong>agora o DbPro não é mais parte do Visual Studio</strong>. Os recursos de bancos de dados foram movidos para o SQL Server.</p>
<p><em>“Putz, agora ferrou tudo!!!”</em> foi minha reação ao ficar sabendo da mudança. Mas antes de entrar em pânico, entenda o que muda:</p>
<ul>
<li><strong>Pontos positivos</strong>:</li>
<ul>
<li>O DbPro/SSDT agora é <strong>gratuito</strong>. Sim, você leu direito. Gratuito. Você pode baixar o SSDT do site da Microsoft e usá-lo com qualquer SQL Server ao qual você tenha acesso;</li>
<li>Pode ser usado independentemente ou integrado ao Visual Studio (2010 ou Dev11). Mesmo se o seu Visual Studio for o Professional (mas não Express).</li>
</ul>
<li><strong>Pontos negativos</strong>:</li>
<ul>
<li>Como é um novo produto, ainda não está claro quais são as implicações da migração da ferramenta do time de Visual Studio para o time do SQL Server. Agora é aguardar o lançamento do SQL Server 2012 para termos certeza do que mudou (se é que mudou).</li>
</ul>
</ul>
<p>Para mais informações sobre o SSDT, leia o post do Gert Drapers (o Data Dude original, pai do DbPro/”DataDude”): </p>
<p><a href="http://blogs.msdn.com/b/gertd/archive/2011/10/17/sql-server-developers-tools-code-named-juneau-becomes-sql-server-data-tools-ssdt.aspx">http://blogs.msdn.com/b/gertd/archive/2011/10/17/sql-server-developers-tools-code-named-juneau-becomes-sql-server-data-tools-ssdt.aspx</a></p>
<p>Um abraço,<br />&nbsp;&nbsp;&nbsp; Igor</p>
<p><em><font size="1"><sup>(*) Estou para ver empresa que goste de nome de produto comprido como a Microsoft!</sup></font></em></p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/_yonn0A7wRk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/02/mudanas-na-ferramenta-de-alm-para-bancos-de-dados-no-visual-studio-11/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/02/mudanas-na-ferramenta-de-alm-para-bancos-de-dados-no-visual-studio-11/</feedburner:origLink></item>
		<item>
		<title>Binding dos métodos em tempo de compilação ou execução com C#</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/93RIOrYNJ0g/</link>
		<comments>http://blog.lambda3.com.br/2012/02/binding-dos-mtodos-em-tempo-de-compilao-ou-execuo-com-c/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 01:23:56 +0000</pubDate>
		<dc:creator>Giovanni Bassi</dc:creator>
				<category><![CDATA[Engenharia]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/2012/02/binding-dos-mtodos-em-tempo-de-compilao-ou-execuo-com-c/</guid>
		<description><![CDATA[A maneira do C# funcionar é muito interessante, além de lógica. Vejam esse caso. Se tenho esta classe: public class Classe { public static string Estatico(object o) { return Metodo(o); } private static string Metodo(string s) { return "string"; } &#8230; <a href="http://blog.lambda3.com.br/2012/02/binding-dos-mtodos-em-tempo-de-compilao-ou-execuo-com-c/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A maneira do C# funcionar é muito interessante, além de lógica. Vejam esse caso. Se tenho esta classe:</p>
<pre class="brush: csharp;">public class Classe
{
    public static string Estatico(object o)
    {
        return Metodo(o);
    }
    private static string Metodo(string s)
    {
        return "string";
    }
    private static string Metodo(object o)
    {
        return "object";
    }
}
</pre>
<p>Independente do parâmetro que eu passar para o método &#8220;Estático”, ele sempre vai chamar o método “Metodo” com parâmetro object. O que recebe parâmetro string nunca será chamado. Isso acontece porque o binding da chamada acontece em tempo de compilação, e a IL escrita identifica claramente que o método chamado é parâmetro object, já que o com parâmetro string não atende. Ao chamar o método em runtime e passar uma string, a ligação entre o método “Estatico” e “Metodo(object)” já está feita.</p>
<p>Estes testes servem pra confirmar isso:</p>
<pre class="brush: csharp;">[TestMethod]
public void EstaticoString()
{
    Assert.AreEqual("object", Classe.Estatico(""));
}
[TestMethod]
public void EstaticoObject()
{
    Assert.AreEqual("object", Classe.Estatico(1));
}
</pre>
<p>&nbsp;</p>
<p>Existe alguma maneira de fazer com que o método que recebe uma string seja chamado? Existe. Desde que o C# incorporou características dinâmicas, em sua versão 4, é possível atrasar a resolução do overload escolhido para o tempo de execução, deixando de fazê-la em tempo de compilação. Assim, se quisermos que isso aconteça só quando a aplicação estiver rodando, basta trocar o tipo do parâmetro do método “Estatico” de object pra dynamic. Eu preferi criar outro método:</p>
<pre class="brush: csharp;">public static string Dinamico(dynamic d)
{
    return Metodo(d);
}
</pre>
<p>&nbsp;</p>
<p>Esse método não sabem qual overload está sendo chamado em tempo de compilação. Isso só é resolvido quando a aplicação está rodando. Nesse momento, é possível perceber que o parâmetro é uma string e chamar o overload apropriado. </p>
<p>Aqui os testes:</p>
<pre class="brush: csharp;">[TestMethod]
public void DinamicoString()
{
    Assert.AreEqual("string", Classe.Dinamico(""));
}
[TestMethod]
public void DinamicoObject()
{
    Assert.AreEqual("object", Classe.Dinamico(1));
}
</pre>
<p>Interessante, não? </p>
<p>Coloquei todo <a href="https://gist.github.com/1840538" target="_blank">o código no gist</a>. Vejam lá, comentem, forkem, baixem, divirtam-se.</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/93RIOrYNJ0g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/02/binding-dos-mtodos-em-tempo-de-compilao-ou-execuo-com-c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/02/binding-dos-mtodos-em-tempo-de-compilao-ou-execuo-com-c/</feedburner:origLink></item>
		<item>
		<title>Criação de Grupos e Work Items em todos os Team Projects de uma Collection</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/NxrzR86aLMg/</link>
		<comments>http://blog.lambda3.com.br/2012/02/criao-de-grupos-e-work-items-em-todos-os-team-projects-de-uma-collection/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 13:54:06 +0000</pubDate>
		<dc:creator>Vinicius Moura</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[TFS]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/2012/02/criao-de-grupos-e-work-items-em-todos-os-team-projects-de-uma-collection/</guid>
		<description><![CDATA[Pessoal, quero compartilhar com vocês uma experiência que tive recentemente em um cliente. O trabalho consistia na migração do TFS 2008 para o TFS 2010. Para isso inicialmente utilizei a linha de comando TFSConfig import, conseguindo assim migrar todo o &#8230; <a href="http://blog.lambda3.com.br/2012/02/criao-de-grupos-e-work-items-em-todos-os-team-projects-de-uma-collection/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pessoal, quero compartilhar com vocês uma experiência que tive recentemente em um cliente. O trabalho consistia na migração do TFS 2008 para o TFS 2010. Para isso inicialmente utilizei a linha de comando <b><i>TFSConfig import</i></b>, conseguindo assim migrar todo o histórico de Source Control e Work Item Tracking. Em um segundo momento, já no TFS 2010, fizemos a customização do Process Template, adequando o processo do TFS à realidade desse cliente. Nessa customização, houve a necessidade da criação de grupos para os Team Projects atendendo assim ao cenário proposto.
<p>Com isso, o cliente nos solicitou que todos os Team Projects migrados do TFS 2008 (mais ou menos 100 projetos) recebessem o novo processo desenhado (na migração não conseguimos definir esse cenário). Então veio o desafio: como fazer todos esses 100 projetos receberem de uma só vez todos os novos grupos criados e os novos Work Items?
<p>Para realizar tal atividade, utilizei as linhas de comando do TFS, mais especificamente <b><i>TFSSecurity</i></b> para a criação dos grupos e <b><i>witadmin</i></b> para a criação dos novos Work Items. A seguir vou mostrar o passo a passo para a realização dessa atividade.
<p><b>Criação de Grupos nos Team Projects</b>
<p>Para criarmos grupos em todos os Team Projects de uma Collection, utilizei o comando <b><i>TFSSecurity</i></b> associado ao comando do <b><i>FOR</i></b> do <b><i>DOS</i></b>, pois precisava ler um arquivo texto contendo todos os Team Projects e os respectivos grupos a serem criados. Abaixo segue o passo a passo para a execução dessa atividade:
<p>· Criação de arquivo texto – esse arquivo contem todos os Team Projects e os respectivos grupos que serão criados. Para a montagem do mesmo, me conectei ao SQL Server Management Studio e executei a instrução abaixo (conecte-se ao banco de dados com o respectivo nome de sua Collection):
<p>SET NOCOUNT ON
<p>DECLARE @Rows INT
<p>DECLARE @IdCol INT
<p>DECLARE @Project_Id NVARCHAR(512)
<p>SET @Rows = 0
<p>SET @IdCol = 1
<p>CREATE TABLE #Projects
<p>(
<p>idcol INT IDENTITY(1,1) PRIMARY KEY CLUSTERED,
<p>Project_Id NVARCHAR(512)
<p>)
<p>INSERT #Projects
<p>SELECT project_id
<p>FROM tbl_projects
<p>SELECT @Rows = COUNT(*) FROM #Projects
<p>WHILE @IdCol &lt;= @Rows
<p>BEGIN
<p>SELECT @Project_Id = ISNULL(Project_Id,&#8221;)
<p>FROM #Projects
<p>WHERE idcol = @IdCol
<p>IF @Project_Id &lt;&gt; &#8221;
<p>BEGIN
<p>PRINT @Project_Id + &#8216;;Desenvolvimento&#8217;
<p>PRINT @Project_Id + &#8216;;Homologacao&#8217;
<p>PRINT @Project_Id + &#8216;;Qualidade&#8217;
<p>END
<p>SET @IdCol += 1
<p>END
<p>A instrução acima percorrerá todos os Team Projects da Collection e criará os grupos Desenvolvimento, Homologacao e Qualidade. Ao executar o comando, salve o resultado em um arquivo texto (C:\grupos.txt).
<p>· Execução da linha de comando TFSSecurity – com o arquivo texto pronto, vamos utilizar a linha de comando <b><i>TFSSecutiry</i></b> em associação com o comando <b><i>FOR</i></b> do <b><i>DOS</i></b>. Para isso execute a linha de comando no prompt de comando do Visual Studio.
<p>FOR /F &#8220;tokens=1,2 delims=; &#8221; %i in (C:\grupos.txt) DO TFSSecurity /gc &#8220;vstfs:///Classification/TeamProject/%i&#8221; %j /collection:[URLCollectionName]
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/02/clip_image002.jpg" rel="lightbox"><img style="border-bottom: 0px;border-left: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top: 0px;border-right: 0px;padding-top: 0px" border="0" alt="clip_image002" src="http://blog.lambda3.com.br/wp-content/uploads//2012/02/clip_image002_thumb.jpg" width="244" height="54"></a>
<p>Após a execução do comando acima, vemos o resultado no Team Explorer:
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/02/clip_image003.jpg" rel="lightbox"><img style="border-bottom: 0px;border-left: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top: 0px;border-right: 0px;padding-top: 0px" border="0" alt="clip_image003" src="http://blog.lambda3.com.br/wp-content/uploads//2012/02/clip_image003_thumb.jpg" width="244" height="170"></a>
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/02/clip_image005.jpg" rel="lightbox"><img style="border-bottom: 0px;border-left: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top: 0px;border-right: 0px;padding-top: 0px" border="0" alt="clip_image005" src="http://blog.lambda3.com.br/wp-content/uploads//2012/02/clip_image005_thumb.jpg" width="244" height="222"></a>
<p><b>Criação de Work Items nos Team Projects</b>
<p>Para criarmos Work Items em todos os Team Projects de uma Collection, utilizei o comando <b><i>witadmin</i></b> associado ao comando do <b><i>FOR</i></b> do <b><i>DOS</i></b> , pois precisava ler um arquivo texto contendo todos os Team Projects e os respectivos Work Items a serem criados. Abaixo segue o passo a passo para a execução dessa atividade:
<p>· Criação de arquivo texto – esse arquivo contem todos os Team Projects e os respectivos Work Items que serão criados. Para a montagem do mesmo, me conectei ao SQL Server Management Studio e executei a instrução abaixo (conecte-se ao banco de dados com o respectivo nome de sua Collection):
<p>SET NOCOUNT ON
<p>DECLARE @Rows INT
<p>DECLARE @IdCol INT
<p>DECLARE @Project_Name NVARCHAR(512)
<p>SET @Rows = 0
<p>SET @IdCol = 1
<p>CREATE TABLE #Projects
<p>(
<p>idcol INT IDENTITY(1,1) PRIMARY KEY CLUSTERED,
<p>Project_Name NVARCHAR(512)
<p>)
<p>INSERT #Projects
<p>SELECT project_name
<p>FROM tbl_projects
<p>SELECT @Rows = COUNT(*) FROM #Projects
<p>WHILE @IdCol &lt;= @Rows
<p>BEGIN
<p>SELECT @Project_Name = ISNULL(Project_Name,&#8221;)
<p>FROM #Projects
<p>WHERE idcol = @IdCol
<p>IF @Project_Name &lt;&gt; &#8221;
<p>BEGIN
<p>PRINT @Project_Name + &#8216;;Task.xml&#8217;
<p>PRINT @Project_Name + &#8216;;Bug.xml&#8217;
<p>PRINT @Project_Name + &#8216;;Sprint.xml&#8217;
<p>END
<p>SET @IdCol += 1
<p>END
<p>A instrução acima percorrerá todos os Team Projects da Collection e criará os Work Items Task, Bug e Sprint. Ao executar o comando, salve o resultado em um arquivo texto (C:\wis.txt).
<p>· Execução da linha de comando witadmin – com o arquivo texto pronto, vamos utilizar a linha de comando <b><i>witadmin </i></b>em associação com o comando <b><i>FOR</i></b> do <b><i>DOS</i></b>. Para isso execute a linha de comando no prompt de comando do Visual Studio.
<p>FOR /F &#8220;tokens=1,2 delims=; &#8221; %i in (c:\wis.txt) DO witadmin importwitd /collection:[URLCollectionName] /p:%i /f:&#8221;C:\wis\%j&#8221; /v
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/02/clip_image007.jpg" rel="lightbox"><img style="border-bottom: 0px;border-left: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top: 0px;border-right: 0px;padding-top: 0px" border="0" alt="clip_image007" src="http://blog.lambda3.com.br/wp-content/uploads//2012/02/clip_image007_thumb.jpg" width="244" height="45"></a>
<p>Após a execução do comando acima, vemos o resultado no Team Explorer:
<p><a href="http://blog.lambda3.com.br/wp-content/uploads//2012/02/clip_image008.jpg" rel="lightbox"><img style="border-bottom: 0px;border-left: 0px;padding-left: 0px;padding-right: 0px;border-top: 0px;border-right: 0px;padding-top: 0px" border="0" alt="clip_image008" src="http://blog.lambda3.com.br/wp-content/uploads//2012/02/clip_image008_thumb.jpg" width="244" height="192"></a>
<p>Com isso conseguimos migrar todos os Team Projects do TFS 2008 para o TFS 2010, criamos os novos grupos e atualizamos o Process Template.
<p>Abraços e até a próxima,
<p>Vinicius Moura.</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/NxrzR86aLMg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/02/criao-de-grupos-e-work-items-em-todos-os-team-projects-de-uma-collection/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/02/criao-de-grupos-e-work-items-em-todos-os-team-projects-de-uma-collection/</feedburner:origLink></item>
		<item>
		<title>Conversa Rápida</title>
		<link>http://feed.lambda3.com.br/~r/Lambda3Blog/~3/1Hd0uL1Ud58/</link>
		<comments>http://blog.lambda3.com.br/2012/02/conversa-rapida/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 02:37:55 +0000</pubDate>
		<dc:creator>Raphael Molesim</dc:creator>
				<category><![CDATA[Comunidade]]></category>
		<category><![CDATA[Outros]]></category>

		<guid isPermaLink="false">http://blog.lambda3.com.br/?p=2829</guid>
		<description><![CDATA[Algumas semanas o pessoal da Lambda3 participou mais uma vez do conversa rápida organizado pelo pessoal da Adapworks. A ideia do evento é muito bacana, consiste simplesmente em fazer um evento de pequenas apresentações de 5 a 10 minutos para &#8230; <a href="http://blog.lambda3.com.br/2012/02/conversa-rapida/">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Algumas semanas o pessoal da <a href="http://www.lambda3.com.br/" target="_blank">Lambda3</a> participou mais uma vez do conversa rápida organizado pelo pessoal da <a href="http://www.adaptworks.com.br/" target="_blank">Adapworks</a>. A ideia do evento é muito bacana, consiste simplesmente em fazer um evento de pequenas apresentações de 5 a 10 minutos para mostrar algumas ideias e os temas só são conhecidos no momento das palestras.</p>
<p>Na sua última edição <a href="http://twitter.com/raphaelmolesim">eu</a>, <a href="http://twitter.com/giovannibassi" target="_blank">Giovanni Bassi</a> e <a href="http://twitter.com/victorhg" target="_blank">Victor Hugo Germano</a> estivemos presentes. Tivemos 3 pequenas apresentações, duas do Giovanni e do Victor e uma minha. Os vídeos das apresentações estão logo abaixo. Recomendo verem não somente estes vídeos, mas também os <a href="http://www.youtube.com/user/adaptworks?feature=watch" target="_blank">outros vídeos</a> do <a href="http://twitter.com/conversarapida" target="_blank">conversa rápida</a>, aproveite que eles só levam 5 ou 10 minutos.</p>
<p style="text-align: center;"><iframe src="http://www.youtube.com/embed/0e0MkkAyNd4" frameborder="0" width="560" height="315"></iframe></p>
<p style="text-align: center;"><iframe src="http://www.youtube.com/embed/p6c6-rFy2rQ" frameborder="0" width="560" height="315"></iframe></p>
<p style="text-align: center;"><iframe src="http://www.youtube.com/embed/IICpwCBjVeA" frameborder="0" width="560" height="315"></iframe></p>
<p style="text-align: left;">Gostaria de parabenizar o <a href="http://twitter.com/jonasabreu" target="_blank">Jonas Abreu</a> pela organização do evento e que venham muitos outros conversas rápidas!</p>
<img src="http://feeds.feedburner.com/~r/Lambda3Blog/~4/1Hd0uL1Ud58" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lambda3.com.br/2012/02/conversa-rapida/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lambda3.com.br/2012/02/conversa-rapida/</feedburner:origLink></item>
	</channel>
</rss>

