<?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/"
	>

<channel>
	<title>Programaticamente falando</title>
	<atom:link href="http://higorcesar.com.br/lang/en-us/feed" rel="self" type="application/rss+xml" />
	<link>http://higorcesar.com.br</link>
	<description>.NET,C#, CLR,CLI,Boas práticas,Arquitetura,Agile</description>
	<lastBuildDate>Tue, 08 May 2012 18:39:41 +0000</lastBuildDate>
	<language>en-us</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>AppHarbor : parte I</title>
		<link>http://higorcesar.com.br/lang/en-us/appharbor-parte-i</link>
		<comments>http://higorcesar.com.br/lang/en-us/appharbor-parte-i#comments</comments>
		<pubDate>Sun, 06 May 2012 11:17:00 +0000</pubDate>
		<dc:creator>higor.cesar</dc:creator>
				<category><![CDATA[Arquitetura]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[PAAS]]></category>
		<category><![CDATA[Trabalho]]></category>
		<category><![CDATA[AppHarbor]]></category>
		<category><![CDATA[Build contínuo]]></category>
		<category><![CDATA[Heroku]]></category>
		<category><![CDATA[Nuvem]]></category>

		<guid isPermaLink="false">http://higorcesar.com.br/?p=627&#038;lang=pt-br</guid>
		<description><![CDATA[Olá pessoal, essa semana conheci o AppHarbor, o AppHarbor é um PAAS que permite executar todas as etapas necessárias para a publicação de uma aplicação .NET, se você já escutou falar do heroku então você vai perceber rapidamente que o AppHarbor é a solução com suporte ao framework .NET. Pra iniciar é necessário criar uma [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal, essa semana conheci o <a href="https://appharbor.com">AppHarbor</a>, o AppHarbor é um <a href="http://pt.wikipedia.org/wiki/Plataforma_como_servi%C3%A7o">PAAS</a> que permite executar todas as etapas necessárias para a publicação de uma aplicação .NET, se você já escutou falar do <a href="http://www.heroku.com/">heroku</a> então você vai perceber rapidamente que o AppHarbor é a solução com suporte ao framework .NET. Pra iniciar é necessário criar uma conta, temos a opção do plano grátis, após criar a conta vamos configurar uma aplicação asp.net mvc de exemplo versionada no <a href="https://bitbucket.org/">bitbucket</a>.   <strong>1-Nova applicação <em>HelloWorld </em>no AppHarbor</strong> <a href="http://higorcesar.com.br/wp-content/uploads/2012/05/AppNova.jpg"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" title="AppNova" src="http://higorcesar.com.br/wp-content/uploads/2012/05/AppNova_thumb.jpg" alt="AppNova" width="476" height="213" border="0" /></a> <strong> 2-Criar o repositório HelloWorld no bitbucket </strong> <a href="http://higorcesar.com.br/wp-content/uploads/2012/05/RepositorioNovoBitBucket.jpg"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" title="RepositorioNovoBitBucket" src="http://higorcesar.com.br/wp-content/uploads/2012/05/RepositorioNovoBitBucket_thumb.jpg" alt="RepositorioNovoBitBucket" width="464" height="362" border="0" /></a></p>
<p align="left"><strong>3-Gerar a url de build </strong>Agora vamos copiar a url do repositório gerada pelo bitbucket, no meu caso a url é</p>
<blockquote>
<p align="left"><a href="https://bitbucket.org/higorcesar/helloworld">https://bitbucket.org/higorcesar/helloworld</a></p>
</blockquote>
<p align="left"><span style="background-color: #f9f9f9;">agora o próximo passo e acessar a aplicação no AppHarbor e clicar no link BuildURL.</span></p>
<p align="left"><span style="background-color: #f9f9f9;"><strong>4- Adicionar o serviço do AppHarbor no Bitbucket</strong></span></p>
<p align="left">    Para isso devemos acessar o menu admin do bitbucket e clicar no item services do menu lateral esquerdo. Para obter os dados necessários basta usar a url gerada durante o BuildURL, minha url de exemplo é:</p>
<blockquote>
<p align="left"><a title="https://appharbor.com:443/applications/helloworld-125/builds?authorization=uRlrJD14REWvvL0SoQULTK2hBhU1OZ1Gj%2f2qwoKsnUc%3d" href="https://appharbor.com:443/applications/helloworld-125/builds?authorization=uRlrJD14REWvvL0SoQULTK2hBhU1OZ1Gj%2f2qwoKsnUc%3d">https://appharbor.com:443/applications/helloworld-125/builds?authorization=uRlrJD14REWvvL0SoQULTK2hBhU1OZ1Gj%2f2qwoKsnUc%3d</a></p>
</blockquote>
<p align="left"><span style="background-color: #f9f9f9;">no campo token devemos colocar o valor da querystring authorization, no meu caso o valor é: <strong>uRlrJD14REWvvL0SoQULTK2hBhU1OZ1Gj%2f2qwoKsnUc%3d</strong>, o nome do projeto também pode ser obtido através dessa url, no noddo exemplo o valor é:<strong> helloworld-125, </strong>agora basta salvar as alterações.</span></p>
<p align="left"><span style="background-color: #f9f9f9;">O padrão da url gerada durante o build é:</span></p>
<p align="center"><strong><em><a href="https://appharbor.com/application/{project}/builds?authorization={token">https://appharbor.com/application/{project}/builds?authorization={token</a>} </em></strong></p>
<div align="left"><strong>5- Adicionar o usuário do AppHarbor no repositório</strong></div>
<p align="left">    Agora vamos acessar o menu <em>Access Management </em>e dar acesso de leitura para o usuário <em>apphb.</em></p>
<p align="left">
<p align="left">Pronto! já podemos testar a integração do AppHarbor, basta realizar um push para o repositório do bitbucket.</p>
<p align="left">
<p align="left"><strong>6- Push na aplicação asp.net mvc </strong> <a href="http://higorcesar.com.br/wp-content/uploads/2012/05/HelloWorldAspNetMvc.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="HelloWorldAspNetMvc" src="http://higorcesar.com.br/wp-content/uploads/2012/05/HelloWorldAspNetMvc_thumb.png" alt="HelloWorldAspNetMvc" width="507" height="310" border="0" /></a></p>
<p><strong> 6-Build!Build!Build! </strong> <a href="http://higorcesar.com.br/wp-content/uploads/2012/05/AppHarbor-build1.jpg"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="AppHarbor-build1" src="http://higorcesar.com.br/wp-content/uploads/2012/05/AppHarbor-build1_thumb.jpg" alt="AppHarbor-build1" width="507" height="257" border="0" /></a>   <strong>7-Acessando a aplicação publicada</strong>Para acessar a aplicação publicada basta navegar até o menu hostnames e lá está a url da aplicação, a minha url é</p>
<p align="center"><a href="http://helloworld-125.apphb.com/">http://helloworld-125.apphb.com/</a></p>
<p align="left">Por hoje é só pessoal, no próximo post veremos como rodar testes unitários durante o build. Abraços!</p>
]]></content:encoded>
			<wfw:commentRss>http://higorcesar.com.br/lang/en-us/appharbor-parte-i/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entity Framework: The property &#8216;xx&#8217; on type &#8216;xx&#8217; cannot be set because the collection is already set to an EntityCollection</title>
		<link>http://higorcesar.com.br/lang/en-us/entity-framework-the-property-xx-on-type-xx-cannot-be-set-because-the-collection-is-already-set-to-an-entitycollection</link>
		<comments>http://higorcesar.com.br/lang/en-us/entity-framework-the-property-xx-on-type-xx-cannot-be-set-because-the-collection-is-already-set-to-an-entitycollection#comments</comments>
		<pubDate>Tue, 01 May 2012 15:14:00 +0000</pubDate>
		<dc:creator>higor.cesar</dc:creator>
				<category><![CDATA[.NET 4.0]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[Entity Framework; EF 4.3; EF 4.3.1]]></category>

		<guid isPermaLink="false">http://higorcesar.com.br/?p=614&#038;lang=en-us</guid>
		<description><![CDATA[Olá pessoal, depois de muito tempo sem falar sobre EntityFramework vou falar sobre o bug do titulo. Problema Vamos usar o Entity Framework 4.3.1 com o seguinte modelo public class Blog { public int BlogID { get; set; } public string Titulo { get; set; } public string Url { get; set; } public virtual [...]]]></description>
			<content:encoded><![CDATA[<p><!--:pt-->Olá pessoal, depois de muito tempo sem falar sobre EntityFramework vou falar sobre o bug do titulo.</p>
<h3>Problema</h3>
<p>Vamos usar o Entity Framework 4.3.1 com o seguinte modelo</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.12%; font-family: 'Courier New', courier, monospace; direction: ltr; height: 264px; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> Blog</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">{</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> BlogID { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> Titulo { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> Url { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">virtual</span> ICollection Posts { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100.16%; font-family: 'Courier New', courier, monospace; direction: ltr; height: 19px; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">}</pre>

<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> Post</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">{</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">int</span> BlogID { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">int</span> PostID { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">string</span> Titulo { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">string</span> Conteudo { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">virtual</span> ICollection Comentarios { get; set; }</pre>

<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">        <span style="color: #0000ff;">public</span> Post()</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">        {</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">            Comentarios = <span style="color: #0000ff;">new</span> HashSet();</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">        }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">}</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> Comentario</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">{</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">       <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> PostID { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">       <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> ComentarioID { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">       <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> NomeAutor { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">       <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> Texto { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">}</pre>
</div>
</div>
<p>O erro acontece quando temos o seguinte cenário: Temos uma entidade mapeada para usar <a href="http://higorcesar.com.br/lang/pt-br/entity-framework-4proxies-parte-ii">change tracking proxy</a> e existe a necessidade de utilizar a coleção contida nessa entidade durante o processo de criaçao de um novo post.</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum1" style="color: #606060;"> 1:</span> var contexto = <span style="color: #0000ff;">new</span> ContextoAcessoDados();</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum2" style="color: #606060;"> 2:</span> var blog = contexto.Blogs.FirstOrDefault();</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum3" style="color: #606060;"> 3:</span></pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum4" style="color: #606060;"> 4:</span> var novoPost = <span style="color: #0000ff;">new</span> Post { Titulo = <span style="color: #006080;">"post novo já comentado"</span>, Conteudo = <span style="color: #006080;">"conteudo do post novo"</span> };</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum5" style="color: #606060;"> 5:</span> novoPost.Comentarios.Add(<span style="color: #0000ff;">new</span> Comentario { NomeAutor = <span style="color: #006080;">"Joao"</span>, Texto = <span style="color: #006080;">"como adicionar em dados em coleções usando o ef"</span> });</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum6" style="color: #606060;"> 6:</span> blog.Posts.Add(novoPost);</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum7" style="color: #606060;"> 7:</span></pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum8" style="color: #606060;"> 8:</span> contexto.SaveChanges();</pre>
</div>
</div>
<p>Ao executar I método saveChanges temos a seguinte mensagen:</p>
<blockquote><p>The property &#8216;Comentarios&#8217; on type &#8216;Post_51FA4C11FB3F248409B06D408BFBDEC68A302B257733726D76E931873D4398BC&#8217; cannot be set because the collection is already set to an EntityCollection.</p></blockquote>
<h3>Solução</h3>
<p>Acredite se quiser, mas a solução é desabilitar o change tracking proxy, isso mesmo você deve remover o modificador virtual das propriedades básicas e deixar apenas a coleção de comentários como virtual,a entidade alterada fica assim:</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum1" style="color: #606060;"> 1:</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> Post</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum2" style="color: #606060;"> 2:</span>    {</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum3" style="color: #606060;"> 3:</span>        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> BlogID { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum4" style="color: #606060;"> 4:</span>        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> PostID { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum5" style="color: #606060;"> 5:</span>        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> Titulo { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum6" style="color: #606060;"> 6:</span>        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> Conteudo { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum7" style="color: #606060;"> 7:</span>        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">virtual</span> ICollection Comentarios { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum8" style="color: #606060;"> 8:</span></pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum9" style="color: #606060;"> 9:</span>        <span style="color: #0000ff;">public</span> Post()</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum10" style="color: #606060;"> 10:</span>        {</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum11" style="color: #606060;"> 11:</span>            Comentarios = <span style="color: #0000ff;">new</span> HashSet();</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum12" style="color: #606060;"> 12:</span>        }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum13" style="color: #606060;"> 13:</span>    }</pre>
</div>
</div>
<p>Pronto! agora o código funciona sem problemas. A solução foi tirada de <a href="http://social.msdn.microsoft.com/Forums/en/adonetefx/thread/99d8d4a1-5ab1-42dc-b9db-5087be02162d">uma thread no msdn</a></p>
<p>Espero que ajude pessoal, segue o <a href="https://bitbucket.org/higorcesar/exemplosef4.3/">código de exemplo para download</a><!--:--><!--:en-->Olá pessoal, depois de muito tempo sem falar sobre EntityFramework vou falar sobre o bug do titulo.</p>
<h3>Problema</h3>
<p>Vamos usar o Entity Framework 4.3.1 com o seguinte modelo</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.12%; font-family: 'Courier New', courier, monospace; direction: ltr; height: 264px; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> Blog</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">{</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> BlogID { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> Titulo { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> Url { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">virtual</span> ICollection Posts { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100.16%; font-family: 'Courier New', courier, monospace; direction: ltr; height: 19px; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">}</pre>

<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> Post</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">{</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">int</span> BlogID { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">int</span> PostID { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">string</span> Titulo { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">string</span> Conteudo { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">virtual</span> ICollection Comentarios { get; set; }</pre>

<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">        <span style="color: #0000ff;">public</span> Post()</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">        {</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">            Comentarios = <span style="color: #0000ff;">new</span> HashSet();</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">        }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">}</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> Comentario</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">{</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">       <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> PostID { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">       <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> ComentarioID { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">       <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> NomeAutor { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">       <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> Texto { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">}</pre>
</div>
</div>
<p>O erro acontece quando temos o seguinte cenário: Temos uma entidade mapeada para usar <a href="http://higorcesar.com.br/lang/pt-br/entity-framework-4proxies-parte-ii">change tracking proxy</a> e existe a necessidade de utilizar a coleção contida nessa entidade durante o processo de criaçao de um novo post.</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum1" style="color: #606060;"> 1:</span> var contexto = <span style="color: #0000ff;">new</span> ContextoAcessoDados();</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum2" style="color: #606060;"> 2:</span> var blog = contexto.Blogs.FirstOrDefault();</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum3" style="color: #606060;"> 3:</span></pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum4" style="color: #606060;"> 4:</span> var novoPost = <span style="color: #0000ff;">new</span> Post { Titulo = <span style="color: #006080;">"post novo já comentado"</span>, Conteudo = <span style="color: #006080;">"conteudo do post novo"</span> };</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum5" style="color: #606060;"> 5:</span> novoPost.Comentarios.Add(<span style="color: #0000ff;">new</span> Comentario { NomeAutor = <span style="color: #006080;">"Joao"</span>, Texto = <span style="color: #006080;">"como adicionar em dados em coleções usando o ef"</span> });</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum6" style="color: #606060;"> 6:</span> blog.Posts.Add(novoPost);</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum7" style="color: #606060;"> 7:</span></pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum8" style="color: #606060;"> 8:</span> contexto.SaveChanges();</pre>
</div>
</div>
<p>Ao executar I método saveChanges temos a seguinte mensagen:</p>
<blockquote><p>The property &#8216;Comentarios&#8217; on type &#8216;Post_51FA4C11FB3F248409B06D408BFBDEC68A302B257733726D76E931873D4398BC&#8217; cannot be set because the collection is already set to an EntityCollection.</p></blockquote>
<h3>Solução</h3>
<p>Acredite se quiser, mas a solução é desabilitar o change tracing proxy, isso mesmo você deve remover o modificador virtual das propriedades básicas e deixar apenas a coleção de comentários como virtual,a entidade alterada fica assim:</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum1" style="color: #606060;"> 1:</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> Post</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum2" style="color: #606060;"> 2:</span>    {</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum3" style="color: #606060;"> 3:</span>        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> BlogID { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum4" style="color: #606060;"> 4:</span>        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> PostID { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum5" style="color: #606060;"> 5:</span>        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> Titulo { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum6" style="color: #606060;"> 6:</span>        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> Conteudo { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum7" style="color: #606060;"> 7:</span>        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">virtual</span> ICollection Comentarios { get; set; }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum8" style="color: #606060;"> 8:</span></pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum9" style="color: #606060;"> 9:</span>        <span style="color: #0000ff;">public</span> Post()</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum10" style="color: #606060;"> 10:</span>        {</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum11" style="color: #606060;"> 11:</span>            Comentarios = <span style="color: #0000ff;">new</span> HashSet();</pre>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum12" style="color: #606060;"> 12:</span>        }</pre>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum13" style="color: #606060;"> 13:</span>    }</pre>
</div>
</div>
<p>Pronto! agora o código funciona sem problemas. A solução foi tirada de <a href="http://social.msdn.microsoft.com/Forums/en/adonetefx/thread/99d8d4a1-5ab1-42dc-b9db-5087be02162d">uma thread no msdn</a></p>
<p>Espero que ajude pessoal, segue o <a href="https://bitbucket.org/higorcesar/exemplosef4.3/">código de exemplo para download</a></p>
<p><!--:--></p>
]]></content:encoded>
			<wfw:commentRss>http://higorcesar.com.br/lang/en-us/entity-framework-the-property-xx-on-type-xx-cannot-be-set-because-the-collection-is-already-set-to-an-entitycollection/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mercurial: O merge deu errado e agora ?</title>
		<link>http://higorcesar.com.br/lang/en-us/mercurial-o-merge-deu-errado-e-agora</link>
		<comments>http://higorcesar.com.br/lang/en-us/mercurial-o-merge-deu-errado-e-agora#comments</comments>
		<pubDate>Sun, 25 Mar 2012 16:27:00 +0000</pubDate>
		<dc:creator>higor.cesar</dc:creator>
				<category><![CDATA[Mercurial]]></category>
		<category><![CDATA[Mercurial;Hg;TortoiseHg;Rollback;hg unmerge;hg revert;]]></category>

		<guid isPermaLink="false">http://higorcesar.com.br/?p=608&#038;lang=pt-br</guid>
		<description><![CDATA[        Olá pessoal, olhando as estatísticas de acesso do meu blog vi que nas últimas semanas um número considerável de pessoas chegou aqui procurando por um comando hg unmerge. A questão é que não existe um comando básico do hg que desfaça um merge! Calma, nem tudo está perdido! Podemos resolver o problema, precisamos [...]]]></description>
			<content:encoded><![CDATA[<p><!--:pt-->
<p align="justify"><span style="font-family: 'Trebuchet MS'; font-size: small;">     <a href="http://higorcesar.com.br/wp-content/uploads/2012/03/undo-button.jpg"><img style="background-image: none; margin: 10px 10px 10px 5px; padding-left: 0px; padding-right: 0px; display: inline; float: left; padding-top: 0px; border: 0px;" title="undo-button" src="http://higorcesar.com.br/wp-content/uploads/2012/03/undo-button_thumb.jpg" alt="undo-button" width="212" height="213" align="left" border="0" /></a>   Olá pessoal, olhando as estatísticas de acesso do meu blog vi que nas últimas semanas um número considerável de pessoas chegou aqui procurando por um comando <strong>hg unmerge.</strong> A questão é que não existe um comando básico do hg que desfaça um merge! Calma, nem tudo está perdido! Podemos resolver o problema, precisamos apenas analisar os cenários</span></p>
<p align="justify">
<p><strong><br />
</strong></p>
<p align="justify"><strong><span style="font-family: 'Trebuchet MS'; font-size: medium;">O merge deu errado, mas não aconteceu um commit<br />
</span></strong></p>
<p><strong></strong><span style="font-family: 'Trebuchet MS'; font-size: small;">Sempre que acontece um <strong>merge no mercurial é necessário o comando hg commit para persistir as alterações</strong>. Caso você tenha executado um merge e não tenha ainda realizado um commit é possível descartar as alterações através do comando </span><a href="http://mercurial.selenic.com/wiki/Revert"><span style="font-family: 'Trebuchet MS'; font-size: small;">hg revert</span></a><span style="font-family: 'Trebuchet MS'; font-size: small;">, as duas maneiras básicas de usá-lo são:</span></p>
<p align="justify">
<p><strong><span style="font-family: 'Trebuchet MS'; font-size: small;">hg revert nomedoarquivo</span></strong></p>
<blockquote><p><span style="font-family: 'Trebuchet MS'; font-size: small;">Usado quando desejamos reverter as alterações realizadas em arquivos específicos</span></p></blockquote>
<p><span style="background-color: #f9f9f9; font-family: 'Trebuchet MS'; font-size: small;"><strong>hg revert –a</strong></span></p>
<blockquote><p><span style="font-family: 'Trebuchet MS'; font-size: small;">Usado quando desejamos reverter as alterações realizadas em todos os arquivos</span></p></blockquote>
<p><em></em></p>
<p><span style="font-family: 'Trebuchet MS';"><strong><span style="font-size: small;">O merge deu errado e um commit foi realizado<br />
</span></strong><span style="font-size: small;">        Neste caso precisamos reverter um commit, podemos realizar isso de diferentes maneiras, são elas:</span></span></p>
<p><span style="font-family: 'Trebuchet MS'; font-size: small;"><strong>hg backout –r numerorevisao</strong></span></p>
<blockquote><p><span style="font-family: 'Trebuchet MS'; font-size: small;">Reverte o efeito de um determinado changeset</span></p></blockquote>
<p><span style="background-color: #f9f9f9; font-family: 'Trebuchet MS'; font-size: small;"><strong>hg rollback</strong></span></p>
<blockquote><p><span style="font-family: 'Trebuchet MS'; font-size: small;">Reverte os efeitos da última transação realizada no reposítorio</span></p></blockquote>
<p align="justify"><span style="font-family: 'Times New Roman'; font-size: small;">        <span style="font-family: 'Trebuchet MS';">Espero que não seja necessário, mas temos essas maneiras de resolver merges com problemas, se você souber de mais alguma maneira pode deixar ai nos comentários. Até a próxima!</span></span></p>
<p>Links:<br />
<a href="http://mercurial.selenic.com/wiki/Revert">http://mercurial.selenic.com/wiki/Revert</a><br />
<a href="http://mercurial.selenic.com/wiki/Backout">http://mercurial.selenic.com/wiki/Backout</a><br />
<a href="http://mercurial.selenic.com/wiki/Rollback">http://mercurial.selenic.com/wiki/Rollback</a><!--:--></p>
]]></content:encoded>
			<wfw:commentRss>http://higorcesar.com.br/lang/en-us/mercurial-o-merge-deu-errado-e-agora/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O que achei do Visual Studio 11 beta em 8 itens</title>
		<link>http://higorcesar.com.br/lang/en-us/o-que-achei-do-visual-studio-11-beta-em-10-itens</link>
		<comments>http://higorcesar.com.br/lang/en-us/o-que-achei-do-visual-studio-11-beta-em-10-itens#comments</comments>
		<pubDate>Tue, 20 Mar 2012 17:15:00 +0000</pubDate>
		<dc:creator>higor.cesar</dc:creator>
				<category><![CDATA[NET 4.5]]></category>
		<category><![CDATA[visual Studio]]></category>
		<category><![CDATA[Visual Studio 11; DOTNETFX 4.5;]]></category>

		<guid isPermaLink="false">http://higorcesar.com.br/?p=592&#038;lang=pt-br</guid>
		<description><![CDATA[Fala pessoal, após um longo tempo sem posts e versões do visual studio aqui estamos de volta. Hoje será um post com algumas observações sobre a versão beta do visual studio 11 Boa estabilidade para um produto beta Janela para adicionar referência com desempenho melhor A busca de texto está mais veloz Interface com mais [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: verdana; font-size: small">Fala pessoal, após um longo tempo sem posts e versões do visual studio aqui estamos de volta. Hoje será um post com algumas observações sobre a versão </span><a href="http://www.microsoft.com/visualstudio/11/pt-br/downloads"><span style="font-family: verdana; font-size: small">beta do visual studio 11</span></a></p>
<p align="center"><span style="font-family: verdana; font-size: small"><img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://higorcesar.com.br/wp-content/uploads/2012/03/wlEmoticon-smile.png"></span></p>
<ul>
<ul>
<li><span style="font-family: verdana; font-size: small">Boa estabilidade para um produto beta </span>
<li><span style="font-family: verdana; font-size: small">Janela para adicionar referência com desempenho melhor </span>
<li><span style="font-family: verdana; font-size: small">A busca de texto está mais veloz </span>
<li><span style="font-family: verdana; font-size: small">Interface com mais espaço para código </span>
<li><span style="font-family: verdana; font-size: small">Escolha de browser para rodar no modo debug </span>
<li><span style="font-family: verdana; font-size: small">IDE mais inteligente para css</span></li>
</ul>
</ul>
<p>&nbsp;</p>
<p align="center"><span style="background-color: #ffffff; font-family: verdana; font-size: small"><img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Sad smile" src="http://higorcesar.com.br/wp-content/uploads/2012/03/wlEmoticon-sadsmile.png"></span></p>
<ul>
<ul>
<li>
<div align="left"><span style="font-family: verdana; font-size: small">Esquema de cor dificulta identificar os tipos de arquivos</span></div>
<li>
<div align="left"><span style="font-family: verdana; font-size: small">Muitos ícones na aba solution explorer</span></div>
</li>
</ul>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://higorcesar.com.br/lang/en-us/o-que-achei-do-visual-studio-11-beta-em-10-itens/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Obrigado ASKSoftware!</title>
		<link>http://higorcesar.com.br/lang/en-us/obrigado-asksoftware</link>
		<comments>http://higorcesar.com.br/lang/en-us/obrigado-asksoftware#comments</comments>
		<pubDate>Thu, 17 Nov 2011 16:35:00 +0000</pubDate>
		<dc:creator>higor.cesar</dc:creator>
				<category><![CDATA[Carreira]]></category>
		<category><![CDATA[Trabalho]]></category>

		<guid isPermaLink="false">http://higorcesar.com.br/lang/pt-br/obrigado-asksoftware</guid>
		<description><![CDATA[Olá pessoal, após um longo tempo sem postar estou de volta com algumas novidades, algumas novidades profissionais que vou compartilhar aqui no blog e outras pessoais, quem me acompanha no facebook já deve ter reparado . A principal novidade é que após 1 ano e 8 meses eu deixei de trabalhar na asksoftware e voltei [...]]]></description>
			<content:encoded><![CDATA[<p><font size="3" face="Trebuchet MS">Olá pessoal, após um longo tempo sem postar estou de volta com algumas novidades, algumas novidades profissionais que vou compartilhar aqui no blog e outras pessoais, quem me acompanha no </font><a href="http://www.facebook.com/profile.php?id=100001786402071"><font size="3" face="Trebuchet MS">facebook</font></a><font size="3" face="Trebuchet MS"> já deve ter reparado <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Alegre" src="http://higorcesar.com.br/wp-content/uploads/2011/11/wlEmoticon-smile.png" />. A principal novidade é que após 1 ano e 8 meses eu deixei de trabalhar na </font><a href="http://www.alwaysseekingknowledge.com/"><font size="3" face="Trebuchet MS">asksoftware</font></a><font size="3" face="Trebuchet MS"> e voltei a trabalhar com o pessoal da </font><a href="http://www.harpiaventures.com/pt/index.php"><font size="3" face="Trebuchet MS">Harpia Ventures</font></a><font size="3" face="Trebuchet MS">, sendo mais específico com o pessoal do </font><a href="http://www.placetoask.com/"><font size="3" face="Trebuchet MS">place to ask</font></a><font size="3" face="Trebuchet MS">. Quem me acompanha sabe que em 2009 eu trabalhei na harpia ventures com o pessoal do </font><a href="http://evenka.com.br/"><font size="3" face="Trebuchet MS">Evenka</font></a><font size="3" face="Trebuchet MS">.</font></p>
<p><font size="3" face="Trebuchet MS">Falando do tempo em que fiquei no asksoftware certamente não vou conseguir descrever tudo que aprendi lá. Desde as pessoas incríveis que tive a chance de conhecer até todas as tecnologias que aprendi. Muito do meu aprendizado pode ser visto aqui no blog, entre as tecnologias que usamos nos diversos projetos estão: ASP.NET MVC (1,2 e 3), Entity Framework 4, TFS. Hg,XML, XSL além de praticar um monte de coisas que acredito como TDD, agilidade e build contínuo.     <br />Eu só tenho a agradecer pela oportunidade e pela confiança que a equipe depositou em mim, espero em breve ter a oportunidade de participar de outros projetos com a galera.</font></p>
<p><a href="http://higorcesar.com.br/wp-content/uploads/2011/11/258205_164184013644858_159670080762918_377194_547019_o.jpg"><font size="3" face="Trebuchet MS"><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="258205_164184013644858_159670080762918_377194_547019_o" border="0" alt="258205_164184013644858_159670080762918_377194_547019_o" src="http://higorcesar.com.br/wp-content/uploads/2011/11/258205_164184013644858_159670080762918_377194_547019_o_thumb.jpg" width="338" height="254" /></font></a></p>
<p><font size="3" face="Trebuchet MS"></font></p>
<p><font size="3" face="Trebuchet MS"></font></p>
<p><font size="3" face="Trebuchet MS"></font></p>
<p><font size="3" face="Trebuchet MS">Falando do futuro aqui na Harpia ventures vou continuar com um trabalho semelhante com o exercido da Harpia Ventures, com exceção do tipo de software que estamos construindo que é uma aplicação social pra internet e não um software corporativo intranet. Os primeiros conhecimentos que vou ter que adquirir/praticar aqui são otimização/escalabilidade e segurança, então já sabem que vem post no blog sobre isso ai, vou começar com o livro </font><a href="http://www.amazon.com/Ultra-Fast-ASP-NET-Build-Ultra-Scalable-Server/dp/1430223839/ref=sr_1_3?ie=UTF8&#38;qid=1321547267&#38;sr=8-3"><font size="3" face="Trebuchet MS">Ultra-Fast ASP.NET</font></a><font size="3" face="Trebuchet MS">, indicação da galera aqui. Por enquanto é isso pessoal, até,</font></p>
]]></content:encoded>
			<wfw:commentRss>http://higorcesar.com.br/lang/en-us/obrigado-asksoftware/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DevDay #BH Sucesso Total</title>
		<link>http://higorcesar.com.br/lang/en-us/devday-bh-sucesso-total</link>
		<comments>http://higorcesar.com.br/lang/en-us/devday-bh-sucesso-total#comments</comments>
		<pubDate>Tue, 30 Aug 2011 21:19:00 +0000</pubDate>
		<dc:creator>higor.cesar</dc:creator>
				<category><![CDATA[Carreira]]></category>
		<category><![CDATA[Comunidade]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[DevDay]]></category>

		<guid isPermaLink="false">http://higorcesar.com.br/?p=582&#038;lang=pt-br</guid>
		<description><![CDATA[Olá pessoal, no ultimo sábado(27-08) tive a honra de participar do #devday. Eu já tinha confirmado minha ida ao evento um mês antes, no entanto surgiu a oportunidade de participar fornecendo uma lightning action. Quero agradecer ao pessoal de BH que foi super. receptivo e bem legal, um prazer rever amigos e conhecer pessoalmente muitos [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal, no ultimo sábado(27-08) tive a honra de participar do #devday. Eu já tinha confirmado minha ida ao evento um mês antes, no entanto surgiu a oportunidade de participar fornecendo uma lightning action. Quero agradecer ao pessoal de BH que foi super. receptivo e bem legal, um prazer rever amigos e conhecer pessoalmente muitos outros.Eu e <a href="http://twitter.com/#!/@rodrigovidal">RodrigoVidal</a> gostamos tanto que até perdemos o voo, o evento foi excelente.</p>
<p><strong>Conteúdo</strong></p>
<p>A <a href="http://devday.devisland.com/Agenda">agenda</a> já prometia um grande evento, tivemos de tudo! destaco as lightning actions que foram bem dinâmicas e legais. gostei bastante da apresentação sobre NoSql apresentada pelo <a href="http://twitter.com/#!/ggibran">gibran</a>, gostei bastante também da talk sobre qualidade de codificação apresentada pelo <a href="http://twitter.com/#!/glaubercoder">Glauber</a>. Entre as palestras teve tudo que gostaria de ouvir, a primeira que destaco foi a apresentação sobre a <em>importância do front-end e as novidades do rails 3.1</em>, eu gosto de Rails e já esperava uma apresentação bem focada no framework e no mundo Ruby, no entanto fui surpreendido por uma excelente palestra totalmente focada em desenvolvimento de front-end web. O <a href="http://twitter.com/#!/danielvlopes">Daniel Lopes</a> mostrou como olhar de maneira profissional o front-end e de quebra deixou vários assuntos pendentes de estudo. Ainda tivemos as palestras sobre falhas de segurança e a palestra chocante do <a href="http://rodrigovidal.net">Rodrigo Vidal</a> sobre programação funcional. O <a href="http://rodrigovidal.net">Rodrigo vidal</a> explodiu a cabeça do pessoal, falando bem sobre programação funcional. A apresentação envolveu matemática, compiladores,linguagens e tudo mais que programadores gostam de ouvir, sensacional. Ainda tivemos o <a href="http://unplugged.giggio.net/">Giovanni bassi</a> falando sobre CoffeeScript, mostrou bem como está fácil usar a tecnologia com o ambiente de desenvolvimento .NET, nota 10.</p>
<p><strong>Minha Lightining action</strong></p>
<p>Eu falei rapidinho como está sendo o processo de mudança e adoção de melhorias no dia-a-dia da <a href="http://www.alwaysseekingknowledge.com/">asksoftware</a>, foi uma apresentação rápida e bem pragmática. <a href="http://www.slideshare.net/higorcrr/dev-day-2011-introduzindo-mudanas">aqui</a> estão meus slides</p>
<p>&#160;</p>
<p><strong>Happy Hour e comunidade      <br /></strong>O happy hour foi sensacional, rolou até tarde no <a href="http://www.assacabrasa.com.br/">assacabrasa</a>. O pessoal discutiu muito sobre tudo e pouco sobre software, é legal ver a comunidade ainda mais próxima e conversando sobre muitas coisas além de desenvolvimento.. quem foi ao devday e não foi no hh perdeu metade do evento <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Smiley piscando" src="http://higorcesar.com.br/wp-content/uploads/2011/08/wlEmoticon-winkingsmile.png" /></p>
<p><strong>Para saber mais      <br /></strong>Você pode saber mais sobre o evento buscando a hashtag #devday que por sinal foi TT em Belo Horizonte, você ainda pode acompanhar o blog do Douglas Aguiar</p>
]]></content:encoded>
			<wfw:commentRss>http://higorcesar.com.br/lang/en-us/devday-bh-sucesso-total/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Eu confio no suporte, o suporte confia em Dev?</title>
		<link>http://higorcesar.com.br/lang/en-us/eu-confio-no-suporte-o-suporte-confia-em-dev</link>
		<comments>http://higorcesar.com.br/lang/en-us/eu-confio-no-suporte-o-suporte-confia-em-dev#comments</comments>
		<pubDate>Mon, 11 Jul 2011 21:19:00 +0000</pubDate>
		<dc:creator>higor.cesar</dc:creator>
				<category><![CDATA[Carreira]]></category>
		<category><![CDATA[Comportamento;Profissional]]></category>

		<guid isPermaLink="false">http://higorcesar.com.br/?p=580&#038;lang=pt-br</guid>
		<description><![CDATA[Olá pessoal, estava pensando em colocar agile no titulo desse post pois afinal de contas parece que quase tudo que é legal hoje com relação a equipes e comportamento profissional é relacionado á agilidade certo? Eu não concordo com isso, então vamos falar sobre o assunto(confiança) independente sobre o que a equipe acredita ou pratica. [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal, estava pensando em colocar agile no titulo desse post pois afinal de contas parece que quase tudo que é legal hoje com relação a equipes e comportamento profissional é relacionado á agilidade certo? Eu não concordo com isso, então vamos falar sobre o assunto(confiança) independente sobre o que a equipe acredita ou pratica.    <br />O assunto voltou à tona(já falei muito sobre esse assunto com o <a href="http://vivina.com.br/Start,9.aspx?type=blog">sidney filho</a>) e durante um #HH com o pessoal da ASKSoftware conversando com um profissional do suporte, ele me falava como acreditava no software que estamos desenvolvendo e ainda como acreditava que a equipe está fazendo um bom trabalho e que fica feliz em trabalhar na empresa e com a equipe que trabalha. Isso já era o suficiente para me fazer pensar, afinal de contas não tenho a mesma certeza que a equipe de desenvolvimento acredita no software que está sendo criado quanto o profissional do suporte em questão.</p>
<p>A conversa continuou e ele ainda me disse que quando presta suporte que envolve possíveis problemas ele sempre parte do princípio que as outras equipes, implantação e desenvolvimento, fizeram um ótimo trabalho e da melhor maneira possível. Ficar sabendo disso me deixou muito feliz em saber da <strong>confiança depositada por esse profissional no que estava sendo feito por todas as outras equipes. </strong>Imediatamente após o sentimento de felicidade e satisfação teve início um momento de reflexão, <strong>eu faço o meu trabalho da melhor maneira para só assim ser merecedor da confiança de outras pessoas?</strong></p>
<p>Enquanto eu refletia sobre o merecimento da confiança de outros colegas de trabalho, comecei a pensar se todos os membros da minha equipe também fazem por onde, para só fazermos parte de uma equipe merecedora de confiança. Durante a semana em que rolou esse HH o pessoal de desenvolvimento discutiu bastante sobre transparência entre os membros da equipe. Como já falei aqui em posts anteriores estamos adotando práticas ágeis e acredito que já passamos por boa parte da curva de aprendizado, o ponto é que agora acreditamos que devemos evoluir para <strong>um ponto onde as pessoas precisam ser transparentes e confiarem que cada pessoa faz o seu melhor.</strong></p>
<p>Essa semana vou falar sobre a conversa que rolou no HH com o “cara” do suporte e propor uma reflexão sobre o assunto. É isso pessoal, espero que o post sirva de reflexão para as pessoas que ainda acreditam que podem fazer a diferença.</p>
]]></content:encoded>
			<wfw:commentRss>http://higorcesar.com.br/lang/en-us/eu-confio-no-suporte-o-suporte-confia-em-dev/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Commom Lisp&#8211;Project Euler #1</title>
		<link>http://higorcesar.com.br/lang/en-us/commom-lispproject-euler-1</link>
		<comments>http://higorcesar.com.br/lang/en-us/commom-lispproject-euler-1#comments</comments>
		<pubDate>Sun, 26 Jun 2011 21:56:00 +0000</pubDate>
		<dc:creator>higor.cesar</dc:creator>
				<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Programação funcional]]></category>
		<category><![CDATA[ProjectEuler]]></category>
		<category><![CDATA[Lisp; Commom lisp; functional programming;ProjectEuler]]></category>

		<guid isPermaLink="false">http://higorcesar.com.br/?p=575&#038;lang=pt-br</guid>
		<description><![CDATA[Olá pessoal, seguindo a série de posts sobre commom lisp e a série de resoluções de problemas do projecteuler.net que os amigos Rodrigo Vidal, Elemar Junior e Juan Lopes estão fazendo aqui está minha contribuição do problema #1 em commom lisp.Vamos ao código: A solução é bem menos elegante que a solução proposta pelo mestre [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal, seguindo a série de posts sobre commom lisp e a série de resoluções de problemas do <a href="http://projecteuler.net">projecteuler.net</a> que os amigos <a href="http://rodrigovidal.net/">Rodrigo Vidal</a>, <a href="http://elemarjr.net/2011/06/25/quicksort-em-haskell/">Elemar Junior</a> e <a href="https://github.com/juanplopes/euler">Juan Lopes</a> estão fazendo aqui está minha contribuição do problema #1 em commom lisp.Vamos ao código:</p>
<p><script src="https://gist.github.com/1036811.js?file=project-euler1.lisp"></script></p>
<p>A solução é bem menos elegante que a solução proposta pelo mestre <a href="http://elemarjr.net/2011/06/25/quicksort-em-haskell/">Elemar</a> em Haskell mesmo assim vamos analisar a solução.</p>
<p><strong><span style="font-size: medium;">Algoritmo</span></strong></p>
<p><em>O algoritmo usado envolveu declarar uma função que recebe os limites, inferior e superior, e calcula os números cujo módulo de 3 ou 5 é igual a 0. Ao final da verificação de itens dentro do intervalo uma função que soma todos os valores resultantes foi aplicada.</em></p>
<p><em> </em></p>
<p><strong><span style="font-size: medium;">Código<br />
 </span></strong><em>linha 2:</em> o comando label foi usado para definir uma função que retorne uma lista com os números entre, inclusive, os  limites passados como parâmetro.</p>
<p><strong><span style="font-size: x-small;">O loop for</span></strong></p>
<p><script src="https://gist.github.com/1047992.js?file=commom-lisp-loop-macro.lisp"></script></p>
<p>Olhando bem para o uso do comando loop ele é um pouco diferente do restante do código lisp não é? afinal de contas um monte de palavras soltas não é normal em commom lisp. O comando loop é uma macro que permite diversas combinações de uso, olhe mais <a href="http://www.unixuser.org/~euske/doc/cl/loop.html">aqui</a>.</p>
<p><em>linha 3</em>: uma função múltiplo-de-3-ou-5 é definida, na função foi usado o comando (mod x y ) para verificar o módulo de um determinado número x por y.</p>
<p><em>linha 4</em>: É onde o problema é realmente resolvido. Lendo o código da esquerda para direita temos o seguinte: uma função redutora que faz uso do redutor de soma “+” é usada para reduzir uma lista gerada pela função mapcar. A função mapcar aplicou a função &#8216;múltiplo-de-3-ou-5 na lista gerada pela função intervalo.</p>
<p>É isso pessoal, em breve vou  compartilhar mais soluções de problemas do ProjectEuler em lisp.</p>
]]></content:encoded>
			<wfw:commentRss>http://higorcesar.com.br/lang/en-us/commom-lispproject-euler-1/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>N&#250;meros perfeitos em commom lisp</title>
		<link>http://higorcesar.com.br/lang/en-us/nmeros-perfeitos-em-commom-lisp</link>
		<comments>http://higorcesar.com.br/lang/en-us/nmeros-perfeitos-em-commom-lisp#comments</comments>
		<pubDate>Tue, 14 Jun 2011 22:09:00 +0000</pubDate>
		<dc:creator>higor.cesar</dc:creator>
				<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Programação funcional]]></category>
		<category><![CDATA[Commom Lisp; Lisp; Programação funcional; Functional Programming]]></category>

		<guid isPermaLink="false">http://higorcesar.com.br/?p=571&#038;lang=pt-br</guid>
		<description><![CDATA[Olá pessoal, continuando a série de posts sobre Lisp hoje vamos ver uma possível resolução do problema números perfeitos. O problema foi escolhido na lista de&#160; 1001 algoritmos para implementar antes de morrer. Resolução do problema O problema foi resolvido usando TDD, então vamos começar pelos testes e códigos que fazem os testes passarem. O [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal, continuando a série de posts sobre Lisp hoje vamos ver uma possível resolução do problema <a href="http://pt.wikipedia.org/wiki/N%C3%BAmero_perfeito">números perfeitos</a>. O problema foi escolhido na lista de&#160; <a href="https://github.com/karlisson/1001">1001 algoritmos para implementar antes de morrer</a>. </p>
<p><strong><font size="4">Resolução do problema</font></strong></p>
<p>O problema foi resolvido usando TDD, então vamos começar pelos testes e códigos que fazem os testes passarem. O problema foi dividido em dois pequenos problemas, o primeiro deles é encontrar os divisores de um número, vamos ver os testes e solução:</p>
<p><strong>Explicando o código</strong>    <br />A primeira função diferente á a função labels, essa função deve ser usada para declarar <a href="http://pt.wikipedia.org/wiki/Closure">funções internas a função a qual a função labels é chamada</a></p>
<p> <em>Como usar: </em><script src="https://gist.github.com/1025962.js?file=labels.lisp"></script>
<p>&#160;</p>
<p><strong>Contextualização: </strong>    <br />a função listar-divisores recebe apenas o número alvo como parâmetro, dentro da função uma função chamada&#160; listar-divisores com dois parâmetros(numero divisores) é definida. O objetivo da função é percorrer todos os números até o número alvo(candidato a´número perfeito) e identificar se o número corrente é divisor do número alvo, caso seja o número será adicionado na lista. a função é executada enquanto o número for maior que 0</p>
<p><strong>Condicional usando if      <br /></strong>Commom lisp oferece diversos mecanismos condicionais, entre eles o if, o comando é bem simples, segue um exemplo que pode ser executado no REPL</p>
<p> <script src="https://gist.github.com/1025986.js?file=commom-lisp-if.lisp"></script>
<p><strong>Usando listas </strong>    <br />Lisp fornece funções para trabalhar com lisp, algumas funções utilizadas foram:     </p>
<p><script src="https://gist.github.com/1025992.js?file=commom-lisp-criar-lista.lisp"></script><script src="https://gist.github.com/1025992.js?file=commom-lisp-push-lista"></script>São tão simples, que não é necessário comentar certo? Com esse código conseguimos fazer os testes passarem, então vamos definir mais testes e implementar mais uma função que deve finalizar o problema</p>
<p><script src="https://gist.github.com/1026002.js?file=commom-lisp-numeros-perfeitos.lisp"></script>O teste define que a função numero-perfeito deve retornar ‘(t) ou nil caso o numero seja perfeito&#160; ou não.</p>
<p> <script src="https://gist.github.com/1026006.js?file=numero-perfeito.lisp"></script>
<p><strong>Contextualização:      <br /></strong>A implementação ficou simples, a grande jogada é usar a função <a href="http://en.wikipedia.org/wiki/Fold_(higher-order_function)">reduce</a>, o resultado da função definida anteriormente é uma lista de divisores, para fazer isso é necessário somar todos os itens da lista e comparar com o numero-alvo, caso seja igual o número é perfeito.</p>
<p><strong>Reduce</strong></p>
<p><script src="https://gist.github.com/1026029.js?file=reduce.lisp"></script>o símbolo &#8216;+ é a função agregadora que será aplicada na lista dos divisores&#160;  </p>
<p>Pronto! Agora, todos os testes estão passando.</p>
<p><strong><font size="4">Conclusão       <br /></font></strong>É isso pessoal, espero que tenham gostado. Estou escolhendo problemas simples para abordar a sintaxe de commom lisp. É sempre bom lembrar que provavelmente na linguagem em que você desenvolve na maior parte do tempo também é possível pensar de uma maneira um pouco mais funcional.    </p>
<p><strong>Quer aprender mais sobre commom lisp e/ou programação funcional?     <br /></strong><a href="http://lisp-br.org/"><em>http://lisp-br.org/</em></a>    <br /><a href="http://rodrigovidal.net/"><em>http://rodrigovidal.net/</em></a></p>
<p><strong>Download do código de exemplo</strong>    <br /><a href="https://bitbucket.org/higorcesar/exemploslisp"><em>https://bitbucket.org/higorcesar/exemploslisp</em></a><strong><font size="4"></font></strong></p>
<p><strong><font size="4"></font></strong></p>
<p><strong><font size="4">Sugestão para próximos posts</font></strong>    <br />Ainda existem diversos assuntos para serem abordados, gostaria da sugestão de vocês para o próximo post sobre lisp/ programação funcional, os assuntos em pauta são:</p>
<ul>
<li>Map/Reduce</li>
<li>Escalabilidade de software desenvolvido com base na programação funcional</li>
<li>Orientação a objetos em commom lisp CLOS</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://higorcesar.com.br/lang/en-us/nmeros-perfeitos-em-commom-lisp/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Percep&#231;&#227;o da gera&#231;&#227;o de valor</title>
		<link>http://higorcesar.com.br/lang/en-us/percepo-da-gerao-de-valor</link>
		<comments>http://higorcesar.com.br/lang/en-us/percepo-da-gerao-de-valor#comments</comments>
		<pubDate>Tue, 07 Jun 2011 21:54:00 +0000</pubDate>
		<dc:creator>higor.cesar</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Carreira]]></category>

		<guid isPermaLink="false">http://higorcesar.com.br/?p=569&#038;lang=pt-br</guid>
		<description><![CDATA[Olá pessoal, o assunto do post será a percepção pelas partes envolvidas em projetos de software sobre a geração de valor. O post será baseado na experiência que estou tendo durante a adoção de agile na equipe em que trabalho, logo muita baboseira ou concepções não corretas de acordo com as literaturas podem surgir. Desenvolvedor [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal, o assunto do post será a percepção pelas partes envolvidas em projetos de software sobre a geração de valor. O post será baseado na experiência que estou tendo durante a adoção de agile na equipe em que trabalho, logo muita baboseira ou concepções não corretas de acordo com as literaturas podem surgir.</p>
<p><strong>Desenvolvedor Herói</strong></p>
<p>O <a href="http://igormusardo.com.br/">IgorMusardo</a> fez a tradução e falou um pouco sobre o assunto <a href="http://igormusardo.com.br/2011/05/01/no-seja-um-heroi/">aqui</a>, no post ele a tentativa de alguns desenvolvedores de salvar o projeto/Sprint/release com atos heroicos, quer exemplos?</p>
<ul>
<li>Nos últimos dias de um Sprint mal sucedido o desenvolvedor começa a trabalhar 3 horas a mais por dia na tentativa de salvar o Sprint. </li>
<li>Após um dia inteiro corrigindo bugs e revendo implementações em javascript o desenvolvedor não vai embora enquanto não corrigir o ultimo bug no I.E 6 </li>
<li>Após uma review desastrosa o desenvolvedor decide virar a noite resolvendo bugs </li>
</ul>
<p>Ahh isso que você está falando é <strong>dedicação/perseverança/paixão! </strong>Fique calmo, também não sou o desenvolvedor experiente em lidar com a vontade de ver as coisas funcionando e ver o Sprint falhando de maneira absurda. Desde que iniciei com desenvolvimento até os dias atuais encarei as tarefas de tal maneira, afinal de contas <strong>missão dada é missão cumprida.</strong> No início da carreira não existia hora extra suficiente, trabalhava o quanto fosse preciso por mais que as vezes estivesse tão cansado que até era “destrutivo”.</p>
<p><strong>Horas extras não sustentáveis a longo prazo      <br /></strong>Todos estão cansados de saber, afinal de contas já leram isso no programador pragmático e na metade das bibliografias sobre agilidade. O complicado é <em>na hora que o bicho pega</em> conseguir encaras os fatos com frieza e respeitar os limites</p>
<p><strong>Porque você não vai salvar o projeto?      <br /></strong>Quanto maior o projeto menor será o efeito de suas noite sem sono e fins de semana de programação. Quando um projeto precisa de 20 horas/desenvolvedor semanais a mais para ser entregue no prazo é sinal que existe um problema, Se é necessário um herói para fechar todos os Sprint isso certamente é um problema.Você realmente acredita que consegue salvar um projeto de 6 meses com uma dezena de pessoas envolvidas somente com suas 10 horas extras semanais? Você pode até tentar..</p>
<p><strong>E dai que você é um herói? ninguém sabe disso      <br /></strong>Pode até ser possível que com dedicação e força de vontade você consiga salvar um Sprint ou até um release. Digamos que você trabalhou durante o final de semana refartando uns códigos e tornou o desenvolvimento do Sprint mais fácil, a questão é: quem se importa? vejamos um exemplo:</p>
<blockquote><p>O desenvolvedor A refatorou um código tenso na segunda pela noite e acabou trabalhando até as 23 horas, no próximo dia o desenvolvedor está cansado pela manha e se atrasou para o daily scrum. Os desenvolvedor B e C não olham o servidor de código fonte e nem fazem ideia de um commit as 23 horas, sendo assim logo consideram que o desenvolvedor A está <em>“desmotivado’. </em>A percepção de valor gerada pelo desenvolvedor A é zero, nem seus amigos de trabalho reconhecem o valor e quem dirá seu gestor ou ainda o Cliente.</p>
</blockquote>
<p><strong>Eu sou herói por vocação, gosto de programar e resolver problemas      <br /></strong>Esse ponto é defendido por alguns desenvolvedores, eu até já defendi essa ideia trocando um tuites com o igormusardo e já foi fruto de discussões também com o <a href="http://juanlopes.net/">Juan lopes</a>. São dois pontos diferentes, são eles:</p>
<ol>
<li>Vicio em resolver problemas      <br />solução: Frequentar dojos, resolver problemas como treino em programação, participar de competições </li>
<li>Gosto muito de programação      <br />solução: Desenvolver novos projetos, dedicar tempo ao estudo e aprimoramento, abrir seu próprio negócio. </li>
</ol>
<p><strong>Reflexão:Estou mesmo gerando valor?</strong></p>
<p>Todos os pontos aqui abordados são voltados a reflexão sobre o valor gerado por atos heroicos durante o desenvolvimento. Existem diversos outros pontos que não foram tocados como por exemplo família e dinheiro. É importante que um ritmo sustentável seja mantido, afinal de contas do que adianta só <em>apagar incêndios </em>e não atacar o problema de uma maneira adequada que propicie a todos os envolvidos a percepção adequada de valor.</p>
]]></content:encoded>
			<wfw:commentRss>http://higorcesar.com.br/lang/en-us/percepo-da-gerao-de-valor/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

