<?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/pt-br/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>Thu, 17 Nov 2011 16:35:00 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Obrigado ASKSoftware!</title>
		<link>http://higorcesar.com.br/lang/pt-br/obrigado-asksoftware</link>
		<comments>http://higorcesar.com.br/lang/pt-br/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/pt-br/obrigado-asksoftware/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DevDay #BH Sucesso Total</title>
		<link>http://higorcesar.com.br/lang/pt-br/devday-bh-sucesso-total</link>
		<comments>http://higorcesar.com.br/lang/pt-br/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/pt-br/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/pt-br/eu-confio-no-suporte-o-suporte-confia-em-dev</link>
		<comments>http://higorcesar.com.br/lang/pt-br/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/pt-br/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/pt-br/commom-lispproject-euler-1</link>
		<comments>http://higorcesar.com.br/lang/pt-br/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/pt-br/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/pt-br/nmeros-perfeitos-em-commom-lisp</link>
		<comments>http://higorcesar.com.br/lang/pt-br/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/pt-br/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/pt-br/percepo-da-gerao-de-valor</link>
		<comments>http://higorcesar.com.br/lang/pt-br/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/pt-br/percepo-da-gerao-de-valor/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FizzBuzz em commom lisp</title>
		<link>http://higorcesar.com.br/lang/pt-br/fizzbuzz-em-commom-lisp</link>
		<comments>http://higorcesar.com.br/lang/pt-br/fizzbuzz-em-commom-lisp#comments</comments>
		<pubDate>Sun, 29 May 2011 20:29:00 +0000</pubDate>
		<dc:creator>higor.cesar</dc:creator>
				<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Lisp; Commom lisp; functional programming;]]></category>

		<guid isPermaLink="false">http://higorcesar.com.br/?p=559&#038;lang=pt-br</guid>
		<description><![CDATA[Olá pessoal, continuando a série sobre lisp será exibido uma solução do problema fizzbuzz.O ambiente usado foi o GCL rodando no ubuntu 10.04.Esse exemplo foi desenvolvido usando TDD, durante uma busca rapida descobri vários frameworks de testes para Commom Lisp(CL) e sem pensar muito usei o lisp-unit que é baseado no Junit. Vamos começar o [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal, continuando a série sobre lisp será exibido uma solução do problema <a href="http://en.wikipedia.org/wiki/Bizz_buzz">fizzbuzz</a>.O ambiente usado foi o GCL rodando no ubuntu 10.04.Esse exemplo foi desenvolvido usando TDD, durante uma busca rapida descobri vários frameworks de testes para Commom Lisp(CL) e sem pensar muito usei <a href="http://www.cs.northwestern.edu/academics/courses/325/readings/lisp-unit.html">o lisp-unit</a> que é baseado no Junit. Vamos começar o código partindo dos casos de teste.</p>
<p><strong>Casos de Teste</strong></p>
<p><strong>1</strong>-Deve retornar número recebido quando número igual a 1</p>
<p> <script src="https://gist.github.com/997975.js?file=deve-retornar-numero-recebido-quando-numero-igual-1.lisp"></script>
<p>para fazer ocódigo acima funcionar foi necessário definir uma função chamada fizz-buzz.</p>
<p> <script src="https://gist.github.com/997975.js?file=deve-retornar-numero-recebido-quando-numero-igual-solucao.lisp"></script>
<p><strong>2-</strong>Deve retornar número recebido quando número é igual a 2</p>
<p> <script src="https://gist.github.com/997981.js?file=deve-retornar-numero-recebido-quando-numero-igual-2.lisp"></script>
<p>Solução parcial:</p>
<p> <script src="https://gist.github.com/997981.js?file=deve-retornar-numero-recebido-quando-numero-igual-2.lisp"></script>
<p><strong>3</strong>-Deve retornar fizz quando&#160; numéro é igual a 3     </p>
<p> <script src="https://gist.github.com/998063.js?file=deve-retornar-fizz-quando-numero-igual-3.lisp"></script>  <br /> 
<p>Solução parcial:</p>
<p> <script src="https://gist.github.com/998063.js?file=gistfile1.cl"></script>
<p>&#160;</p>
<p><strong>4</strong>- Deve retornar buzz quando número é igual a 5</p>
<p> <script src="https://gist.github.com/998071.js?file=define-test%20deve-retornar-buzz-quando-numero-igual-5.lisp"></script>
<p>Solução parcial:    </p>
<p> <script src="https://gist.github.com/998071.js?file=solucao.lisp"></script>
<p>&#160;</p>
<p><strong>5</strong>-Deve retornar fizzbuzz quando número é igual a 15     <br /><script src="https://gist.github.com/998075.js?file=deve-retornar-fizzbuzz-quando-numero-igual-15.lisp"></script></p>
<p>Solução parcial:    </p>
<p> <script src="https://gist.github.com/998075.js?file=solucao.lisp"></script>
<p>&#160;</p>
<p>Neste ponto já temos o núcleo do problema resolvido. Agora vamos apenas criar uma função que recebe uma lista de números</p>
<p><strong>6</strong>- Deve retornar uma lista contendo 12fizz4buzzfizz7 quando recebe 1234567     </p>
<p> <script src="https://gist.github.com/998078.js?file=deve-retornar-uma-lista-contendo-12fizz4buzzfizz7-quando-recebe-1234567.lisp"></script>  <br />solução: <script src="https://gist.github.com/998078.js?file=solucao.lisp"></script>
<p>&#160;</p>
<p><strong>Condições com o COND      <br /></strong>Na solução foi usado um comando condicional capaz de avaliar uma lista de clausulas formadas por duas partes denominadas condição e resultado, segue a estrutura básica do comando:     </p>
<p> <script src="https://gist.github.com/998104.js?file=cond.lisp"></script>
<p><strong></strong></p>
<p><strong>Equivalência e operador AND      <br /></strong>A sintaxe de lisp para comparações é simples, apenas uma função cujo nome é o operador igual, então temos:</p>
<p> <script src="https://gist.github.com/998104.js?file=equals.lisp"></script>
<p>a solução ainda usou o operador &amp;, segue sua forma em lisp:    </p>
<p> <script src="https://gist.github.com/998104.js?file=and.lisp"></script>
<p><strong></strong></p>
<p><strong>MAPCAR, aplicando uma função em elementos de uma lista      <br /></strong>mapcar é uma função que espera o nome de uma função como parâmetro e uma lista de valores. A função mapcar aplica a função passada como argumento em cada item da lista, e no final da execução monta uma lista com os resultados.</p>
<p> <script src="https://gist.github.com/998107.js?file=mapcar.lisp"></script>
<p>É isso pessoal, a série continua com mais problemas resolvidos em lisp.</p>
<p><a href="https://bitbucket.org/higorcesar/exemploslisp">download código fonte</a></p>
]]></content:encoded>
			<wfw:commentRss>http://higorcesar.com.br/lang/pt-br/fizzbuzz-em-commom-lisp/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Iniciando com Lisp</title>
		<link>http://higorcesar.com.br/lang/pt-br/iniciando-com-lisp</link>
		<comments>http://higorcesar.com.br/lang/pt-br/iniciando-com-lisp#comments</comments>
		<pubDate>Mon, 23 May 2011 22:35:00 +0000</pubDate>
		<dc:creator>higor.cesar</dc:creator>
				<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Programação funcional]]></category>
		<category><![CDATA[Lisp; Commom lisp; functional programming;]]></category>

		<guid isPermaLink="false">http://higorcesar.com.br/?p=555&#038;lang=pt-br</guid>
		<description><![CDATA[Olá pessoal, desde o início da minha ainda breve carreira acredito que uma linguagem não é melhor ou pior que outra. Acredito que um programador profissional e apaixonado vai querer usar mais que um framework ou linguagem, já falei muito disso aqui. Seguindo essa linha de pensamento já estudei algumas linguagens famosas como Ruby, PHP [...]]]></description>
			<content:encoded><![CDATA[<p><font size="2" face="Arial Narrow">Olá pessoal, desde o início da minha ainda breve carreira acredito que uma linguagem não é melhor ou pior que outra. Acredito que um programador profissional e apaixonado vai querer usar mais que um framework ou linguagem, já falei muito disso </font><a href="http://higorcesar.com.br/lang/pt-br/o-background-do-desenvolvedor-net"><font size="2" face="Arial Narrow">aqui</font></a><font size="2" face="Arial Narrow">. Seguindo essa linha de pensamento já estudei algumas linguagens famosas como Ruby, PHP e Python, a linguagem do momento é </font><a href="http://en.wikipedia.org/wiki/Lisp_(programming_language)"><font size="2" face="Arial Narrow">Lisp</font></a><font size="2" face="Arial Narrow"> e pra ser mais exato </font><a href="http://en.wikipedia.org/wiki/Common_Lisp"><font size="2" face="Arial Narrow">commom lisp</font></a><font size="2" face="Arial Narrow">.</font></p>
<p><a href="http://higorcesar.com.br/wp-content/uploads/2011/05/lisp.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="lisp" border="0" alt="lisp" align="right" src="http://higorcesar.com.br/wp-content/uploads/2011/05/lisp_thumb.png" width="186" height="244" /></a></p>
<p><font size="2" face="Arial Narrow"></font></p>
<p><font size="3" face="Arial"><strong>Lisp</strong></font></p>
<p><font size="3"></font><strong><font size="3"></font></strong>Lisp é uma família de linguagens de programação concebida por <a href="http://pt.wikipedia.org/wiki/John_McCarthy">John McCarthy</a> em <a href="http://pt.wikipedia.org/wiki/1958">1958</a>. Num célebre artigo, ele mostra que é possível usar exclusivamente funções matemáticas como estruturas de dados elementares (o que é possível a partir do momento em que há um mecanismo formal para manipular funções: o <a href="http://pt.wikipedia.org/wiki/C%C3%A1lculo_Lambda">Cálculo Lambda</a> de <a href="http://pt.wikipedia.org/wiki/Alonzo_Church">Alonzo Church</a>). Durante os anos de <a href="http://pt.wikipedia.org/wiki/1970">1970</a> e <a href="http://pt.wikipedia.org/wiki/1980">1980</a>, Lisp se tornou a principal linguagem da comunidade de inteligência artificial, tendo sido pioneiro em aplicações como <a href="http://pt.wikipedia.org/w/index.php?title=Administra%C3%A7%C3%A3o_autom%C3%A1tica_de_armazenamento&amp;action=edit&amp;redlink=1">administração automática de armazenamento</a>, <a href="http://pt.wikipedia.org/wiki/Interpretador">linguagens interpretadas</a> e <a href="http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_funcional">programação funcional</a>.</p>
<p align="right">Wikipedia</p>
<p><strong>Por que Lisp?      <br /></strong>Lisp é uma linguagem funcional, que influencia implementação de diversas linguagens de programação e ainda possui uma sintaxe “complicada” que uma vez vencida a barreira torna o caminho do aprendizado de linguagens e paradigmas mais fácil.</p>
<p>&#160;</p>
<p align="left"><strong>Paralelismo      <br /></strong>Antes de explicar a escolha da linguagem vou explicar a escolha do paradigma. Lisp é excelente para representar o paradigma funcional, a linguagem foi concebida tendo como base as definições e princípios desse paradigma. Hoje parte das linguagens apresentam características e recursos funcionais, quem é do “mundo .NET” já viu isso com LINQ e F#.A cada dia as soluções de software precisam aproveitar melhor a capacidade de processamento do hardware multi-core e os princípios propostos no paradigma funcional são excelentes para trabalhar com paralelismo.</p>
<p>&#160;</p>
<p><strong>Sintaxe Críptica      <br /></strong>Entre as linguagens historicamente mais difundidas lisp é uma das linguagens com sintaxe mais complexa, Logo uma vez familiarizado com Lisp é possível obter conhecimento em paradigmas funcionais e de quebra se torna mais fácil aprender linguagens derivadas e influenciadas por lisp.</p>
<p><strong>     <br /></strong>Não vou me alongar falando sobre benefícios e razões para aprender lisp, vamos ao código. Vou usar o Repl disponível <a href="http://www.cs.utexas.edu/~novak/gclwin.html">aqui</a>. Vamos começar pelo Olá mundo.</p>
<p>&#160;</p>
<p> <script src="https://gist.github.com/987728.js?file=OlaMundo.lisp"></script>
<p>&#160;</p>
<p>A função usada para definir uma função em lisp é defun, você precisa passar três parâmetros, o <strong>nome da função</strong>, <strong>parâmetros</strong> e <strong>corpo da função</strong>. A função defun é usada dentro de (), assim como muitos comandos em lisp.Sendo assim temos a seguinte estrutura:</p>
<p><strong>Estrutura do método defun      <br /></strong>Nome da função: ola-mundo     <br />Parâmetros: nenhum     <br />Corpo da função: ‘(Ola mundo)</p>
<p>&#160;</p>
<p><strong>Padrão de nomenclatura de funções</strong></p>
<p>O padrão de nomenclatura de funções compostas em lisp é usar um hífen para separar as partes do nome, nada de Cases diferenciados ou underline.</p>
<p><strong>Simbolos no lugar de texto      <br /></strong>Programadores lisp evitam o uso de texto e na maior parte do tempo usam simbolos. O exemplo de código acima define um símbolo ‘(Ola mundo).</p>
<p><strong>Ola mundo no estilo funcional      <br /></strong>A função ola-mundo retorna um valor e não escreve dados na tela, a função retorna um símbolo e não possui <a href="http://en.wikipedia.org/wiki/Side_effect_(computer_science)">side-effect</a>. O código pode ser chamado inúmeras vezes que o resultado será o mesmo, essa é uma característica do paradigma funcional</p>
<p>&#160;</p>
<p>Por hoje é só pessoal, esse post marca um novo rumo no quesito conteúdo do meu blog, iniciando por esse post esse blog deixa de ser um blog que so fala de linguagens do mundo .NET.Espero misturar posts semanais do mundo .NET e de outras linguagens, espero que gostem. </p>
]]></content:encoded>
			<wfw:commentRss>http://higorcesar.com.br/lang/pt-br/iniciando-com-lisp/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evento: WebCamps no Rio de Janeiro</title>
		<link>http://higorcesar.com.br/lang/pt-br/evento-webcamps-no-rio-de-janeiro</link>
		<comments>http://higorcesar.com.br/lang/pt-br/evento-webcamps-no-rio-de-janeiro#comments</comments>
		<pubDate>Sun, 15 May 2011 15:54:00 +0000</pubDate>
		<dc:creator>higor.cesar</dc:creator>
				<category><![CDATA[.NET 4.0]]></category>
		<category><![CDATA[Comunidade]]></category>
		<category><![CDATA[Eventos]]></category>

		<guid isPermaLink="false">http://higorcesar.com.br/lang/pt-br/evento-webcamps-no-rio-de-janeiro</guid>
		<description><![CDATA[Olá pessoal, em algumas semanas teremos mais um evento promovido pela comunidade de software do RJ, no dia 28/05/2011 vai acontecer o webcamps no instituto infnet. O foco do evento será o desenvolvimento de aplicações web com o framework .NET, entre as tecnologias que serão abordadas estão: ASP.NET MVC, HTML 5, RESTFul Services e Entity [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal, em algumas semanas teremos mais um evento promovido pela comunidade de software do RJ, no dia <strong>28/05/2011</strong> vai acontecer o <a href="http://www.webcamps.com.br/">webcamps</a> no instituto <a href="http://www.infnet.edu.br">infnet</a>.</p>
<p>O foco do evento será o<a href="http://higorcesar.com.br/wp-content/uploads/2011/05/logo-webcamps.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="logo-webcamps" border="0" alt="logo-webcamps" align="right" src="http://higorcesar.com.br/wp-content/uploads/2011/05/logo-webcamps_thumb.png" width="227" height="146" /></a> desenvolvimento de aplicações web com o framework .NET, entre as tecnologias que serão abordadas estão: ASP.NET MVC, HTML 5, RESTFul Services e Entity Framework. </p>
<p>O evento será <strong>gratuito,</strong>basta se inscrever <a href="http://www.webcamps.com.br/Home/Inscricao">aqui</a> e aparecer no dia 28/05.&#160; Se você já frequentou os eventos de comunidades do Rio de Janeiro sabe que que o<strong> #HappyHour é obrigatório</strong>.</p>
<p>A motivação pra organizar o evento surgiu da participação de algumas pessoas da comunidade de desenvolvimento do RJ no evento que aconteceu em março em são paulo e teve a presença do Phil Haack(PM do ASP.NET MVC).A edição de são paulo foi excelente, muito aprendizado e networking, então o pessoal decidiu trazer o evento para nosso estado. quer saber mais como foi a edição de SP? <a href="http://higorcesar.com.br/lang/pt-br/o-que-achei-do-webcamps-brasil">leia aqui.</a></p>
<p>&#160;</p>
<p><a href="http://www.webcamps.com.br/Home/Agenda">Agenda</a></p>
<p><a href="http://www.webcamps.com.br/Home/Inscricao">Inscrição</a></p>
<p><a href="http://www.webcamps.com.br/Home/Contato">Contato</a></p>
]]></content:encoded>
			<wfw:commentRss>http://higorcesar.com.br/lang/pt-br/evento-webcamps-no-rio-de-janeiro/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EF 4.1: Mapear uma tabela para v&#225;rias entidades</title>
		<link>http://higorcesar.com.br/lang/pt-br/ef-4-1-mapear-uma-tabela-para-vrias-entidades</link>
		<comments>http://higorcesar.com.br/lang/pt-br/ef-4-1-mapear-uma-tabela-para-vrias-entidades#comments</comments>
		<pubDate>Tue, 10 May 2011 22:27:00 +0000</pubDate>
		<dc:creator>higor.cesar</dc:creator>
				<category><![CDATA[.NET 4.0]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[EF4CTP5;Entity Framework;EF4CTP5]]></category>

		<guid isPermaLink="false">http://higorcesar.com.br/?p=545&#038;lang=pt-br</guid>
		<description><![CDATA[Olá pessoal, desta vez vamos ver como mapear uma tabela em várias entidades, uso como base e inspiração esse post aqui. A técnica é bem valiosa nos cenários de uso do EF em sistemas legados, hoje eu estou trabalhando a maior parte na migração de um sistema asp para .NET 4, o grande problema é [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal, desta vez vamos ver como mapear uma tabela em várias entidades, uso como base e inspiração esse post <a href="http://weblogs.asp.net/manavi/archive/2011/04/24/associations-in-ef-4-1-code-first-part-4-table-splitting.aspx">aqui</a>. A técnica é bem valiosa nos cenários de uso do EF em sistemas legados, hoje eu estou trabalhando a maior parte na migração de um sistema asp para .NET 4, o grande problema é que o banco de dados é legado e realizado de uma maneira que não ajuda o desenvolvimento baseado em OO( não existe coesão e separação de conceitos) então essa funcionalidade ajuda a diminuir o gap entre o domínio e banco de dados.</p>
<p><strong>1- Modelo de dados</strong></p>
<p><a href="http://higorcesar.com.br/wp-content/uploads/2011/05/TabelaPessoa.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="TabelaPessoa" src="http://higorcesar.com.br/wp-content/uploads/2011/05/TabelaPessoa_thumb.png" border="0" alt="TabelaPessoa" width="325" height="191" /></a></p>
<p><strong>2-Entidade de mapeamento<br />
</strong>Vamos separar o endereço em uma entidade separada para tentarmos aumentar a coesão e caminhar em busca de um modelo mais simples e delineado.Então ficamos com as duas entidades abaixo:</p>
<p><script src="https://gist.github.com/965480.js?file=Pessoa.cs"></script><script src="https://gist.github.com/965480.js?file=Endereco.cs"></script></p>
<p><strong>3- Configuração do mapeamento<br />
</strong>Você pode reparar que foi necessário definir uma coluna e configurar a chave primária na entidade endereço e ainda foi configurado um relacionamento com as duas pontas obrigatórias.</p>
<p><script src="https://gist.github.com/965480.js?file=ContextoAcessoDados.cs"></script></p>
<p><strong>4-Exemplo<br />
</strong></p>
<p><script src="https://gist.github.com/965480.js?file=exemplo.cs"></script></p>
<p>É isso pessoal, em breve vou falar mais sobre algumas configurações de relacionamentos com foco em modelo rico e OO.</p>
<p><a href="https://bitbucket.org/higorcesar/exemplos-de-c-digo-ef-4.1/downloads">Download do exemplo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://higorcesar.com.br/lang/pt-br/ef-4-1-mapear-uma-tabela-para-vrias-entidades/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

