<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Gustavo Vedotti</title>
	<atom:link href="http://agvedotti.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://agvedotti.wordpress.com</link>
	<description>Stay Hungry, Stay Foolish</description>
	<lastBuildDate>Thu, 18 Nov 2010 00:06:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='agvedotti.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/a8327ee11396a6abce6c3f7bad679c6d?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Gustavo Vedotti</title>
		<link>http://agvedotti.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://agvedotti.wordpress.com/osd.xml" title="Gustavo Vedotti" />
	<atom:link rel='hub' href='http://agvedotti.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Rapidinhas: Desabilitar enter (return) como default button ASP.Net</title>
		<link>http://agvedotti.wordpress.com/2010/11/17/desabilitar_enter_default_button_aspnet/</link>
		<comments>http://agvedotti.wordpress.com/2010/11/17/desabilitar_enter_default_button_aspnet/#comments</comments>
		<pubDate>Thu, 18 Nov 2010 00:02:17 +0000</pubDate>
		<dc:creator>agvedotti</dc:creator>
				<category><![CDATA[asp.net]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[cancel]]></category>
		<category><![CDATA[default button]]></category>
		<category><![CDATA[desabilitar]]></category>
		<category><![CDATA[disable]]></category>
		<category><![CDATA[enter]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[return]]></category>

		<guid isPermaLink="false">http://agvedotti.wordpress.com/?p=213</guid>
		<description><![CDATA[Pressionar a tecla enter em um TextBox às vezes pode ter efeitos indesejados como erroneamente disparar o submit de um botão. O médoto abaixo  desabilita o enter em todos os input text da página: $(&#8220;:text&#8221;).keydown(function(event) { if (event.keyCode == &#8217;13&#8242;) { event.preventDefault(); } }); O código é bem simples, utilizei JQuery para isso. A primeira linha [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=213&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Pressionar a tecla <em>enter</em> em um <em>TextBox</em> às vezes pode ter efeitos indesejados como erroneamente disparar o <em>submit</em> de um botão. O médoto abaixo  desabilita o <em>enter</em> em todos os <em>input text </em>da página:</p>
<blockquote><p>$(&#8220;:text&#8221;).keydown(function(event) {</p>
<p style="padding-left:30px;">if (event.keyCode == &#8217;13&#8242;) {</p>
<p style="padding-left:60px;">event.preventDefault();</p>
<p style="padding-left:30px;">}</p>
<p>});</p></blockquote>
<p>O código é bem simples, utilizei <a href="http://jquery.com/" target="_blank">JQuery</a> para isso. A primeira linha &#8220;amarra&#8221; o evento <em>keydown()</em> de todos os <em>input</em> do tipo <em>text</em>. &#8216;:text&#8217; é uma das muitas formas de <em>selectors</em> em JQuery, para uma lista completa consulte: <a href="http://api.jquery.com/category/selectors/" target="_blank">selectors em JQuery</a>.</p>
<p>A segunda linha apenas verifica qual é o código da tecla pressionada, treze é o <em>enter. </em> E a terceira linha cancela a ação que o evento iria disparar. <a href="http://api.jquery.com/event.preventDefault/" target="_blank">PreventDefault()</a> também é um evento em JQuery.</p>
<p>Ta.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agvedotti.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agvedotti.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agvedotti.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agvedotti.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agvedotti.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agvedotti.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agvedotti.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agvedotti.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agvedotti.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agvedotti.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agvedotti.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agvedotti.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agvedotti.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agvedotti.wordpress.com/213/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=213&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agvedotti.wordpress.com/2010/11/17/desabilitar_enter_default_button_aspnet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">agvedotti</media:title>
		</media:content>
	</item>
		<item>
		<title>Rapidinhas: Backup table SQL Server</title>
		<link>http://agvedotti.wordpress.com/2010/10/28/backup-table-sql-server/</link>
		<comments>http://agvedotti.wordpress.com/2010/10/28/backup-table-sql-server/#comments</comments>
		<pubDate>Thu, 28 Oct 2010 11:58:14 +0000</pubDate>
		<dc:creator>agvedotti</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[tabela]]></category>
		<category><![CDATA[table]]></category>

		<guid isPermaLink="false">http://agvedotti.wordpress.com/?p=180</guid>
		<description><![CDATA[Quem nunca precisou fazer backup de tabelas no SQL Server? O código abaixo cria uma nova tabela (BackupTable) idêntica a&#160; declarada no FROM (MyTable), copiando tanto design quanto os dados. SELECT * INTO BackupTable FROM MyTable Dica dada pelo @vieira_eric (Jovem) vulgo Eric Vianna. Ta.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=180&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Quem nunca precisou fazer backup de tabelas no <em>SQL Server</em>? O código abaixo cria uma nova tabela (BackupTable) idêntica a&#160; declarada no FROM (MyTable), copiando tanto <em>design</em> quanto os dados.</p>
<blockquote><p><font color="#646b86" face="Courier New">SELECT *        <br />INTO BackupTable         <br />FROM MyTable</font></p>
</blockquote>
<p>Dica dada pelo @vieira_eric (Jovem) vulgo Eric Vianna.</p>
<p>Ta.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agvedotti.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agvedotti.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agvedotti.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agvedotti.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agvedotti.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agvedotti.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agvedotti.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agvedotti.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agvedotti.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agvedotti.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agvedotti.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agvedotti.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agvedotti.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agvedotti.wordpress.com/180/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=180&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agvedotti.wordpress.com/2010/10/28/backup-table-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">agvedotti</media:title>
		</media:content>
	</item>
		<item>
		<title>Shortcuts e escrita de c&#243;digo</title>
		<link>http://agvedotti.wordpress.com/2010/10/27/shortchuts/</link>
		<comments>http://agvedotti.wordpress.com/2010/10/27/shortchuts/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 15:40:56 +0000</pubDate>
		<dc:creator>agvedotti</dc:creator>
				<category><![CDATA[Padrão de Desenvolvimento]]></category>
		<category><![CDATA[shortcuts]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[sintaxe]]></category>

		<guid isPermaLink="false">http://agvedotti.wordpress.com/?p=183</guid>
		<description><![CDATA[Quando estou codificando, sempre me atento ao layout do mesmo. Como identação, espaços desnecessários, retornos (enter) descenessários, nomenclaturas de variáveis e métodos, etc. Tudo isso é muito importante para se manter um código limpo e&#160; preciso. Outra coisa que fico de olho é na quantidade de linha de utilizada. Quanto menos código digitado me faz [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=183&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><font size="2">Quando estou codificando, sempre me atento ao <em>layout</em> do mesmo. Como identação, espaços desnecessários, retornos (<em>enter</em>) descenessários, nomenclaturas de variáveis e métodos, etc. Tudo isso é muito importante para se manter um código limpo e&#160; preciso.</font></p>
<p><font size="2">Outra coisa que fico de olho é na quantidade de linha de utilizada. Quanto menos código digitado me faz um programador melhor ou mais experiente? Talvez sim, talvez não… As vezes certos blocos de código podem ser representados de uma forma mais sucinta, dependendo da experiência do profissional na linguagem utilizada.</font></p>
<p><font size="2">Isso pode ser um dilema em relação tamanho x qualidade na leitura do código. Quem nunca se deparou com um apanhado de código como esse:</font></p>
<blockquote><p><font color="#646b86">switch (condition)        <br />{         <br />&#160;&#160;&#160; case &quot;cavalo&quot;:         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (System.Configuration.ConfigurationManager.AppSettings[&quot;key1&quot;] == &quot;a&quot; &amp;&amp;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.Configuration.ConfigurationManager.AppSettings[&quot;key2&quot;] == &quot;c&quot;)         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (System.Configuration.ConfigurationManager.AppSettings[&quot;key3&quot;] == &quot;b&quot; &amp;&amp;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.Configuration.ConfigurationManager.AppSettings[&quot;key4&quot;] == &quot;d&quot;)         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; condition = string.Empty;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; break;         <br />&#160;&#160;&#160; case &quot;cachorro&quot;:         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (System.Configuration.ConfigurationManager.AppSettings[&quot;key1&quot;] == &quot;e&quot; &amp;&amp;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.Configuration.ConfigurationManager.AppSettings[&quot;key2&quot;] == &quot;f&quot;)         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (System.Configuration.ConfigurationManager.AppSettings[&quot;key3&quot;] == &quot;g&quot; &amp;&amp;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.Configuration.ConfigurationManager.AppSettings[&quot;key4&quot;] == &quot;h&quot;)         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; condition = string.Empty;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; break;         <br />&#160;&#160;&#160; default:         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; break;         <br />}</font></p>
</blockquote>
<p style="line-height:13pt;margin:0 0 10pt;" class="MsoNormal"><font size="2">Meio confuso? Com certeza perderíamos alguns minutos só para conseguir entender o ele faz. Tudo isso por falta de utilização de chaves, <em>namespace</em> sitaxe desnecessária, confusão nas condições dentro dos <em>ifs</em>. Sem falar que o código parece fazer nada com nada! Não seria melhor algo utilizando mais linhas, contudo que mais legível?</font></p>
<p style="line-height:13pt;margin:0 0 10pt;" class="MsoNormal"><font size="2">Da forma estruturada abaixo está fácil de ser ler e podemos perceber que o código realmente não faz nada! (rs…)</font></p>
<blockquote><p><font color="#646b86">switch (condition)        <br />{         <br />&#160;&#160;&#160; case &quot;cavalo&quot;:         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (ConfigurationManager.AppSettings[&quot;key1&quot;] == &quot;a&quot;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &amp;&amp; ConfigurationManager.AppSettings[&quot;key2&quot;] == &quot;c&quot;)         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (ConfigurationManager.AppSettings[&quot;key3&quot;] == &quot;b&quot;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &amp;&amp; ConfigurationManager.AppSettings[&quot;key4&quot;] == &quot;d&quot;)         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; condition = string.Empty;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; break;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }         <br />&#160;&#160;&#160; case &quot;cachorro&quot;:         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (ConfigurationManager.AppSettings[&quot;key1&quot;] == &quot;e&quot;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &amp;&amp; ConfigurationManager.AppSettings[&quot;key2&quot;] == &quot;f&quot;)         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (ConfigurationManager.AppSettings[&quot;key3&quot;] == &quot;g&quot;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &amp;&amp; ConfigurationManager.AppSettings[&quot;key4&quot;] == &quot;h&quot;)         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; condition = string.Empty;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; break;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }         <br />&#160;&#160;&#160; default:         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; break;         <br />}</font></p>
</blockquote>
<p><font size="2">As linguagens de programação nos permitem certas praticidades para escrever menos código mas mantendo (ou tentando manter) a clareza em sua identificação. Vou demonstrar três sintaxes que conheco e utilizo regularmente, algumas são mais ou menos úteis que outras, comparando-as com a forma “normal” de escrita:</font></p>
<h3>Operadores ternários</h3>
<p style="line-height:13pt;margin:0 0 10pt;" class="MsoNormal">Exemplo em C#.</p>
<blockquote><p style="line-height:13pt;margin:0 0 10pt;" class="MsoNormal"><font color="#646b86">string name = ((condition == &quot;gato&quot;) ? &quot;Tom&quot; : &quot;Jerry&quot;);</font></p>
</blockquote>
<p style="line-height:13pt;margin:0 0 10pt;" class="MsoNormal">Forma “normal”:</p>
<blockquote><p><font color="#646b86">string name = string.Empty;        <br />if (condition == &quot;gato&quot;)         <br />{         <br />&#160;&#160;&#160; name = &quot;Tom&quot;;         <br />}         <br />else         <br />{         <br />&#160;&#160;&#160; name = &quot;Jerry&quot;;         <br />}</font></p>
</blockquote>
<h3>&amp;&amp; lógico para condicionais</h3>
<p>Exemplo em Java script.</p>
<blockquote><p><font color="#646b86">var showMessage = true;        <br />showMessage &amp;&amp; alert(&#8216;uuuuupa!&#8217;);</font></p>
</blockquote>
<p style="line-height:13pt;margin:0 0 10pt;" class="MsoNormal">Forma “normal”:</p>
<blockquote><p><font color="#646b86">var showMessage = true;        <br />if (showMessage) {         <br />&#160;&#160;&#160; alert(&#8216;uuuuupa!&#8217;);         <br />}</font></p>
</blockquote>
<p style="line-height:normal;margin:0;" class="MsoNormal"><span></span></p>
<p style="line-height:normal;margin:0;" class="MsoNormal"><span></span></p>
<p style="line-height:normal;margin:0;" class="MsoNormal"><span><font color="#000000" face="Courier New"></font></span></p>
<h3>Instâncias de classes “temporárias”</h3>
<p>Exemplo em C#.</p>
<h3></h3>
<blockquote><p style="line-height:13pt;margin:0 0 10pt;" class="MsoNormal"><font color="#646b86">Console.WriteLine(new WeatherChannel(&quot;São Paulo”).GetTemperature());</font></p>
</blockquote>
<p style="line-height:13pt;margin:0 0 10pt;" class="MsoNormal">Forma “normal”:</p>
<blockquote><p><font color="#646b86">WeatherChannel wc = new WeatherChannel(“São Paulo”);        <br />string temp = wc.GetTemperature();         <br />Console.WriteLine(temp);</font></p>
</blockquote>
<p style="line-height:normal;margin:0;" class="MsoNormal"><font color="#000000" face="Courier New"><span></span></font></p>
<p style="line-height:normal;margin:0;" class="MsoNormal"><font color="#000000" face="Courier New"><span></span></font></p>
<p style="line-height:normal;margin:0;" class="MsoNormal"><font color="#000000" face="Courier New"><span></span></font></p>
<h3>Conclusão</h3>
<p><font size="2">Tudo vai do gosto e bom censo do <em>developer</em>. O que precisamos ter sempre em mente é que outras pessoas podem dar manutenção em algo que fizemos. Então deixar o código o mais simples e legível possível é algo muito importante e o mínimo que podemos fazer!</font></p>
<p><font size="2">Ta.</font></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agvedotti.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agvedotti.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agvedotti.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agvedotti.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agvedotti.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agvedotti.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agvedotti.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agvedotti.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agvedotti.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agvedotti.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agvedotti.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agvedotti.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agvedotti.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agvedotti.wordpress.com/183/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=183&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agvedotti.wordpress.com/2010/10/27/shortchuts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">agvedotti</media:title>
		</media:content>
	</item>
		<item>
		<title>ASP.Net 4.0 e SEO</title>
		<link>http://agvedotti.wordpress.com/2010/02/23/asp-net-4-0-e-seo/</link>
		<comments>http://agvedotti.wordpress.com/2010/02/23/asp-net-4-0-e-seo/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 01:51:24 +0000</pubDate>
		<dc:creator>agvedotti</dc:creator>
				<category><![CDATA[.net 4.0]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[as.pnet 4.0]]></category>
		<category><![CDATA[meta description]]></category>
		<category><![CDATA[meta keywords]]></category>
		<category><![CDATA[search engine optimization]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://agvedotti.wordpress.com/?p=137</guid>
		<description><![CDATA[SEO (whatta hell)? Primeiramente: SEO? Mas, o que é SEO? Eu também me fiz esta pergunta à alguns meses atrás, quando a equipe de dev. da qual faço parte teve a tarefa de aprimorar e aplicar alguns conceitos de SEO em um grande site de e-commerce nacional. A idéia é bem interessante e vem se [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=137&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3>SEO (<em>whatta hell</em>)?</h3>
<p><font size="2">Primeiramente: SEO? Mas, </font><a href="http://www.jukaaraujo.com.br/post/2010/02/04/O-que-e-SEO.aspx" target="_blank"><font size="2">o que é SEO?</font></a><font size="2"> Eu também me fiz esta pergunta à alguns meses atrás, quando a equipe de dev. da qual faço parte teve a tarefa de aprimorar e aplicar alguns conceitos de SEO em um grande site de e-commerce nacional. A idéia é bem interessante e vem se popularizando cada vez mais por uma razão bem simples: quem está na web quer ser encontrado.</font></p>
<p><font size="2">Por exemplo: Manuel é um padeiro/empresário/programador e sua padaria (Padaria do Portuga) possui um website de e-commerce de venda de roscas de coco. Como padeiro, Manuel quer fazer as melhores roscas, nunca deixando que elas queimem; como empresário, quer que seu site seja visto por todos os amantes de rosca de coco, que quando uma pessoa digitar no google ‘rosca de coco’ ou ‘rosca gostosa de padaria’ seu site seja o primeiro nos resultados, ou pelo menos esteja entre os primeiros; e como programador, ele vai utilizar técnicas e ações de SEO em seu site para que isso aconteça. :)</font></p>
<h3>ASP.Net 4.0</h3>
<p><font size="2">Com o ASP.Net 4.0, a Microsoft trouxe algumas <em>features </em>para auxiliar a utilização de SEO em sites, como por exemplo:</font></p>
<ul>
<li><font size="2">Novas propriedades: <em>Page.MetaKeywords</em> e <em>Page.MetaDescription</em>; </font></li>
<li><font size="2"><em>URL</em> <em>Routing</em> para ASP.Net <em>Web Forms</em>; </font></li>
<li><font size="2">Método: </font><a href="http://www.jukaaraujo.com.br/post/2010/02/08/ResponseRedirectPermanent()-Nova-funcionalidade-de-SEO-no-ASPNET-40.aspx" target="_blank"><font size="2">Response.RedirectPermanent()</font></a> </li>
</ul>
<h4>Novas propriedades: Page.MetaKeywords e Page.MetaDescription</h4>
<p><font size="2"><em>Keywords</em> e <em>Descriptions</em> são Meta Tags utilizadas pelas máquinas de busca (google, yahoo, bing, etc.) para achar e &quot;indexar&quot; as páginas de seu site. Abaixo podemos ver um exemplo de como o Manuel deixou fixo na Default.aspx do site de sua padaria:</font></p>
<p>&lt;<span style="color:#a31515;font-size:10pt;">head</span><span style="color:#0000ff;font-size:10pt;">&gt;      <br /></span><span style="color:#0000ff;font-size:10pt;">&#160;&#160;&#160; &lt;</span><span style="color:#a31515;font-size:10pt;">title</span><span style="color:#0000ff;font-size:10pt;">&gt;</span><span style="font-size:10pt;">Padaria Portuga &#8211; Home Page</span><span style="color:#0000ff;font-size:10pt;">&lt;/</span><span style="color:#a31515;font-size:10pt;">title</span><span style="color:#0000ff;font-size:10pt;">&gt;</span><span style="font-size:10pt;">      <br /></span><span style="color:#0000ff;font-size:10pt;">&#160;&#160;&#160; &lt;</span><span style="color:#a31515;font-size:10pt;">meta</span><span style="font-size:10pt;"> </span><span style="color:#ff0000;font-size:10pt;">name</span><span style="color:#0000ff;font-size:10pt;">=&quot;description&quot;</span><span style="font-size:10pt;"> </span><span style="color:#ff0000;font-size:10pt;">content</span><span style="color:#0000ff;font-size:10pt;">=&quot;As melhores roscas de coco de São Paulo&quot;</span><span style="font-size:10pt;"> </span><span style="color:#0000ff;font-size:10pt;">/&gt;</span><span style="font-size:10pt;">      <br /></span><span style="color:#0000ff;font-size:10pt;">&#160;&#160;&#160; &lt;</span><span style="color:#a31515;font-size:10pt;">meta</span><span style="font-size:10pt;"> </span><span style="color:#ff0000;font-size:10pt;">name</span><span style="color:#0000ff;font-size:10pt;">=&quot;keywords&quot;</span><span style="font-size:10pt;"> </span><span style="color:#ff0000;font-size:10pt;">content</span><span style="color:#0000ff;font-size:10pt;">=&quot;roscas de coco, doce, rosca, coco, padaria&quot;</span><span style="font-size:10pt;"> </span><span style="color:#0000ff;font-size:10pt;">/&gt;      <br /></span><span style="color:#0000ff;font-size:10pt;">&lt;/</span><span style="color:#a31515;font-size:10pt;">head</span><span style="color:#0000ff;font-size:10pt;">&gt;</span></p>
<p><font size="2">Em páginas mais complexas, que ele precisa que o conteúdo das Meta Tags seja dinâmico, ele teve que suar um pouco a camisa (de leve) para fazer. Em sua MasterPage, ele criou um método responsável por escrever as Meta Tags:</font></p>
<div style="font-family:courier new;background:white;color:black;font-size:10pt;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">void</span> WriteMetaTag(<span style="color:blue;">string</span> metaTagKey, <span style="color:blue;">string</span> metaTagValue)</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:#2b91af;">&#160;&#160;&#160; HtmlMeta</span> meta = <span style="color:blue;">new</span> <span style="color:#2b91af;">HtmlMeta</span>();</p>
<p style="margin:0;">&#160;&#160;&#160; meta.Name = metaTagKey;</p>
<p style="margin:0;">&#160;&#160;&#160; meta.Content = metaTagValue;</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">&#160;&#160;&#160; this</span>.Controls.Add(meta);</p>
<p style="margin:0;">}</p>
<p><font face="Georgia">E na página DetalheDoce.aspx, por exemplo, ele fez a chamada ao método de sua MasterPage:</font></p>
<div style="font-family:courier new;background:white;color:black;font-size:10pt;">
<p style="margin:0;"><span style="color:blue;">private</span> <span style="color:blue;">void</span> SetMetaTag(<span style="color:#2b91af;">DoceBE</span> doce)</p>
<p style="margin:0;">{</p>
<p style="margin:0;">&#160;&#160;&#160; ((<span style="color:#2b91af;">MasterPage</span>)<span style="color:blue;">this</span>.Master).WriteMetaTag(<span style="color:#a31515;">&quot;description&quot;</span>, doce.MetaDescription);</p>
<p style="margin:0;">&#160;&#160;&#160; ((<span style="color:#2b91af;"><span style="color:#2b91af;">MasterPage)</span></span><span style="color:blue;">this</span>.Master).WriteMetaTag(<span style="color:#a31515;">&quot;keywords&quot;</span>, doce.MetaKeyWords);</p>
<p style="margin:0;">}</p>
</p></div>
<p><font face="Georgia">Antes do lançamento do ASP.Net 4.0 era assim que o Manuel fazia em seu site. Agora as coisas ficaram mais fáceis, o código está mais simples, mais limpo e o Manuel está mais feliz! Agora, ele precisa apenas usar as novas propriedades em suas páginas:</font></p>
<div style="font-family:courier new;background:white;color:black;font-size:10pt;">
<p style="margin:0;"><span style="color:blue;">private</span> <span style="color:blue;">void</span> SetMetaTag(<span style="color:#2b91af;">DoceBE</span> doce)</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:blue;">&#160;&#160;&#160; this</span>.Title = <span style="color:#a31515;">&quot;Padaria Portuga &#8211; &quot;</span> + doce.MetaDescription;</p>
<p style="margin:0;"><span style="color:blue;">&#160;&#160;&#160; this</span>.MetaDescription = doce.MetaDescription;</p>
<p style="margin:0;"><span style="color:blue;">&#160;&#160;&#160; this</span>.MetaKeywords = doce.MetaKeyWords;</p>
<p style="margin:0;">}</p>
</p></div>
<p><font face="Georgia">Essas propriedades também podem ser definidas na diretiva @Page do .aspx.&#160; E, como funcionam essas propriedades? O elemento head da MasterPage ao ser processado, identifica as propriedades da página e adiciona em si o conteúdo que foi inserido nelas. <em>Goooood</em>! Sobre a segunda nova <em>feature (</em><em>URL</em> <em>Routing</em> para ASP.Net <em>Web Forms</em>), fica para um outro post.</font></p>
<p><font face="Georgia">Espero que tenham gostado das dicas, e… Por hoje é só pessoal.</font></p>
</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agvedotti.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agvedotti.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agvedotti.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agvedotti.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agvedotti.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agvedotti.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agvedotti.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agvedotti.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agvedotti.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agvedotti.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agvedotti.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agvedotti.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agvedotti.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agvedotti.wordpress.com/137/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=137&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agvedotti.wordpress.com/2010/02/23/asp-net-4-0-e-seo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">agvedotti</media:title>
		</media:content>
	</item>
		<item>
		<title>Performance de itera&#231;&#245;es :: while, for, foreach, linq</title>
		<link>http://agvedotti.wordpress.com/2009/02/10/performance-de-iteraes-while-for-foreach-linq/</link>
		<comments>http://agvedotti.wordpress.com/2009/02/10/performance-de-iteraes-while-for-foreach-linq/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 09:28:16 +0000</pubDate>
		<dc:creator>agvedotti</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[Linq]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[foreach]]></category>
		<category><![CDATA[linq]]></category>
		<category><![CDATA[performance iterations]]></category>
		<category><![CDATA[while]]></category>

		<guid isPermaLink="false">http://agvedotti.wordpress.com/?p=99</guid>
		<description><![CDATA[Quem será o mais rápido? Para descobrir isso criei um projeto de teste da seguinte forma: Uma classe com o método main() que instancia a classe de teste e imprime os resultados: 1: class Program 2: { 3:&#160;&#160;&#160;&#160; static void Main(string[] args) 4:&#160;&#160;&#160;&#160; { 5:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; TestePerf teste = new TestePerf(); 6: 7:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Produto f = [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=99&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="color:#656565;"><font color="#000000">Quem será o mais rápido? Para descobrir isso criei um projeto de teste da seguinte forma:</font></span></p>
<p><font color="#000000">Uma classe com o método main() que instancia a classe de teste e imprime os resultados:</font></p>
<blockquote><p><font color="#646b86">1: class Program       <br />2: {        <br />3:&#160;&#160;&#160;&#160; static void Main(string[] args)        <br />4:&#160;&#160;&#160;&#160; {        <br />5:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; TestePerf teste = new TestePerf();        <br />6:        <br />7:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Produto f = teste.listaProdutos[teste.listaProdutos.Count / 2];        <br />8:        <br />9:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; List&lt;Resultado&gt; resultados = new List&lt;Resultado&gt;();        <br />10:        <br />11:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; resultados.Add(teste.AcharLinq(f.idProduto));        <br />12:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; resultados.Add(teste.AcharForeach(f.idProduto));        <br />13:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; resultados.Add(teste.AcharFor(f.idProduto));        <br />14:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; resultados.Add(teste.AcharWhile(f.idProduto));        <br />15:        <br />16:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; resultados.Sort(delegate(Resultado r1, Resultado r2)        <br />17:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />18:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (Convert.ToInt32(r1.ticks) &gt; Convert.ToInt32(r2.ticks))        <br />19:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return 0;        <br />20:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; else        <br />21:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return 1;        <br />22:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; });        <br />23:        <br />24:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; foreach (Resultado r in resultados)        <br />25:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />26:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Console.WriteLine(r.iterador +        <br />27:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;\tTicks:&quot; + r.ticks +        <br />28:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;\tMilisegundos: &quot; + r.miliseg);        <br />29:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }        <br />30:        <br />31:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Console.Read();        <br />32:&#160;&#160;&#160;&#160; }        <br />33:}</font></p>
</blockquote>
<p>Uma classe que será o objeto da coleção percorrida:</p>
<blockquote><p><font color="#646b86">1: class Produto       <br />2: {        <br />3:&#160;&#160;&#160;&#160; public Produto()        <br />4:&#160;&#160;&#160;&#160; {        <br />5:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.idProduto = Guid.NewGuid().ToString();        <br />6:&#160;&#160;&#160;&#160; }        <br />7:        <br />8:&#160;&#160;&#160;&#160; public string idProduto;        <br />9: }</font></p>
</blockquote>
<p><span style="font-weight:bold;" class="Apple-style-span"><span style="font-style:italic;" class="Apple-style-span"></span></span></p>
<p>Uma classe para retornar os resultados:</p>
<blockquote><p><font color="#646b86">1: class Resultado       <br />2: {        <br />3:&#160;&#160;&#160;&#160; public string iterador;        <br />4:&#160;&#160;&#160;&#160; public string ticks;        <br />5:&#160;&#160;&#160;&#160; public string miliseg;        <br />6:        <br />7:&#160;&#160;&#160;&#160; public Resultado(string iterador, string ticks, string miliseg)        <br />8:&#160;&#160;&#160;&#160; {        <br />9:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.iterador = iterador;        <br />10:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.ticks = ticks;        <br />11:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.miliseg = miliseg;        <br />12:&#160;&#160;&#160;&#160; }        <br />13: }</font></p>
</blockquote>
<p>E uma classe que é responsável pela execução do teste:</p>
<blockquote><p><font color="#646b86">1: class TestePerf       <br />2: {        <br />3:&#160;&#160;&#160;&#160; public List&lt;Produto&gt; listaProdutos;        <br />4:&#160;&#160;&#160;&#160; private const int QUANTIDADE = 500000;        <br />5:        <br />6:&#160;&#160;&#160;&#160; public TestePerf()        <br />7:&#160;&#160;&#160;&#160; {        <br />8:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; listaProdutos = new List&lt;Produto&gt;();        <br />9:        <br />10:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.PreencherLista();        <br />11:&#160;&#160;&#160;&#160; }        <br />12:        <br />13:&#160;&#160;&#160;&#160; private void PreencherLista()        <br />14:&#160;&#160;&#160;&#160; {        <br />15:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; for (int i = 0; i &lt; QUANTIDADE; i++)        <br />16:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; listaProdutos.Add(new Produto());        <br />17:&#160;&#160;&#160;&#160; }        <br />18:        <br />19:&#160;&#160;&#160;&#160; public Resultado AcharLinq(string guid)        <br />20:&#160;&#160;&#160;&#160; {        <br />21:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Stopwatch marcador = new Stopwatch();        <br />22:        <br />23:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; marcador.Start();        <br />24:        <br />25:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Produto g = (from f in listaProdutos        <br />26:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where f.idProduto == guid        <br />27:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; select f).FirstOrDefault();        <br />28:        <br />29:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; marcador.Stop();        <br />30:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return new Resultado(        <br />31:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;Linq&quot;, marcador.ElapsedTicks.ToString(),        <br />32:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; marcador.ElapsedMilliseconds.ToString());        <br />33:&#160;&#160;&#160;&#160; }        <br />34:        <br />35:&#160;&#160;&#160;&#160; public Resultado AcharFor(string guid)        <br />36:&#160;&#160;&#160;&#160; {        <br />37:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Stopwatch marcador = new Stopwatch();        <br />38:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; marcador.Start();        <br />39:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Resultado result = null;        <br />40:        <br />41:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; for (int i = 0; i &lt; listaProdutos.Count &#8211; 1; i++)        <br />42:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />43:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (listaProdutos[i].idProduto == guid)        <br />44:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />45:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; marcador.Stop();        <br />46:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; result = new Resultado(        <br />47:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;For&quot;, marcador.ElapsedTicks.ToString(),        <br />48:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; marcador.ElapsedMilliseconds.ToString());        <br />49:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; break;        <br />50:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }        <br />51:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }        <br />52:        <br />53:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return result;        <br />54:&#160;&#160;&#160;&#160; }        <br />55:        <br />56:&#160;&#160;&#160;&#160; public Resultado AcharWhile(string guid)        <br />57:&#160;&#160;&#160;&#160; {        <br />58:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Stopwatch marcador = new Stopwatch();        <br />59:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; marcador.Start();        <br />60:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; int cont = 0;        <br />61:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Resultado result = null;        <br />62:        <br />63:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Não façam isso em casa!         <br />64:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; while (true)        <br />65:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />66:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (listaProdutos[cont++].idProduto == guid)        <br />67:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />68:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; marcador.Stop();        <br />69:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; result = new Resultado(        <br />70:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;While&quot;, marcador.ElapsedTicks.ToString(),        <br />71:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; marcador.ElapsedMilliseconds.ToString());        <br />72:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; break;        <br />73:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }        <br />74:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }        <br />75:        <br />76:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return result;        <br />77:&#160;&#160;&#160;&#160; }        <br />78:        <br />79:&#160;&#160;&#160;&#160; public Resultado AcharForeach(string guid)        <br />80:&#160;&#160;&#160;&#160; {        <br />81:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Stopwatch marcador = new Stopwatch();        <br />82:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; marcador.Start();        <br />83:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Resultado result = null;        <br />84:        <br />85:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; foreach (Produto f in listaProdutos)        <br />86:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />87:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (f.idProduto == guid)        <br />88:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />89:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; marcador.Stop();        <br />90:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; result = new Resultado(        <br />91:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;ForEa&quot;, marcador.ElapsedTicks.ToString(),        <br />92:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; marcador.ElapsedMilliseconds.ToString());        <br />93:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; break;        <br />94:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }        <br />95:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }        <br />96:        <br />97:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return result;        <br />98:&#160;&#160;&#160;&#160; }        <br />99: }</font></p>
</blockquote>
<p>Esta última classe possui quatro métodos públicos que recebem um Guid e o pesquisam em uma coleção de ‘produtos’. O tamanho desta coleção é determinada pela variável constante QUANTIDADE, que no teste está com o valor de quinhentos mil.</p>
<p>Um <span style="font-style:italic;" class="Apple-style-span">Stopwatch</span> foi usado para marcar o tempo, ele é iniciado quando a iteração começa, parado quando o Guid é encontrado e uma classe de resultado é instanciada com as informações da iteração e retornada ao main().</p>
<p>O teste foi executado cinco vezes e foi feita uma média nos resultados. Quem será que ganhou? Senhores, façam suas apostas!</p>
<p>Primeiro teste:   <br /><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://agvedotti.files.wordpress.com/2009/02/image3.png?w=490&#038;h=70" width="490" height="70" /></p>
<p>Segundo teste:   <br /><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://agvedotti.files.wordpress.com/2009/02/image4.png?w=490&#038;h=70" width="490" height="70" /></p>
<p>Terceiro:   <br /><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://agvedotti.files.wordpress.com/2009/02/image5.png?w=490&#038;h=70" width="490" height="70" /></p>
<p>Quarto:   <br /><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://agvedotti.files.wordpress.com/2009/02/image6.png?w=490&#038;h=70" width="490" height="70" /></p>
<p>Último:   <br /><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://agvedotti.files.wordpress.com/2009/02/image7.png?w=490&#038;h=70" width="490" height="70" /></p>
<p>E o vencedor é&#8230;: While! Tenho que assumir que é um dos iteradores que menos escrevo, normalmente utilizo o foreach e o linq para situações que ficariam muito complexas e/ou ‘feias’ em outros iteradores.</p>
<p>A idéia do post é apenas demonstrar a diferença entre cada um e não pregar qual deve ser utilizado, pois depende muito de cada situaçao e preferência do desenvolvedor. Só fica a dica para optarmos para o mais performático quando não houver diferença na utilização entre eles.</p>
<p>&#8211;</p>
<p>Gustavo Vedotti</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agvedotti.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agvedotti.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agvedotti.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agvedotti.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agvedotti.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agvedotti.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agvedotti.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agvedotti.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agvedotti.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agvedotti.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agvedotti.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agvedotti.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agvedotti.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agvedotti.wordpress.com/99/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=99&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agvedotti.wordpress.com/2009/02/10/performance-de-iteraes-while-for-foreach-linq/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">agvedotti</media:title>
		</media:content>

		<media:content url="http://agvedotti.files.wordpress.com/2009/02/image3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://agvedotti.files.wordpress.com/2009/02/image4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://agvedotti.files.wordpress.com/2009/02/image5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://agvedotti.files.wordpress.com/2009/02/image6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://agvedotti.files.wordpress.com/2009/02/image7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Visual Studio 2008 Color Themes</title>
		<link>http://agvedotti.wordpress.com/2009/02/06/visual-studio-2008-color-themes/</link>
		<comments>http://agvedotti.wordpress.com/2009/02/06/visual-studio-2008-color-themes/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 11:01:31 +0000</pubDate>
		<dc:creator>agvedotti</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[visual studio 2008]]></category>
		<category><![CDATA[theme visual studio 2008]]></category>

		<guid isPermaLink="false">http://agvedotti.wordpress.com/2009/02/06/visual-studio-2008-color-themes/</guid>
		<description><![CDATA[Para quem gosta de ser ‘diferente’… Neste blog existem sete temas para baixar, são arquivos em extensões *.vssettings. Para utilizá-los basta abrir o VS2008 ir em Tools &#62; Import and Export Settings Wizard, next, next, next, finish! :) Estou usando esse no momento (Desert Nights): &#8211; Gustavo Vedotti<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=93&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Para quem gosta de ser ‘diferente’… Neste <a href="http://www.winterdom.com/weblog/2007/11/22/VS2008ColorSchemes.aspx">blog</a> existem sete temas para baixar, são arquivos em extensões *.vssettings. Para utilizá-los basta abrir o VS2008 ir em <em>Tools</em> &gt; <em>Import and Export Settings Wizard, next, next, next, finish! :)</em></p>
<p>Estou usando esse no momento (Desert Nights):</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://agvedotti.files.wordpress.com/2009/02/image2.png?w=469&#038;h=368" border="0" alt="image" width="469" height="368" /></p>
<p>&#8211;<br />
Gustavo Vedotti</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agvedotti.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agvedotti.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agvedotti.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agvedotti.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agvedotti.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agvedotti.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agvedotti.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agvedotti.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agvedotti.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agvedotti.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agvedotti.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agvedotti.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agvedotti.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agvedotti.wordpress.com/93/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=93&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agvedotti.wordpress.com/2009/02/06/visual-studio-2008-color-themes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">agvedotti</media:title>
		</media:content>

		<media:content url="http://agvedotti.files.wordpress.com/2009/02/image2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Compilation Error &#8211; BC30456</title>
		<link>http://agvedotti.wordpress.com/2008/12/30/compilation-error-bc30456/</link>
		<comments>http://agvedotti.wordpress.com/2008/12/30/compilation-error-bc30456/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 17:48:45 +0000</pubDate>
		<dc:creator>agvedotti</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[compilation error]]></category>

		<guid isPermaLink="false">http://agvedotti.wordpress.com/?p=76</guid>
		<description><![CDATA[(último post do ano, uhu!). Ontem me deparei com o seguinte erro: Server Error in &#8216;/&#8217; Application. Compilation Error Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. Compiler Error Message: BC30456: &#8216;InitializeCulture&#8217; is not a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=76&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>(último post do ano, uhu!). Ontem me deparei com o seguinte erro:</p>
<blockquote>
<h3>Server Error in &#8216;/&#8217; Application.</h3>
<h3>
<hr size="1" /></h3>
<h4><em>Compilation Error</em></h4>
<p><strong>Description: </strong>An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.<br />
<strong>Compiler Error Message: </strong>BC30456: &#8216;InitializeCulture&#8217; is not a member of &#8216;ASP.login_alterasenha_aspx&#8217;.</p></blockquote>
<p>Ele começou a acontecer depois que gerei uma versão de publicação do website, conforme a tela abaixo:</p>
<p><img style="display:inline;border:0 initial initial;" src="http://agvedotti.files.wordpress.com/2008/12/image.png?w=442&#038;h=292" border="0" alt="image" width="442" height="292" /></p>
<p>Antes o site era deixado no servidor sem estar compilado: .vb (código-fonte) e .aspx (páginas), desta forma o erro não acontecia, o site funcionava perfeitamente. Mas como sabemos isso não é muito aconselhável por questões de segurança e performance (para mais detalhes: <a title="http://msdn.microsoft.com/en-us/library/377y0s6t.aspx" href="http://msdn.microsoft.com/en-us/library/377y0s6t.aspx">http://msdn.microsoft.com/en-us/library/377y0s6t.aspx</a>).</p>
<p>A procura do motivo do erro achei o seguinte <a href="http://social.msdn.microsoft.com/Forums/en-US/clr/thread/54a40a36-209a-46ee-b834-df946532719f/">post</a> com algumas possíveis soluções, mas nenhuma que solucionasse meu problema. Voltando ao código e algumas horinhas quebrando a cabeça, notei que a página que estava dando erro: AlteraSenha.aspx, implementava a classe Login_AlteraSenha, conforme a diretiva abaixo:</p>
<p><em>&lt;%@ Page Language=&#8221;VB&#8221; MasterPageFile=&#8221;~/MaterPages/Default2.master&#8221; AutoEventWireup=&#8221;false&#8221;<br />
CodeFile=&#8221;AlteraSenha.aspx.vb&#8221; <strong>Inherits=&#8221;Login_AlteraSenha&#8221;</strong> %&gt;</em></p>
<p>Ao pesquisar por essa classe, descobri que outra página também a implementava:</p>
<p><em>&lt;%@ Page Language=&#8221;VB&#8221; MasterPageFile=&#8221;~/MaterPages/Default2.master&#8221; AutoEventWireup=&#8221;false&#8221;<br />
CodeFile=&#8221;NovaRevendaLogin.aspx.vb&#8221; <strong>Inherits=&#8221;Login_AlteraSenha&#8221;</strong> %&gt;</em></p>
<p>O que fiz? Alterei a segunda página, fazendo-a implementar seu respectivo <em>code-behind</em> e ‘<em>voalá’</em>… Gerei uma nova versão publicada sem erros! Por algum motivo a compilação/publicação do ASP.NEt se confunde quando duas páginas referenciam a mesma classe como <em>code-behind</em> (algo não muito comum de se fazer), bom né?</p>
<p>Feliz ano novo! :)</p>
<p>&#8211;<br />
Gustavo Vedotti</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agvedotti.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agvedotti.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agvedotti.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agvedotti.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agvedotti.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agvedotti.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agvedotti.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agvedotti.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agvedotti.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agvedotti.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agvedotti.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agvedotti.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agvedotti.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agvedotti.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=76&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agvedotti.wordpress.com/2008/12/30/compilation-error-bc30456/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">agvedotti</media:title>
		</media:content>

		<media:content url="http://agvedotti.files.wordpress.com/2008/12/image.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Virtual Tech Days</title>
		<link>http://agvedotti.wordpress.com/2008/12/08/virtual-tech-days/</link>
		<comments>http://agvedotti.wordpress.com/2008/12/08/virtual-tech-days/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 12:10:06 +0000</pubDate>
		<dc:creator>agvedotti</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[commerce server]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://agvedotti.wordpress.com/?p=50</guid>
		<description><![CDATA[No último mês de novembro ocorreu uma edição do Virtual Tech Days, uma espécia de convenção on-line feita pela Microsoft, nos dias 24, 25 e 26. As apresentações foram divididas nas seguintes categorias: Dia 24 Designer Dia 25 Web Development (For Developers) Database Development SQL Server (For Developers) Cloud Computing &#38; Software + Services (For [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=50&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>No último mês de novembro ocorreu uma edição do <em>Virtual Tech Days</em>, uma espécia de convenção <em>on-line</em> feita pela <em>Microsoft</em>, nos dias 24, 25 e 26. As apresentações foram divididas nas seguintes categorias:</p>
<p>Dia 24</p>
<ul>
<li><em>Designer</em> </li>
</ul>
<p>Dia 25</p>
<ul>
<li><em>Web Development (For Developers)</em>
<li><em>Database Development SQL Server (For Developers)</em>
<li><em>Cloud Computing &amp; Software + Services (For Developers)</em>
<li><em>Save Datacentre Cost through Integrated Physical &amp; Virtual Management (For IT Pros)</em>
<li><em>Building a Powerful and Optimized Enterprise Solution on Windows Platform (For IT Pros) </em></li>
</ul>
<p>Dia 26</p>
<ul>
<li><em>Client Development (For Developers)</em>
<li><em>Tools (For Developers)</em>
<li><em>Chalk Talks, Hands-on-Labs &amp; Showcase (For Developers)</em>
<li><em>SQL Server Administration (For IT Pros)</em>
<li><em>Unified Communication (For IT Pros)</em> </li>
</ul>
<p>Algumas apresentações que recomendo:</p>
<ul>
<li><em>Architecting Rich Internet Ecommerce Applications Using Silverlight &amp; <strong>Commerce Server</strong></em>
<li><em>Building Data-Driven Applications with Silverlight 2 and the new Silverlight Control Pack</em>
<li><em>Internet Explorer 8 for Web Developers</em> </li>
</ul>
<p>O bom nisso tudo é que eles disponibilizaram as apresentações e vídeos para download, basta ter um <em>Passport Live </em>=<em>)</em> Para quem se interessar o endereço é esse: <a href="http://www.virtualtechdays.com">http://www.virtualtechdays.com</a></p>
<p>&#8211;<br />Gustavo Vedotti</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agvedotti.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agvedotti.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agvedotti.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agvedotti.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agvedotti.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agvedotti.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agvedotti.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agvedotti.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agvedotti.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agvedotti.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agvedotti.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agvedotti.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agvedotti.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agvedotti.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=50&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agvedotti.wordpress.com/2008/12/08/virtual-tech-days/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">agvedotti</media:title>
		</media:content>
	</item>
		<item>
		<title>Grupo de discuss&#227;o sobre Commerce Server</title>
		<link>http://agvedotti.wordpress.com/2008/11/25/grupo-de-discusso-sobre-commerce-server/</link>
		<comments>http://agvedotti.wordpress.com/2008/11/25/grupo-de-discusso-sobre-commerce-server/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 16:50:48 +0000</pubDate>
		<dc:creator>agvedotti</dc:creator>
				<category><![CDATA[commerce server]]></category>

		<guid isPermaLink="false">http://agvedotti.wordpress.com/2008/11/25/grupo-de-discusso-sobre-commerce-server/</guid>
		<description><![CDATA[Um amigo de trabalho especialista em Commerce Server, teve a iniciativa de criar um grupo de discussão sobre Commerce Server específico para o mercado brasileiro. O grupo foi criado para troca de experiência, centralização de conhecimento, resoluções de problemas, divulgação de empresas e profissionais que trabalham com Commerce Server e divulgação de cursos e eventos. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=26&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Um amigo de trabalho especialista em Commerce Server, teve a iniciativa de criar um grupo de discussão sobre Commerce Server específico para o mercado brasileiro.</p>
<p>O grupo foi criado para troca de experiência, centralização de conhecimento, resoluções de problemas, divulgação de empresas e profissionais que trabalham com Commerce Server e divulgação de cursos e eventos.</p>
<p>Para maiores informações basta acessaro site: <a href="http://www.commerceserver.com.br">www.commerceserver.com.br</a>.</p>
<p>Até</p>
<p>&#8211;<br />
Gustavo Vedotti</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agvedotti.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agvedotti.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agvedotti.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agvedotti.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agvedotti.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agvedotti.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agvedotti.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agvedotti.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agvedotti.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agvedotti.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agvedotti.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agvedotti.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agvedotti.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agvedotti.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=26&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agvedotti.wordpress.com/2008/11/25/grupo-de-discusso-sobre-commerce-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">agvedotti</media:title>
		</media:content>
	</item>
		<item>
		<title>Quest&#245;es que dever&#237;amos saber</title>
		<link>http://agvedotti.wordpress.com/2008/11/19/questes-que-deveramos-saber/</link>
		<comments>http://agvedotti.wordpress.com/2008/11/19/questes-que-deveramos-saber/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 18:21:16 +0000</pubDate>
		<dc:creator>agvedotti</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://agvedotti.wordpress.com/?p=6</guid>
		<description><![CDATA[  Mesmo sendo meu primeiro post, deixarei de lado as apresentações e iniciações e mãos na massa! Este post faz parte de uma sequência de aproximandamente sete, que pretendo escrever semanalmente, todos fazendo referência a um artigo um tanto quanto antigo do Scott Hanselman, de 2005. O artigo fala sobre algumas perguntas &#8220;básicas&#8221; que um [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=6&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p> </p>
<p>Mesmo sendo meu primeiro post, deixarei de lado as apresentações e iniciações e mãos na massa! Este post faz parte de uma sequência de aproximandamente sete, que pretendo escrever semanalmente, todos fazendo referência a um artigo um tanto quanto antigo do <a href="http://www.hanselman.com/blog/WhatGreatNETDevelopersOughtToKnowMoreNETInterviewQuestions.aspx">Scott Hanselman</a>, de 2005. O artigo fala sobre algumas perguntas &#8220;básicas&#8221; que um bom profissional na área de desenvolvimento de software deveria saber.</p>
<p><strong><em>1 &#8211; Everyone who writes code</em></strong></p>
<p><strong><em>Describe the difference between a Thread and a Process?</em></strong></p>
<blockquote><p>Um processo nada mais é do que um ambiente (armazenando recursos) para a execução de um programa.</p>
<p>Mais especificamente, um processo contém as seguintes informações:</p>
<ul>
<li>Um <em>private virtual address space</em>, que é uma série de endereços virtuais de memória que o processo pode usar;</li>
<li>Um executável, representando o código inicial mapeado para o endereço virtual do processo;</li>
<li>Uma lista de recursos do sistema, acessíveis a todas a threads do processo;</li>
<li>Um contexto de segurança chamado <em>access token </em>que identifica o usuário, grupos de segurança e privilégios;</li>
<li>Um identificador único chamado <em>PID (process ID);</em></li>
<li>Pelo menos uma thread de execução.</li>
</ul>
<p>Já as threads (ou segmenos, como alguns livros traduzem, argh!) são as entidades que o Windows agenda para execução. Como citado acima, os processos precisam ter <strong>pelo menos </strong>uma thread de execução. Do contrário, os processos não irão executar nada!</p>
<p>Uma thread inclui os componentes listados abaixo:</p>
<ul>
<li>Uma série de registros representando o estado no processador;</li>
<li>Dois stacks, um para excução enquanto estiver em kernel mode e outro enquanto estiver em user mode;</li>
<li>Uma área de armazenagem local chamada de <em>TLS (thread-local storage);</em></li>
<li>Um identificador único chamado Thread ID;</li>
<li>Algumas vezes contém o próprio contexto de segurança, principalmente em aplicações multithreaded. (<a href="http://weblogs.asp.net/andrenobre/archive/2008/08/06/windbg-introdu-231-227-o-ao-debugging-pt-br.aspx">André Nobre,</a> 2008)</li>
</ul>
</blockquote>
<p><strong><em></em></strong></p>
<p><strong><em>What is a Windows Service and how does its lifecycle differ from a &#8220;standard&#8221; EXE?</em></strong></p>
<p>É uma aplicação de longa execução que roda em sua própria sessão do Windows, não possuem interface e nem gera uma saída visual, ideal para ser utilida em servidores. Pode ser executada com um contexto de segurança diferente do usuário que está &#8220;logado&#8221; na máquina.</p>
<p>Seu ciclo de vida é controlado pelo &#8220;<em>Service Control Manager</em>&#8220;, onde se pode suspender, pausar ou iniciar sua execução.</p>
<p><em><strong><br />
What is the maximum amount of memory any single process on Windows can address? Is this different than the maximum virtual memory for the system? How would this affect a system design?</strong></em></p>
<blockquote><p><em>Virtual Memory</em> funciona mais ou menos como uma visão simplificada da memória física. Um processo enxerga apenas o seu <em>private virtual address space</em>, de uma maneira linear e organizada. O gerenciador de memória então é o responsável por mapear estes endereços de memória para os endereços físicos de maneira correta.</p>
<p><img style="border:0;" src="http://weblogs.asp.net/blogs/andrenobre/WindowsLiveWriter/WinDBGMemoryIIntroduo_A099/memoria_thumb.jpg" border="0" alt="memoria" width="240" height="139" /></p>
<h6>Mapeamento de memória virtual (esq.) para física (dir.)</h6>
<p>A capacidade da memória virtual varia de acordo com a plataforma de hardware. Se fizermos a conta, plataformas 32-bit podem alocar no máximo 4Gb (2^32). Por padrão, o Windows aloca metade deste espaço para utilização do sistema operacional. Portanto, a outra metade apenas é utilizada para outros processos.</p>
<p>E claro, como quase tudo, temos uma saída para mudar estes valores. Em alguns casos, 2 Gb para o sistema operacional pode parecer muito. É possível então especificar o valor de 1Gb para o sistema operacional e 3 Gb para processos, através configuração do boot (Boot.ini). Existe ainda uma outra opção, <em>Address Windowing Extesions</em>, que permite que aplicações 32-bit utilizem 64Gb de memória física em 2Gb de espaço de endereço virtual. (<a href="http://weblogs.asp.net/andrenobre/archive/2008/09/24/windbg-memory-i-introdu-231-227-o.aspx">André Nobre</a>, 2008).</p></blockquote>
<p><strong><em><br />
What is the difference between an EXE and a DLL?</em></strong></p>
<p>Fundamentalmente são a mesma coisa, um conjunto de instruções/funções criadas para efetuar operações, a diferença está em como o Windows interage sobre eles.</p>
<ul>
<li>DLL (<em>Dynamic Link Library</em>) &#8211; Quando o Windows carrega uma DLL, ela fica a espera de ser referenciada e usada por uma aplicação (por exemplo um EXE).</li>
<li>EXE (<em>Extensible Execute File</em>) &#8211; Possui um ponto de entrada (por exemplo o main()) que inicia sua execução, criando um processo onde funções contidas em DLLs podem ser utilizadas.</li>
</ul>
<p><strong><em><br />
What is strong-typing versus weak-typing? Which is preferred? Why?</em></strong></p>
<p>Nas lingaugens do tipo strong-typing (C#, Java) as conversões, ou <em>castings</em>, devem ser feitas explicitamente, caso contrário ocorrerá um erro na compilação. Por exemplo:</p>
<p>string valor = 10.ToString();<br />
string valor = 10; //Ocorrerá um erro de compilação</p>
<p>Já em linguagens do tipo weak-typing (Pearl), as conversões são feitas implícitamente. O segundo exemplo acima não iria causar erro.</p>
<p>Em questão de preferência vai muito do gosto da pessoa, eu prefiro as strong-typing pelos seguintes motivos:</p>
<ul>
<li><span style="color:#656565;">Trabalho com C# :)</span></li>
<li><span style="color:#656565;">Em questão de desempenho, podemos ter um certo ganho se pensarmos que o trabalho de analisar se a conversão será possível ou não ficará com o programa no momento da execução.</span></li>
<li><span style="color:#656565;">E evitar possíveis erros de conversão que podem acontecer no momento da execução<br />
</span></li>
</ul>
<p><em><strong>C</strong><strong>orillian&#8217;s product is a &#8220;Component Container.&#8221; Name at least 3 component containers that ship now with the Windows Server Family.</strong></em></p>
<p>Primeiramente o que é <em>Component Container</em>:</p>
<blockquote>
<ul>
<li>Containers provide services to components that execute within the container &#8220;execution space&#8221;.</li>
<li>Containers may provide network addressability to a component. i.e. transform a component into a service.</li>
<li>Containers may help the component enable one or more service endpoints that define the protocol, transport and format.</li>
<li>Containers may provide an platform abstraction.</li>
<li>Containers may also provide invocation management to components that live within or without the container execution space. (Really important as we will see in the weeks ahead)</li>
<li>Containers may be able to interact with other containers in a wide variety of &#8220;quality attribute&#8221; use cases like availiability (<a href="http://blogs.msdn.com/nnaidu/archive/2006/05/24/606518.aspx">Only Indigo</a>, s.d.)</li>
</ul>
</blockquote>
<p><span style="color:#697c83;">Tanto <em>ASP.NET Web Forms</em> quanto rich <em>clien Windows Forms</em> são <em>component containers</em> visuais.</span></p>
<p><strong><em><br />
What is a PID? How is it useful when troubleshooting a system?</em></strong></p>
<blockquote><p>Each process running in Microsoft Windows is assigned a unique decimal number called the <em>process ID</em>, or <em>PID</em>. This number is used to specify the process when attaching a debugger to it. (<a href="http://msdn.microsoft.com/en-us/library/cc266349.aspx">MSDN</a>, s.d.)</p></blockquote>
<p>Outra utilização é com a ferramenta WinDBG, em certos momentos podemos utilizar o PID para identificar um certo processo.</p>
<p><img style="border:0;" src="http://agvedotti.files.wordpress.com/2008/11/image.png?w=425&#038;h=471" border="0" alt="" width="425" height="471" /> <br />
<span style="font-size:xx-small;"><em>Gerenciador de tarefas/Processos</em></span></p>
<p><strong><em><br />
How many processes can listen on a single TCP/IP port?</em></strong></p>
<p>Apenas um processo, é um pra um. A porta TC/IP suporta apenas um listen, e um listen é usado por um processo.</p>
<p><strong><em><br />
What is the GAC? What problem does it solve?</em></strong></p>
<p>Qualquer computador que possua o <em>commom language runtime</em> (CLR) instalado possui uma área de armazenamento de código chamada <em>global assembly cache</em>, que é utilizada especificamente para compartilhar assemblies entre aplicações.</p>
<p>Motivos para armazenar <em>assemblies</em> no <em>global assembly cache</em>:</p>
<ul>
<li>Localização compartilhada &#8211; <em>Assemblies</em> que podem ser usados entre diversas aplicações. Exemplo, os <em>assemblies</em> do <em>System.*</em></li>
<li>Segurança &#8211; Normalmente administradores protegem o diretório WINNT, local onde o<em> global assembly cache</em> fica (C:\Windows\assembly), usando o <em>Access Control List</em> (<a href="http://msdn.microsoft.com/en-us/library/aa374872(VS.85).aspx">ACL</a>) para controle de acesso de escrita e execução.</li>
<li>Versionamento paralelo &#8211; Pode-se manter no <em>global assembly cache</em> várias cópias de um assembly com o mesmo nome mas diferente versão.</li>
<li>Localização adicional &#8211; O <em>commom language runtime</em> verifica primeiramente o <em>global assembly cache </em>por um assembly que foi requisitado antes de usar um arquivo físico referenciado.</li>
</ul>
<p><img style="border:0;" src="http://agvedotti.files.wordpress.com/2008/11/image-thumb.png?w=573&#038;h=475" border="0" alt="image" width="573" height="475" /> <br />
<em><span style="font-size:xx-small;">Localização do GAC</span></em></p>
<p>Até a próxima e um abraço pro gaiteiro.</p>
<p>&#8211;<br />
Gustavo Vedotti</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agvedotti.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agvedotti.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agvedotti.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agvedotti.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agvedotti.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agvedotti.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agvedotti.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agvedotti.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agvedotti.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agvedotti.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agvedotti.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agvedotti.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agvedotti.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agvedotti.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agvedotti.wordpress.com&amp;blog=5479342&amp;post=6&amp;subd=agvedotti&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agvedotti.wordpress.com/2008/11/19/questes-que-deveramos-saber/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">agvedotti</media:title>
		</media:content>

		<media:content url="http://weblogs.asp.net/blogs/andrenobre/WindowsLiveWriter/WinDBGMemoryIIntroduo_A099/memoria_thumb.jpg" medium="image">
			<media:title type="html">memoria</media:title>
		</media:content>

		<media:content url="http://agvedotti.files.wordpress.com/2008/11/image.png" medium="image" />

		<media:content url="http://agvedotti.files.wordpress.com/2008/11/image-thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
	</channel>
</rss>
