<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2portuguesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>.Net Unplugged</title>
    <description>.Net essencial</description>
    <link>http://unplugged.giggio.net/unplugged/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.4.5.0</generator>
    <language>pt-BR</language>
    <blogChannel:blogRoll>http://unplugged.giggio.net/unplugged/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://unplugged.giggio.net/syndication.axd</blogChannel:blink>
    <dc:creator>Giovanni Bassi</dc:creator>
    <dc:title>.Net Unplugged</dc:title>
    <geo:lat>-2,356.000000</geo:lat>
    <geo:long>-4,663.000000</geo:long>
    <geo:lat>-23.5505</geo:lat><geo:long>-46.6343</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><image><link>http://unplugged.giggio.net</link><url>http://unplugged.giggio.net/themes/StableStartBlack1.3/images/image4.gif</url><title>.Net Unplugged</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/DotNetUnplugged" type="application/rss+xml" /><feedburner:emailServiceId>DotNetUnplugged</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FDotNetUnplugged" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FDotNetUnplugged" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FDotNetUnplugged" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/DotNetUnplugged" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FDotNetUnplugged" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FDotNetUnplugged" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FDotNetUnplugged" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>HTML 5: E daí?</title>
      <description>&lt;p&gt;&lt;a href="http://unplugged.giggio.net/post/Silverlight-3-concluido-e-disponivel.aspx" target="_blank"&gt;No post anterior&lt;/a&gt; eu comentei sobre &lt;a href="http://unplugged.giggio.net/post/Silverlight-3-concluido-e-disponivel.aspx" target="_blank"&gt;o lançamento do tão esperado Silverlight 3&lt;/a&gt;, disse que achava que talvez estejamos indo longe demais com HTML + Javascript + CSS, e disse também que o HTML 5 já nascia morto. Algumas pessoas comentaram essa minha afirmação, o que me leva a escrever este post, já que diversas outras pessoas devem concordar com as que comentaram, mas não se deram ao trabalho de comentar. Esse post então é para trazermos a discussão para o local certo, e para que eu possa expor minhas idéias além de duas curtas frases.&lt;/p&gt;  &lt;p&gt;Quando eu digo que o HTML 5 já nasce morto, não quero dizer que ele não vai ser usado. Eu acho muito difícil que, até o lançamento do HTML 5, o mundo pare de usar HTML e passe a usar qualquer outra coisa como base para suas aplicações web. O HTML 5 sucede o 4, e vai ser usado assim que for lançado. Isso, no entanto, não significa que as aplicações realmente ricas serão feitas com ele. E nesse sentido, sim, o HTML 5 nasce morto. &lt;/p&gt;  &lt;p&gt;Para começar o HTML 5 vai estar pronto daqui a 13 anos (em 2022), segundo o seu próprio editor (confiram &lt;a href="http://blogs.techrepublic.com.com/programming-and-development/?p=718" target="_blank"&gt;o calendário proposto pelo Ian Hickson&lt;/a&gt;). A primeira especificação em rascunho será liberada somente em 3 anos, em 2012, a segunda em 2015 (depois de 3 anos!), e a terceira em 2019 (daqui dez anos). Eu sei o que pretendo fazer nos próximos dois anos. Para daqui 5 anos, eu tenho planos. Não sei vocês, mas não tenho a menor idéia do que vou estar fazendo daqui a dez anos. Muita coisa pode mudar. Vai ver alguém aparece e inventa aquele monitor do filme &amp;quot;O pagamento&amp;quot; (Paycheck), que na verdade nem é um monitor, é só uma imagem em 3D flutuando sobre um pequeno aparelho (quem não viu o filme, recomendo). Na realidade, já inventaram tecnologias que deixam o HTML 5 obsoleto. Elas se chamam Silverlight, Flex, e JavaFx. E sabem quando é o lançamento destas tecnologias? Ontem, uns meses, uns anos atrás. Não é para daqui 13 anos, é para ontem.&lt;/p&gt;  &lt;p&gt;Alguns dirão que o HTML 5 já é suportado para alguns navegadores. O Firefox 3.5, por exemplo, já suporta algumas coisinhas. A Microsoft, por outro lado, provavelmente não vai suportar absolutamente nada até que a especificação esteja concluída (com razão). Lembrando que ela detém por volta de 70% do mercado de navegadores, isso coloca o HTML 5 com lançamento oficial só em 2022 mesmo, quando o IE passar a suportá-lo. Ainda que o FF suporte, nenhum grande site vai usar as novidades do HTML 5 se ela é suportada somente em um navegador (ou grupo de navegadores) que detém menos de 20% do mercado. E mesmo que fosse o contrário, e somente o IE suportasse, ainda assim os grandes sites não iriam aderir, porque ninguém pode cortar 30% da sua audiência só porque o pessoal do HTML 5 só quer lançar uma pré-versão a cada 3 anos mais ou menos pelos próximos 13 anos. E, vamos lá… vamos dizer que todos os navegadores suportassem, o que aconteceria? Teríamos o inferno da incompatibilidade novamente, já que cada navegador implementaria as lacunas da especificação do seu jeito, já que a especificação estaria incompleta. Estaríamos de volta ao problema da verificação do navegador.&lt;/p&gt;  &lt;p&gt;Não bastasse o fato do HTML 5 chegar tarde no jogo, ele chega apresentando novidades que sequer chegam aos pés das propostas pelas tecnologias RIAs de verdade. Como vocês podem ver na &lt;a href="http://en.wikipedia.org/wiki/Html5" target="_blank"&gt;página do HTML 5 na Wikipedia&lt;/a&gt;, as &amp;quot;novidades&amp;quot; do HTML 5 são novos elementos, mais semânticos que os anteriores, como &amp;quot;section&amp;quot; e &amp;quot;footer&amp;quot;, novos controles de formulários, alguns novos atributos, atributos globais, tratamento de erro, e algumas novas APIs. Essas APIs seriam a grande novidade, já que trazem coisas como controle de tempo de playback, drag and drop, um banco de dados local, entre outros. A mais famosa entre estas, e a mais falada é o canvas, um elemento que permite desenhar bitmaps com scripts. Isso, foi isso mesmo que você leu. Bitmaps. Desenhados com scripts. É, eu também tive vontade de me matar quando eu li isso (na verdade matar os caras que estão especificando este absurdo). Enquanto o mundo inteiro caminha para o desenho vetorial, o HTML 5 caminha para o lado oposto, o bitmap. Em 2022 eles vão estar em 1980. Excepcional! E desenhando de forma imperativa, com Javascript, e não declarativa (com XML, por exemplo, como faz o Silverlight), o que deixa o negócio todo ainda pior. Eu não sei vocês, mas não vou pedir para nenhum designer desenhar com Javascript (pode ser perigoso). (Em tempo: vi algumas referências – não oficiais – que podem indicar suporte a desenho vetorial no HTML 5, mas nada conclusivo, indicando que o HTML 5 seria capaz de manipular vetores, e não só exibí-los. Se alguém souber de algo me corrija.) Algumas coisas que são extremamente simples de serem feitas também parecem bem complicadas no HTML 5. Mas tenho certeza que nos próximos 13 anos (!?!?!) eles vão arrumar isso. Só que daí as tecnologias também vão ter evoluído 13 anos, e o nível exigido vai ser muito maior do que o que eles especificaram em 2012, quando fecharam o primeiro rascunho (10 anos antes da versão final): vai nascer obsoleto.&lt;/p&gt;  &lt;p&gt;Tem ainda o problema de quem está tocando esse negócio todo. Tem gente do Google, gente da Apple, gente da Nokia… ou seja, gente demais. E eles não parecem concordar em muita coisa, como vocês podem ver pela &lt;a href="http://en.wikipedia.org/wiki/Ogg_controversy" target="_blank"&gt;recente briga a respeito dos codecs de video&lt;/a&gt; que está acontecendo. Cada um quer empurrar o codec que acha mais bonito, e na prática não há codec escolhido. O HTML 5 vai sair sem codec? Vai ver eles vão empurrar o lançamento um ou dois aninhos pra frente, para, sei lá, 2025, até resolverem isso. Afinal, que diferença faz, 2022 ou 2025, não é verdade? Irrelevância por irrelevância, está tudo na mesma.&lt;/p&gt;  &lt;p&gt;Gostaria que ficasse claro então o que estou dizendo: o HTML 5 chega tarde demais no jogo, quando ele vai estar totalmente mudado, e sem trazer grandes melhorias. Não vai se estabelecer nunca como uma plataforma RIA. Vai continuar sendo suporte para outras tecnologias, como o Silverlight e o Flex (se esse sobreviver até lá), e vai trazer algumas novidades, que talvez nós nem venhamos a utilizar, porque a web vai ter mudado demais. É viver para ver.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=_Q5z_N9lUHM:GI39DeffEqc:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=_Q5z_N9lUHM:GI39DeffEqc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=_Q5z_N9lUHM:GI39DeffEqc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=_Q5z_N9lUHM:GI39DeffEqc:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=_Q5z_N9lUHM:GI39DeffEqc:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=_Q5z_N9lUHM:GI39DeffEqc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=_Q5z_N9lUHM:GI39DeffEqc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=_Q5z_N9lUHM:GI39DeffEqc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=_Q5z_N9lUHM:GI39DeffEqc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=_Q5z_N9lUHM:GI39DeffEqc:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/_Q5z_N9lUHM" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/_Q5z_N9lUHM/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/HTML-5-E-dai.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=a7f5c538-60bf-430a-b1b1-75c781dec562</guid>
      <pubDate>Sun, 12 Jul 2009 18:22:47 -0700</pubDate>
      <category>Polêmicas</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=a7f5c538-60bf-430a-b1b1-75c781dec562</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=a7f5c538-60bf-430a-b1b1-75c781dec562</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/HTML-5-E-dai.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=a7f5c538-60bf-430a-b1b1-75c781dec562</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=a7f5c538-60bf-430a-b1b1-75c781dec562</feedburner:origLink></item>
    <item>
      <title>Silverlight 3 concluído e disponível</title>
      <description>&lt;p&gt;Yes! Silverlight 3 chegou a RTW (Release To Web). Baixem aqui:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/silverlight/resources/install.aspx"&gt;http://www.microsoft.com/silverlight/resources/install.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Novidades do Silverlight 3 incluem novos controles, 3D, aceleração de hardware, além da possibilidade de rodar o SL fora do navegador, entre várias outras. Vejam &lt;a href="http://timheuer.com/blog/archive/2009/03/18/silverlight-3-whats-new-a-guide.aspx" target="_blank"&gt;outras novidades da v3 aqui&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Ao mesmo tempo a Microsoft &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=92e1db7a-5d36-449b-8c6b-d25f078f3609" target="_blank"&gt;liberou o RC (Release Candidate) do Blend 3 e do SketchFlow&lt;/a&gt;, aquela ferramenta que fez todo mundo cair de queixo no último Mix. E claro, &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=9442b0f2-7465-417a-88f3-5e7b5409e9dd&amp;amp;displaylang=en" target="_blank"&gt;as ferramentas do VS 2008 para SL&lt;/a&gt; também já foram liberadas.&lt;/p&gt;  &lt;p&gt;Eu não costumo falar muito de SL por aqui. Quer saber porque estou falando agora? Porque eu estou com um feeling que a terceira versão do Silverlight é a versão que vai deixar claro que o Flex, apesar de ser uma alternativa interessante, ficou para trás. Foi legal enquanto durou. É o HD-DVD das RIA. A partir de agora a distância vai começar a ficar cada vez maior.&lt;/p&gt;  &lt;p&gt;Eu nem preciso dizer que me agrada muito abandonar o modelo stateless do HTML e abraçar o C#, o VB, o XAML, e o IronRuby no Silverlight, não é? Eu gosto muito de ASP.Net MVC, e tudo o que conseguimos fazer hoje com Javascript (e suas poderosas libraries) e CSS, mas acho que talvez o HTML já tenha ido mais longe do que devia.&lt;/p&gt;  &lt;p&gt;Em tempo: o HTML 5 já nasce morto (igual ao Chrome OS, mas isso é assunto para outro post). Aliás, ainda nem nasceu. Está em especificação, e os próprios especificadores não sabem o que entra e o que não entra, quais codecs suportar para vídeo, etc, etc. O Firefox entra fazendo alarde que suporta um negócio que não está nem em Alpha… e que quer tentar competir com aplicações RIA &lt;strong&gt;de verdade&lt;/strong&gt;, feitas com Silverlight. Dá até dó. Quando o HTML5 estiver pronto (especificado e disponível nos navegadores líderes), em 2020 (mais ou menos), ninguém nem vai mais querer saber o que é (era?) HTML (kind of).&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=qR4gKZkVt1k:5xN_Eb_xEzI:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=qR4gKZkVt1k:5xN_Eb_xEzI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=qR4gKZkVt1k:5xN_Eb_xEzI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=qR4gKZkVt1k:5xN_Eb_xEzI:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=qR4gKZkVt1k:5xN_Eb_xEzI:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=qR4gKZkVt1k:5xN_Eb_xEzI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=qR4gKZkVt1k:5xN_Eb_xEzI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=qR4gKZkVt1k:5xN_Eb_xEzI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=qR4gKZkVt1k:5xN_Eb_xEzI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=qR4gKZkVt1k:5xN_Eb_xEzI:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/qR4gKZkVt1k" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/qR4gKZkVt1k/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/Silverlight-3-concluido-e-disponivel.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=c4692051-5a48-4836-a0b1-f5099d452f0d</guid>
      <pubDate>Thu, 09 Jul 2009 22:20:54 -0700</pubDate>
      <category>Silverlight</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=c4692051-5a48-4836-a0b1-f5099d452f0d</pingback:target>
      <slash:comments>9</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=c4692051-5a48-4836-a0b1-f5099d452f0d</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/Silverlight-3-concluido-e-disponivel.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=c4692051-5a48-4836-a0b1-f5099d452f0d</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=c4692051-5a48-4836-a0b1-f5099d452f0d</feedburner:origLink></item>
    <item>
      <title>O DBA morreu?</title>
      <description>&lt;p&gt;&lt;a href="http://unplugged.giggio.net/post/Mapeamento-objeto-relacional-facilitado.aspx" target="_blank"&gt;Nesta segunda-feira&lt;/a&gt; mostrei que o mapeamento objeto relacional de uma aplicação inteira pode ser feito em 60 linhas de código e deixei no ar a pergunta que dá nome a este post:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;- O DBA morreu?&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Vou respondê-la agora:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;- Não. Não morreu. Nem vai morrer. Aliás, é o contrário.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Porque não? Porque ele não morreu se agora o banco virou um mero repositório de dados? Respondo: não morreu porque o banco não é um mero repositório de dados. Apesar de hoje termos ORMs capazes de fazer todo o mapeamento automaticamente (ou mesmo que tenhamos que fazê-lo manualmente para depois o ORM gerar um banco de dados) isso só significa que temos produtividade neste contato com o banco. É o DBA, o especialista em banco de dados, quem vai ajudar a preparar o banco para uma aplicação, o que vai muito além de gerar algumas tabelas.&lt;/p&gt;  &lt;p&gt;O que isso significa? Devemos então ignorar o automapeamento? Ou o mapeamento fluente? Temos que abandonar os ORMs? &lt;/p&gt;  &lt;p&gt;Não, claro que não. Na maioria da aplicações (na minha experiência – e isso varia), em torno de 50% das suas operações de entrada e saída de dados são simples CRUDs, sem muita complexidade. É comum também que estas mesmas operações sejam pouco usadas pelos usuários, já que as telas que trazem valor para o negócio não são simples CRUDs, ou o sistema sequer seria necessário. É nestas telas complexas que nosso esforço deve se concentrar. E é nas telas de CRUD simples que o automapeamento e os ORMs realmente ajudam. No resto podemos usar um mapeamento manual, ou até eliminar o ORM por completo. Se precisamos de performance, se temos que espremer cada milisegundo, por exemplo, talvez um ORM não seja a solução ideal. Nesse cenário podemos isolar as partes da aplicação que tem essas características, e não usar um ORM. No resto, usamos um ORM com mapeamento automático. Ganhamos tempo e dinheiro para quem está pagando pela aplicação.&lt;/p&gt;  &lt;p&gt;Além disso, um DBA sempre é importante no final das iterações do projeto, já que é lá que você vai precisar testar e otimizar a performance da aplicação, além de verificar sua adequação aos diversos padrões do projeto. Então, no final da iteração, você examina o modelo gerado pelo seu ORM junto do DBA e confirma se ele quer mudar alguma coisa, acrescentar índices, mudar colunas, tabelas, etc. Depois de pegar esse feedback o banco é refatorado, junto com o mapeamento, tudo é revisado, e a iteração segue para sua conclusão. O DBA atua confirmando se os desenvolvedores, que em geral não especialistas em banco de dados, não estão cometendo nenhum absurdo. É bom que ele faça isso, já que é ele quem vai conviver com o banco de dados depois.&lt;/p&gt;  &lt;p&gt;Depois que paramos para pensar, parece óbvio, não é? No mundo de hoje precisamos de pessoas cada vez mais especializadas. Precisamos de especialistas em algorítmos, de conhecedores de paradigmas de linguagens diferentes, de arquitetos, entre outros tipos de especialistas, e os especialistas de banco de dados claramente não poderiam ficar de fora. E eles vão ficar mais importantes ainda, conforme as tecnologias de armazenagem evoluem. O que pode acontecer é que talvez precisemos de menos DBAs para sustentar as aplicações (algo que tem acontecido), mas eu não arriscaria minha vida nisso.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=m9lkIlj4upQ:_o1vuCUJNvk:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=m9lkIlj4upQ:_o1vuCUJNvk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=m9lkIlj4upQ:_o1vuCUJNvk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=m9lkIlj4upQ:_o1vuCUJNvk:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=m9lkIlj4upQ:_o1vuCUJNvk:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=m9lkIlj4upQ:_o1vuCUJNvk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=m9lkIlj4upQ:_o1vuCUJNvk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=m9lkIlj4upQ:_o1vuCUJNvk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=m9lkIlj4upQ:_o1vuCUJNvk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=m9lkIlj4upQ:_o1vuCUJNvk:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/m9lkIlj4upQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/m9lkIlj4upQ/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/O-DBA-morreu.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=7858df54-1027-4dce-ac27-46c3bb20a8dd</guid>
      <pubDate>Wed, 08 Jul 2009 08:08:00 -0700</pubDate>
      <category>Polêmicas</category>
      <category>Mapeadores O/R</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=7858df54-1027-4dce-ac27-46c3bb20a8dd</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=7858df54-1027-4dce-ac27-46c3bb20a8dd</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/O-DBA-morreu.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=7858df54-1027-4dce-ac27-46c3bb20a8dd</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=7858df54-1027-4dce-ac27-46c3bb20a8dd</feedburner:origLink></item>
    <item>
      <title>Mapeamento objeto relacional facilitado</title>
      <description>&lt;p&gt;No &lt;a href="http://dotnetarchitects.net/dnad2009" target="_blank"&gt;.Net Architects Day&lt;/a&gt; eu apresentei rapidamente um exemplo iniciante de um sistema de blog durante &lt;a href="http://unplugged.giggio.net/post/Downloads-e-informacoes-da-palestra-de-DDD-do-Net-Architects-Day-2009.aspx" target="_blank"&gt;minha palestra de DDD&lt;/a&gt;. Eu havia criado algumas entidades, post e comentário, e tudo funcionava.&lt;/p&gt;  &lt;p&gt;Aí resolvi criar outra entidade: usuário. Criei a entidade, criei o controlador as views, liguei tudo, e tudo continuava funcionando. Não criei repositórios específicos, nem mapeamento, nem nada a mais, só a entidade e as partes de interface gráfica. Estava usando NHibernate para resolver o &amp;quot;problema&amp;quot; da relação objeto e dados relacionais. De repente a tabela apareceu lá, os dados salvavam corretamente, o SQL gerado era otimizado e eu estava feliz.&lt;/p&gt;  &lt;p&gt;Tudo funcionava. Tudo automático. Muitos me perguntaram como isso foi feito. A resposta é muito simples. Além do NHibernate usei também um pouco de NHibernate Fluente e sua possibilidade de trabalhar automapeamento baseado em convenções. Minha classe de configuração do NHibernate fazia mapeamento de três formas: a básica do NH (com XML), a fluente (do NH fluente), e a automática. O código da classe de autoconfiguração é muito curto, cerca de 60 linhas:&lt;/p&gt;  &lt;pre class="c#" name="code"&gt;public class Autoconfiguracao
{
    private static ISessionFactory _factory;
    public static ISessionFactory Configurar(bool gerarBanco = true)
    {
        if (_factory != null)
            return _factory;

        var config = Fluently.Configure()
            .Database(
            FluentNHibernate.Cfg.Db.MsSqlConfiguration.MsSql2005
            .ConnectionString(c =&amp;gt;
              c.Is(@&amp;quot;Data Source=.\sqlexpress;Initial Catalog=DNAD09Blog;Integrated Security=True&amp;quot;))
              .ShowSql()
        );

        config.Mappings(m =&amp;gt;
        {
            m.HbmMappings.AddFromAssemblyOf&amp;lt;Autoconfiguracao&amp;gt;();

            m.FluentMappings
                .AddFromAssemblyOf&amp;lt;Autoconfiguracao&amp;gt;();

            m.AutoMappings.Add(
                AutoPersistenceModel.MapEntitiesFromAssemblyOf&amp;lt;Postagem&amp;gt;()
                .WithSetup(s =&amp;gt; s.IsBaseType = (type =&amp;gt; type == typeof(EntidadeComId)))
                .ConventionDiscovery.Setup(c =&amp;gt;
                {
                    c.Add(PrimaryKey.Name.Is(x =&amp;gt; x.EntityType.Name + &amp;quot;_Id&amp;quot;));
                    c.Add(DefaultLazy.AlwaysFalse());
                    //c.Add(ForeignKey.Format((prop, tipo) =&amp;gt; prop.Name + &amp;quot;_Id&amp;quot;));
                    c.Add(Table.Is(x =&amp;gt; x.EntityType.Name));
                }
                )
                .Where(t =&amp;gt;
                    t.Namespace == &amp;quot;Dnad09.Blog.Dominio.Entidades&amp;quot;
                    &amp;amp;&amp;amp; t.IsInterface == false
                    &amp;amp;&amp;amp; t.IsAbstract == false
                )
            );
        }
        );

        if (gerarBanco)
        {
            config.ExposeConfiguration(cfg =&amp;gt;
            {
                var schemaExport = new SchemaExport(cfg);
                schemaExport.Create(false, true);
            });
        }
        _factory = config.BuildSessionFactory();
        return _factory;
    }
}&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Na parte de configuração, que vai até &amp;quot;config.Mappings&amp;quot; (linhas 17 a 42) todas as chamadas são baseadas em Lambdas. Em seguida se o flag gerar bancos é configurado então o banco é criado, e a factory do NH é retornada. Nela estão todas as configurações do NH, e a criação de sessões do NH, que é o que realmente importa, é muito facilitada. Para trocar o banco de dados para Oracle, por exemplo, bastaria trocar a chamada &amp;quot;Fluently.Configure&amp;quot; (linhas 9 a 15) para trabalhar com este banco de dados.&lt;/p&gt;

&lt;p&gt;O mais interessante é a possibilidade de mapear automaticamente apenas a parte que interessa. Podemos mapear algumas classes automaticamente, aceitando as convenções, e em outras utilizar mapeamento fluente ou baseado em XML. Em um cliente recentemente fizemos isso através de atributos: se uma classe tinha um atributo de automapeamento que criamos, então usávamos ela no automapeamento. Senão, teríamos que trabalhar o mapeamento de forma fluente ou com XML.&lt;/p&gt;

&lt;p&gt;A produtividade neste tipo de cenário é gigantesca. O foco é o domínio, ou seja, o coração de um software de negócios. A persistência dos dados não é sequer uma preocupação.&lt;/p&gt;

&lt;p&gt;Essa abordagem toda é muito legal, mas levantou questões interessantes no .Net Architects Day, que foram inclusive discutidas em outras palestras, como a dada pelo Juliano, que foi mais focada em ORM. Entre elas, a mais polêmica foi sem dúvida a seguinte:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;- O DBA morreu?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Minha resposta desta pergunta nesta quarta-feira de manhã. Aguardem.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=oHJzvqloQP8:xVyZnPhBSXc:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=oHJzvqloQP8:xVyZnPhBSXc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=oHJzvqloQP8:xVyZnPhBSXc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=oHJzvqloQP8:xVyZnPhBSXc:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=oHJzvqloQP8:xVyZnPhBSXc:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=oHJzvqloQP8:xVyZnPhBSXc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=oHJzvqloQP8:xVyZnPhBSXc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=oHJzvqloQP8:xVyZnPhBSXc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=oHJzvqloQP8:xVyZnPhBSXc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=oHJzvqloQP8:xVyZnPhBSXc:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/oHJzvqloQP8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/oHJzvqloQP8/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/Mapeamento-objeto-relacional-facilitado.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=a6e82a62-06cc-4eda-9476-24fc944ed712</guid>
      <pubDate>Mon, 06 Jul 2009 02:43:00 -0700</pubDate>
      <category>Mapeadores O/R</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=a6e82a62-06cc-4eda-9476-24fc944ed712</pingback:target>
      <slash:comments>6</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=a6e82a62-06cc-4eda-9476-24fc944ed712</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/Mapeamento-objeto-relacional-facilitado.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=a6e82a62-06cc-4eda-9476-24fc944ed712</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=a6e82a62-06cc-4eda-9476-24fc944ed712</feedburner:origLink></item>
    <item>
      <title>Comunidade toma tempo</title>
      <description>&lt;p&gt;Vejam o topo da minha caixa de entrada depois de uma tarde sem ver e-mails (e eu nem estou mostrando o resto – dá medo!):&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Emails" border="0" alt="Emails" src="http://unplugged.giggio.net/unplugged/image.axd?picture=WindowsLiveWriter/Comunidadetomatempo_11446/Emails_3.png" width="437" height="319" /&gt; &lt;/p&gt;  &lt;p&gt;Toma ou não toma? &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=eZ-cjSITI3s:0DNGap32EiU:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=eZ-cjSITI3s:0DNGap32EiU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=eZ-cjSITI3s:0DNGap32EiU:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=eZ-cjSITI3s:0DNGap32EiU:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=eZ-cjSITI3s:0DNGap32EiU:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=eZ-cjSITI3s:0DNGap32EiU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=eZ-cjSITI3s:0DNGap32EiU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=eZ-cjSITI3s:0DNGap32EiU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=eZ-cjSITI3s:0DNGap32EiU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=eZ-cjSITI3s:0DNGap32EiU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/eZ-cjSITI3s" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/eZ-cjSITI3s/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/Comunidade-toma-tempo.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=3538d217-1ab1-4d4c-bab2-3614ff54bba3</guid>
      <pubDate>Fri, 03 Jul 2009 15:38:42 -0700</pubDate>
      <category>Outros</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=3538d217-1ab1-4d4c-bab2-3614ff54bba3</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=3538d217-1ab1-4d4c-bab2-3614ff54bba3</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/Comunidade-toma-tempo.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=3538d217-1ab1-4d4c-bab2-3614ff54bba3</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=3538d217-1ab1-4d4c-bab2-3614ff54bba3</feedburner:origLink></item>
    <item>
      <title>Downloads e informações da palestra de DDD do .Net Architects Day 2009</title>
      <description>&lt;p&gt;Pessoal, conforme prometido, segue aqui o material da minha palestra sobre DDD do &lt;a href="http://dotnetarchitects.net/dnad2009" target="_blank"&gt;.Net Architects Day 2009&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Apresentação:&lt;/p&gt;  &lt;div style="width:425px;text-align:left" id="__ss_1665440"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/giovanni.bassi/programando-com-prazer-com-ddd?type=powerpoint" title="Programando com prazer com DDD"&gt;Programando com prazer com DDD&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ddd2-090701000623-phpapp02&amp;amp;stripped_title=programando-com-prazer-com-ddd" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ddd2-090701000623-phpapp02&amp;amp;stripped_title=programando-com-prazer-com-ddd" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;documents&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/giovanni.bassi"&gt;Giovanni Bassi&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Links:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Domain Language (empresa do Evans)     &lt;br /&gt;&lt;a href="http://domainlanguage.com/"&gt;http://domainlanguage.com/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Grupo do Yahoo sobre DDD (em inglês)     &lt;br /&gt;&lt;a href="http://groups.yahoo.com/group/domaindrivendesign"&gt;http://groups.yahoo.com/group/domaindrivendesign&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Greg Young (MVP - em inglês)     &lt;br /&gt;&lt;a href="http://codebetter.com/blogs/gregyoung/"&gt;http://codebetter.com/blogs/gregyoung/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Domain Driven Design.org (em inglês)     &lt;br /&gt;&lt;a href="http://www.domaindrivendesign.org/"&gt;http://www.domaindrivendesign.org/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Jimmy Nilsson (em inglês)     &lt;br /&gt;&lt;a href="http://jimmynilsson.com"&gt;http://jimmynilsson.com&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;O download do projeto pode ser feito &lt;a href="http://unplugged.giggio.net//file.axd?file=2009%2f6%2fDnad09Blog.zip"&gt;clicando aqui&lt;/a&gt; (incluindo a tão pedida auto configuração do NHibernate fluente).&lt;/p&gt;  &lt;p&gt;Em breve eu posto minha visão do evento e as fotos.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=illI2lb0iJQ:MzMCtBykZW8:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=illI2lb0iJQ:MzMCtBykZW8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=illI2lb0iJQ:MzMCtBykZW8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=illI2lb0iJQ:MzMCtBykZW8:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=illI2lb0iJQ:MzMCtBykZW8:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=illI2lb0iJQ:MzMCtBykZW8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=illI2lb0iJQ:MzMCtBykZW8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=illI2lb0iJQ:MzMCtBykZW8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=illI2lb0iJQ:MzMCtBykZW8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=illI2lb0iJQ:MzMCtBykZW8:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/illI2lb0iJQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/illI2lb0iJQ/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/Downloads-e-informacoes-da-palestra-de-DDD-do-Net-Architects-Day-2009.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=7d971e34-dc39-4929-93e0-fabf0ee95da6</guid>
      <pubDate>Tue, 30 Jun 2009 22:22:02 -0700</pubDate>
      <category>Arquitetura</category>
      <category>Eventos</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=7d971e34-dc39-4929-93e0-fabf0ee95da6</pingback:target>
      <slash:comments>5</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=7d971e34-dc39-4929-93e0-fabf0ee95da6</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/Downloads-e-informacoes-da-palestra-de-DDD-do-Net-Architects-Day-2009.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=7d971e34-dc39-4929-93e0-fabf0ee95da6</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=7d971e34-dc39-4929-93e0-fabf0ee95da6</feedburner:origLink></item>
    <item>
      <title>Enviesamento político em questões técnicas</title>
      <description>&lt;p&gt;O Lula, como todos sabem, esteve na última edição da Fisl, que aconteceu semana passada. E como sempre, discursou de improviso. O discurso &lt;a href="http://www.info.planalto.gov.br/media/audio/pr1323-2@.mp3" target="_blank"&gt;está no site do planalto&lt;/a&gt; a disposição de quem quiser ouvi-lo.&lt;/p&gt;  &lt;p&gt;Por volta dos 3 minutos e quinze segundos, ele solta esta pérola:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;quot;Agora que o prato está feito, é muito fácil a gente comer. Mas fazer esse prato não foi brincadeira. Eu lembro da primeira reunião que nós tivemos na Granja do torto, porque eu não entendia absolutamente nada da linguagem que esse pessoal discutia, e houve uma tensão imensa entre aqueles que defendiam a adoção no Brasil do Software Livre e aqueles que achavam que nós deveríamos fazer a mesmice de sempre, de ficar no mesmo jeito, comprando e pagando a inteligência dos outros. E graças a Deus permaneceu no nosso país a questão e a decisão do software livre. (urros de alegria na platéia)&lt;/p&gt;    &lt;p&gt;Porque nós tínhamos que escolher, ou nós íamos pra cozinha preparar o prato que nós queríamos comer, com esse tempero que nós queríamos colocar e dar um gosto brasileiro na comida, ou nós iríamos comer aquilo que a Microsoft queria vender pra gente. E prevaleceu simplesmente a idéia da liberdade.&amp;quot;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Antes de continuar, temos que lembrar que o Lula não é bobo. Ele agracia a platéia com que fala. Se forem economistas fala de um jeito, se for o MST fala o oposto. Sempre fez isso, e não é agora que ia mudar. Além disso, já disse muita besteira de improviso. Essa não é a primeira vez que o freio não segura sua língua.&lt;/p&gt;  &lt;p&gt;Diante disso, e apesar disso, acho inadmissível o presidente de um país se colocar de tal forma. Ele foi populista (como sempre), e, em vez de entrar no bom debate, preferiu descer para o nível mais baixo para agradar a horda que o ouvia.&lt;/p&gt;  &lt;p&gt;Eu gostaria de saber qual era o &amp;quot;prato&amp;quot; que a Microsoft queria vender ao Lula. Porque eu vendo muitos pratos da Microsoft, e meus clientes estão todos muito satisfeitos. Não entendo porque o governo deve desconsiderar, nas palavras do presidente, qualquer &amp;quot;prato&amp;quot; que seja, simplesmente por questões ideológicas. E vejam bem, são ideológicas, e não morais. Não estamos discutindo aborto, eutanásia ou pena de morte, e sim qual a plataforma mais efetiva para a implantação de um sistema. Isso não se resume a uma receita de comida, como o presidente tentou reduzir o assunto. O debate é técnico e econômico, e não filosófico ou moral.&lt;/p&gt;  &lt;p&gt;No começo ele menciona a mesmice de sempre, onde se compra propriedade intelectual. Oras, o próprio governo faz isso o tempo todo. Os remédios que o governo compra também são protegidos por propriedade intelectual, mas as poucas vezes em que investimos na quebra deste tipo de propriedade fomos duramente criticados. O modelo de desenvolvimento de remédios, muito parecido com o de software, precisa de investimentos. É o pagamento por um remédio que financia o desenvolvimento do próximo. Da mesma forma, é o pagamento por um software que financia o desenvolvimento do próximo.&lt;/p&gt;  &lt;p&gt;Já senti vergonha deste governo atual muitas vezes. Quando dá guarida a um terrorista italiano, quando não critica a pseudo-democracia venezuelana, quando quase apóia as FARC, quando entrega pedaços da Petrobrás de graça para a Bolívia, quando apóia o regime iraniano, quando manda embaixadores para a Coréia do Norte… Na política nacional a última foi dizer que o Sarney não devia ser tratado como uma pessoa comum, jogando o artigo 5º da constituição no lixo. Não bastava ter criado o mensalão.   &lt;br /&gt;E agora mais um episódio.&lt;/p&gt;  &lt;p&gt;Lamentável.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=y5xF3eeMFa8:mBS4_V4RfV4:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=y5xF3eeMFa8:mBS4_V4RfV4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=y5xF3eeMFa8:mBS4_V4RfV4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=y5xF3eeMFa8:mBS4_V4RfV4:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=y5xF3eeMFa8:mBS4_V4RfV4:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=y5xF3eeMFa8:mBS4_V4RfV4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=y5xF3eeMFa8:mBS4_V4RfV4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=y5xF3eeMFa8:mBS4_V4RfV4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=y5xF3eeMFa8:mBS4_V4RfV4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=y5xF3eeMFa8:mBS4_V4RfV4:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/y5xF3eeMFa8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/y5xF3eeMFa8/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/Enviesamento-politico-em-questoes-tecnicas.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=261e5e57-caed-478f-8791-82e9bc458bde</guid>
      <pubDate>Mon, 29 Jun 2009 20:59:28 -0700</pubDate>
      <category>Open Source</category>
      <category>Outros</category>
      <category>Polêmicas</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=261e5e57-caed-478f-8791-82e9bc458bde</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=261e5e57-caed-478f-8791-82e9bc458bde</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/Enviesamento-politico-em-questoes-tecnicas.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=261e5e57-caed-478f-8791-82e9bc458bde</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=261e5e57-caed-478f-8791-82e9bc458bde</feedburner:origLink></item>
    <item>
      <title>O .Net Architects Day 2009 foi um sucesso!</title>
      <description>&lt;p&gt;O &lt;a href="http://www.dotnetarchitects.net/dnad2009" target="_blank"&gt;.Net Architects Day 2009&lt;/a&gt; foi um sucesso. Já tivemos comentários de &lt;a href="http://www.fernandasallai.com/post/Evento-NET-Architects-Day-2009.aspx" target="_blank"&gt;Fernanda Sallai&lt;/a&gt;, &lt;a href="http://programandoem.net/2009/06/28/net-architects-day-2009-sucesso/" target="_blank"&gt;Juliano Oliveira&lt;/a&gt; e &lt;a href="http://www.mgrtconsultoria.com/blog/post/Evento-DNAD-2009.aspx" target="_blank"&gt;Fabio Margarito&lt;/a&gt;. Como ainda estou organizando fotos e vídeos (além da filmagem oficial, utilizamos minha filmadora pessoal para pegar um pouco das pessoas chegando do backstage, etc), e assim que tiver tudo isso pronto eu posto aqui.&lt;/p&gt;  &lt;p&gt;O engraçado é que o &lt;a href="http://programandoem.net/" target="_blank"&gt;Juliano Oliveira&lt;/a&gt; e eu tivemos a mesma idéia, de usar o &lt;a href="http://en.wikipedia.org/wiki/Buddy_christ" target="_blank"&gt;Buddy Christ&lt;/a&gt;, do &lt;a href="http://www.dogma-movie.com/" target="_blank"&gt;filme Dogma&lt;/a&gt;, para ilustrar uma idéia. Eu não tinha reparado que ele ia usar, e ele também não sabia de mim. Nada mais justo do que tirar uma foto para comemorar isso:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="O Buddy Christ, do filme Dogma" border="0" alt="O Buddy Christ, do filme Dogma" src="http://unplugged.giggio.net/unplugged/image.axd?picture=WindowsLiveWriter/2e8aab0.NetArchitectsDay2009foiumsucesso_1407/image_6.png" width="240" height="240" /&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Giovanni Bassi no .Net Architects Day 2009, posando de Buddy Christ" border="0" alt="Giovanni Bassi no .Net Architects Day 2009, posando de Buddy Christ" src="http://unplugged.giggio.net/unplugged/image.axd?picture=WindowsLiveWriter/2e8aab0.NetArchitectsDay2009foiumsucesso_1407/image_5.png" width="240" height="240" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Uma com o &lt;a href="http://reverb.leandrodaniel.com/" target="_blank"&gt;Leandro Daniel&lt;/a&gt;, o &lt;a href="http://www.cavalcante.net/" target="_blank"&gt;Victor Cavalcante&lt;/a&gt; e eu:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Leandro Daniel, Victor Cavalcante e Giovanni Bassi no .Net Architects Day 2009, posando de Buddy Christ" border="0" alt="Leandro Daniel, Victor Cavalcante e Giovanni Bassi no .Net Architects Day 2009, posando de Buddy Christ" src="http://unplugged.giggio.net/unplugged/image.axd?picture=WindowsLiveWriter/2e8aab0.NetArchitectsDay2009foiumsucesso_1407/image_9.png" width="479" height="274" /&gt; &lt;/p&gt;  &lt;p&gt;Mais informações em breve. Fiquem ligados na hashtag &lt;a href="http://search.twitter.com/search?q=%23dnad2009" target="_blank"&gt;#dnad2009&lt;/a&gt; no Twitter, para saber mais do evento e acompanhar as últimas conversas. Tem coisa saindo por lá ainda.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=TZIxjgzgslU:r58njSKhzE8:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=TZIxjgzgslU:r58njSKhzE8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=TZIxjgzgslU:r58njSKhzE8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=TZIxjgzgslU:r58njSKhzE8:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=TZIxjgzgslU:r58njSKhzE8:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=TZIxjgzgslU:r58njSKhzE8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=TZIxjgzgslU:r58njSKhzE8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=TZIxjgzgslU:r58njSKhzE8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=TZIxjgzgslU:r58njSKhzE8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=TZIxjgzgslU:r58njSKhzE8:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/TZIxjgzgslU" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/TZIxjgzgslU/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/O-Net-Architects-Day-2009-foi-um-sucesso!.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=dc7e8fc5-5383-409f-864c-01a9fa3d5a6d</guid>
      <pubDate>Sun, 28 Jun 2009 21:33:42 -0700</pubDate>
      <category>Eventos</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=dc7e8fc5-5383-409f-864c-01a9fa3d5a6d</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=dc7e8fc5-5383-409f-864c-01a9fa3d5a6d</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/O-Net-Architects-Day-2009-foi-um-sucesso!.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=dc7e8fc5-5383-409f-864c-01a9fa3d5a6d</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=dc7e8fc5-5383-409f-864c-01a9fa3d5a6d</feedburner:origLink></item>
    <item>
      <title>Quero uma console interativa de C# !</title>
      <description>&lt;p&gt;Estava em um cliente semana passada, quando tivemos um problema na formatação de um número. O número não formatava direito quando chamávamos ToString. Tudo parecia certo. Olhamos todo o código umas dez vezes, e não enxergávamos o problema. Mas havia um problema, nós que não estávamos vendo.&lt;/p&gt;  &lt;p&gt;A primeira coisa a fazer era verificar a chamada do método ToString, que estava sendo chamado assim:&lt;/p&gt;  &lt;pre class="c#" name="code"&gt;var texto = numero.ToString(&amp;quot;00&amp;quot;);&lt;/pre&gt;

&lt;p&gt;Queríamos uma formatação de um número com dois dígitos, ou seja, &amp;quot;9&amp;quot; virava &amp;quot;09&amp;quot;, &amp;quot;2&amp;quot; virava &amp;quot;02&amp;quot;, &amp;quot;49&amp;quot; ficava como estava, e por aí vai. Olhe o código acima. Está certo, não é?&lt;/p&gt;

&lt;p&gt;Eu pensei &amp;quot;preciso isolar o problema&amp;quot;. A melhor maneira seria abrir uma aplicação console simples e digitar o código lá, e imprimir a saída na tela. Aí pensei &amp;quot;Putz, vou ter abrir o outro VS, criar outro projeto, digitar, verificar, etc.&amp;quot; Eu sei. É rápido, mas eu estava sem paciência.&lt;/p&gt;

&lt;p&gt;Aí me ocorreu algo. Havia uma maneira mais rápida. Saquei meu console interativo de F#, que fica bem facinho no meu &lt;a href="http://rocketdock.com/" target="_blank"&gt;RocketDock&lt;/a&gt; (quem precisa de um Mac?):&lt;/p&gt;

&lt;p&gt;&lt;a href="http://unplugged.giggio.net/unplugged/image.axd?picture=WindowsLiveWriter/QueroumaconsoledeC_14E97/image_2.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="F# interactive na Rocket Dock" border="0" alt="F# interactive na Rocket Dock" src="http://unplugged.giggio.net/unplugged/image.axd?picture=WindowsLiveWriter/QueroumaconsoledeC_14E97/image_thumb.png" width="244" height="94" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Em menos de um segundos ele abriu. Digitei (clique para ampliar):&lt;/p&gt;

&lt;p&gt;&lt;a href="http://unplugged.giggio.net/unplugged/image.axd?picture=WindowsLiveWriter/QueroumaconsoledeC_14E97/image_6.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="F# interactive, criando a função" border="0" alt="F# interactive, criando a função" src="http://unplugged.giggio.net/unplugged/image.axd?picture=WindowsLiveWriter/QueroumaconsoledeC_14E97/image_thumb_2.png" width="404" height="150" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Enter. Excelente, agora tenho uma função que recebe um inteiro, e devolve uma string formatada como eu queria.&lt;/p&gt;

&lt;p&gt;Basta agora digitar:&lt;/p&gt;

&lt;pre class="c#" name="code"&gt;f 3;;&lt;/pre&gt;

&lt;p&gt;E enter! Resultado:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://unplugged.giggio.net/unplugged/image.axd?picture=WindowsLiveWriter/QueroumaconsoledeC_14E97/image_8.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="F# interactive, resultado da função" border="0" alt="F# interactive, resultado da função" src="http://unplugged.giggio.net/unplugged/image.axd?picture=WindowsLiveWriter/QueroumaconsoledeC_14E97/image_thumb_3.png" width="404" height="150" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Pronto, resolvido. A premissa estava correta. O erro estava em outro lugar. Podia ter feito assim:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://unplugged.giggio.net/unplugged/image.axd?picture=WindowsLiveWriter/QueroumaconsoledeC_14E97/image_10.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="F# interactive, chamando uma função direto no número" border="0" alt="F# interactive, chamando uma função direto no número" src="http://unplugged.giggio.net/unplugged/image.axd?picture=WindowsLiveWriter/QueroumaconsoledeC_14E97/image_thumb_4.png" width="404" height="124" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Ainda mais fácil!&lt;/p&gt;

&lt;p&gt;Só tem um problema: eu ainda estou aprendendo F#! Não tenho uma super desenvoltura com a linguagem ainda (ainda!). Queria ser capaz de fazer isso com C#, que é algo que o Anders Hejlsberg já mostrou funcionando no PDC passado (vejam aqui o &lt;a href="http://unplugged.giggio.net/post/C-4-Quanto-antes-melhor.aspx" target="_blank"&gt;C# Evaluator&lt;/a&gt;), mas que não entrou na versão 4 do C#. Seria tão bom… Enquanto isso, não perca tempo, &lt;a href="http://go.microsoft.com/fwlink/?LinkId=151924" target="_blank"&gt;baixe o F#&lt;/a&gt; e ganhe o F# interactive. Ou &lt;a href="http://www.ironruby.net/Download" target="_blank"&gt;baixe o IronRuby&lt;/a&gt; e ganhe o IronRuby Interactive, que faz a mesma coisa.&lt;/p&gt;

&lt;p&gt;(Descobrimos depois. A variável numero não era um inteiro, acho que era uma string, ou um object, não me lembro. Foi só converter o tipo e resolvemos o problema.)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=ppZa5MD4eF8:UeHyzjtV7oY:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=ppZa5MD4eF8:UeHyzjtV7oY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=ppZa5MD4eF8:UeHyzjtV7oY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=ppZa5MD4eF8:UeHyzjtV7oY:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=ppZa5MD4eF8:UeHyzjtV7oY:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=ppZa5MD4eF8:UeHyzjtV7oY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=ppZa5MD4eF8:UeHyzjtV7oY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=ppZa5MD4eF8:UeHyzjtV7oY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=ppZa5MD4eF8:UeHyzjtV7oY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=ppZa5MD4eF8:UeHyzjtV7oY:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/ppZa5MD4eF8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/ppZa5MD4eF8/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/Quero-uma-console-interativa-de-C-!.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=ba647ed7-8bfc-4374-876e-fd6e6f072982</guid>
      <pubDate>Sun, 28 Jun 2009 20:14:56 -0700</pubDate>
      <category>C#</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=ba647ed7-8bfc-4374-876e-fd6e6f072982</pingback:target>
      <slash:comments>6</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=ba647ed7-8bfc-4374-876e-fd6e6f072982</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/Quero-uma-console-interativa-de-C-!.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=ba647ed7-8bfc-4374-876e-fd6e6f072982</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=ba647ed7-8bfc-4374-876e-fd6e6f072982</feedburner:origLink></item>
    <item>
      <title>Anti-if campaign</title>
      <description>&lt;p&gt;
Me aliei &amp;agrave; campanha &amp;quot;Anti-if&amp;quot;:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.antiifcampaign.com"&gt;
&lt;img src="http://www.antiifcampaign.com/_export/anti-if-campaign-ive-joined.gif" border="0" alt="I have joined Anti-IF Campaign" width="120" height="60" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
A id&amp;eacute;ia &amp;eacute;: use polimorfismo, n&amp;atilde;o use If.
&lt;/p&gt;
&lt;p&gt;
Lembro de ter ouvido recentemente que switch (&amp;quot;select case&amp;quot; no VB) &amp;eacute; mal&amp;iacute;gno. Devem ser escondido no c&amp;oacute;digo, e evitado a todo custo. &amp;Eacute; verdade. Switch &amp;eacute; um if anabolizado!
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=amBHdQGIHNc:AKFUfvdfNxg:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=amBHdQGIHNc:AKFUfvdfNxg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=amBHdQGIHNc:AKFUfvdfNxg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=amBHdQGIHNc:AKFUfvdfNxg:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=amBHdQGIHNc:AKFUfvdfNxg:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=amBHdQGIHNc:AKFUfvdfNxg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=amBHdQGIHNc:AKFUfvdfNxg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=amBHdQGIHNc:AKFUfvdfNxg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=amBHdQGIHNc:AKFUfvdfNxg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=amBHdQGIHNc:AKFUfvdfNxg:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/amBHdQGIHNc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/amBHdQGIHNc/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (Giovanni Bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/Anti-if-campaign.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=89a1570d-2dd2-49a3-9ac2-3ef3c3b46832</guid>
      <pubDate>Thu, 25 Jun 2009 07:18:00 -0700</pubDate>
      <category>Arquitetura</category>
      <dc:publisher>Giovanni Bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=89a1570d-2dd2-49a3-9ac2-3ef3c3b46832</pingback:target>
      <slash:comments>7</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=89a1570d-2dd2-49a3-9ac2-3ef3c3b46832</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/Anti-if-campaign.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=89a1570d-2dd2-49a3-9ac2-3ef3c3b46832</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=89a1570d-2dd2-49a3-9ac2-3ef3c3b46832</feedburner:origLink></item>
    <item>
      <title>Última versão do System.Data.OracleClient</title>
      <description>&lt;p&gt;A Microsoft anunciou, em &lt;a href="http://blogs.msdn.com/adonet/archive/2009/06/15/system-data-oracleclient-update.aspx" target="_blank"&gt;um post do time de ADO&lt;/a&gt;, que não vai mais desenvolver seu provider de ADO.Net para Oracle. A última versão é a que sai agora no .Net 4.0, e todas as classes estarão marcadas como obsoletas. No .Net vNext, todo o provider não vai mais existir no BCL.&lt;/p&gt;  &lt;p&gt;A Oracle faz o próprio provider dela, o ODP.Net, e ele é gratuito e funciona bem. Em diversos pontos é melhor que o da Microsoft, em outros pior.&lt;/p&gt;  &lt;p&gt;A Microsoft não anunciou, e pelo que vejo, nunca vai anunciar, um provider para Entity Framework para o Oracle.&lt;/p&gt;  &lt;p&gt;O que isso tudo significa?&lt;/p&gt;  &lt;p&gt;Na minha visão isso significa que a Microsoft aprendeu, já quando lançou o EF1, que não deve fazer o trabalho de outras empresas, incluindo aí o da concorrente Oracle. As empresas querem um provider para Oracle para o ADO.Net ou para o EF, que pressionem a Oracle para que entregue um.&lt;/p&gt;  &lt;p&gt;Exigir da MS que faça um provider de Oracle para o ADO.Net é como exigir que ela faça um player de Flash para o IE, e não a Adobe, ou uma VM de Java para o Windows, e não a Sun (ou qualquer outra empresa que implemente as especificações do Java). No caso, ela até fazia uma JVM própria, mas parou com isso. Agora foi a vez do provider do Oracle.&lt;/p&gt;  &lt;p&gt;O que eu acho disso tudo?&lt;/p&gt;  &lt;p&gt;Acho mais do que certo. Primeiro porque não é do interesse de uma empresa ficar fazendo software para suportar aplicações de outras empresas. Segundo porque o time de ADO vai estar livre para investir mais no ADO. Terceiro porque libera a Microsoft de ter que ficar polindo um produto que pode ter bugs, e os bugs muitas vezes nem são seus, ou nem deviam estar sob responsabilidade dela para começar. Quarto porque a Microsoft dá claros sinais de fortalecimento ao ecossistema de parceiros quando faz esse tipo de coisa, já que algum parceiro poderá implementar o provider. E quinto, a Microsoft para de reinventar a roda, assumindo que o que há no mercado é bom o suficiente, e por isso ela não tem que ter a versão dela da tecnologia xyz.&lt;/p&gt;  &lt;p&gt;(Esse quinto motivo é meio complicado. Muitas empresas não usam software se não for marcado a ferro com a marca Microsoft. É o caso de componentes de Mock, onde a Microsoft não possui uma alternativa. Muita empresa não usa porque a Microsoft não incentiva oficialmente – descontado o P&amp;amp;P, não fomenta o uso, já que não tem um produto para atender.)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Eu sei que algumas empresas vão sofrer, porque utilizam o provider da Microsoft. Então fica aqui a recomendação: se você usa, pare de usar já. Comece a migrar para o ODP.Net ou para outras alternativas, praticamente todas pagas (o lado bom é que algumas suportam EF). Quem começar a pensar nisso agora tem uns bons anos pela frente, já que a Microsoft ainda nem deve ter entrado em fase de concepção do .Net vNext.&lt;/p&gt;  &lt;p&gt;Além do mais, código legado vai continuar funcionando e compilando. O único problema será quando você converter uma solução de .Net 4 ou inferior para o .Net vNext. Nesse caso, você vai ter que substituir o provider. Ainda que o ADO.Net abstraia todo o conceito de objetos concretos, eu pouquíssimas vezes vi alguém usando um DbCommand no lugar de um OracleCommand. Dá-lhe mão de obra para arrumar isso. &lt;/p&gt;  &lt;p&gt;Aproveitando o problema que esse tipo de coisa vai gerar, deixo aqui algo para reflexão: se você sofrerá com isso, lembre-se que não teria tido problema se adotasse um ORM (se possível). Quem sabe não é a hora?&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=gyCxOjViCy4:yB99zVNxynE:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=gyCxOjViCy4:yB99zVNxynE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=gyCxOjViCy4:yB99zVNxynE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=gyCxOjViCy4:yB99zVNxynE:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=gyCxOjViCy4:yB99zVNxynE:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=gyCxOjViCy4:yB99zVNxynE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=gyCxOjViCy4:yB99zVNxynE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=gyCxOjViCy4:yB99zVNxynE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=gyCxOjViCy4:yB99zVNxynE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=gyCxOjViCy4:yB99zVNxynE:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/gyCxOjViCy4" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/gyCxOjViCy4/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/Ultima-versao-do-SystemDataOracleClient.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=3e63a4fa-f47b-4b7e-95d7-f379f360237c</guid>
      <pubDate>Tue, 23 Jun 2009 20:20:40 -0700</pubDate>
      <category>Mapeadores O/R</category>
      <category>.Net Framework</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=3e63a4fa-f47b-4b7e-95d7-f379f360237c</pingback:target>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=3e63a4fa-f47b-4b7e-95d7-f379f360237c</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/Ultima-versao-do-SystemDataOracleClient.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=3e63a4fa-f47b-4b7e-95d7-f379f360237c</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=3e63a4fa-f47b-4b7e-95d7-f379f360237c</feedburner:origLink></item>
    <item>
      <title>.Net Architects agora tem podcasts</title>
      <description>&lt;p&gt;O &lt;a href="http://www.danielfonsecacastro.com.br/" target="_blank"&gt;Daniel Castro&lt;/a&gt; está puxando o novíssimo &lt;a href="http://dotnetarchitects.podomatic.com/" target="_blank"&gt;podcast do .Net Architects&lt;/a&gt;, um podcast focado em arquitetura de software no mundo de .Net. O &lt;a href="http://dotnetarchitects.podomatic.com/entry/2009-06-16T05_58_23-07_00" target="_blank"&gt;primeiro&lt;/a&gt; foi feito comigo, e foi sobre a história do &lt;a href="http://www.dotnetarchitects.net/" target="_blank"&gt;.Net Architects&lt;/a&gt;. O &lt;a href="http://dotnetarchitects.podomatic.com/entry/2009-06-16T06_25_12-07_00" target="_blank"&gt;segundo&lt;/a&gt; foi feito com os 5 palestrantes do &lt;a href="http://www.dotnetarchitects.net/dnad2009" target="_blank"&gt;.Net Architects Day 2009&lt;/a&gt; (que será neste sábado). Está bem legal. São podcasts de uns 40 minutos ou mais cada, com bastante conteúdo. &lt;/p&gt;  &lt;p&gt;Ouçam, comentem, critique, dêem sugestões. Vamos melhorar onde for possível.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=sAO4rQTyiPU:OkyCZqep2JI:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=sAO4rQTyiPU:OkyCZqep2JI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=sAO4rQTyiPU:OkyCZqep2JI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=sAO4rQTyiPU:OkyCZqep2JI:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=sAO4rQTyiPU:OkyCZqep2JI:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=sAO4rQTyiPU:OkyCZqep2JI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=sAO4rQTyiPU:OkyCZqep2JI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=sAO4rQTyiPU:OkyCZqep2JI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=sAO4rQTyiPU:OkyCZqep2JI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=sAO4rQTyiPU:OkyCZqep2JI:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/sAO4rQTyiPU" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/sAO4rQTyiPU/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/Net-Architects-agora-tem-podcasts.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=38fa803d-8522-4760-a1a0-9afc6dbae02f</guid>
      <pubDate>Mon, 22 Jun 2009 20:27:25 -0700</pubDate>
      <category>Arquitetura</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=38fa803d-8522-4760-a1a0-9afc6dbae02f</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=38fa803d-8522-4760-a1a0-9afc6dbae02f</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/Net-Architects-agora-tem-podcasts.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=38fa803d-8522-4760-a1a0-9afc6dbae02f</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=38fa803d-8522-4760-a1a0-9afc6dbae02f</feedburner:origLink></item>
    <item>
      <title>Webcast sobre computação paralela dado diretamente pelo time do PCP</title>
      <description>&lt;p&gt;A Microsoft americana vai realizar um webcast sobre computação paralela no .Net 4.0 (e Visual Studio 2010). O webcast é em inglês. Esses webcasts costumam ser fechados aos MVPs, mas este foi colocado aberto. Alguns dos membros do time do PCP (Parallel Computing Platform) vão estar presentes. Ou seja, é uma oportunidade única e rara.&lt;/p&gt;  &lt;p&gt;Será dia primeiro de julho, às 13 horas.&lt;/p&gt;  &lt;p&gt;Quem quiser participar, é só clicar &lt;a href="https://www.livemeeting.com/cc/0000000379_103/join?id=76P755&amp;amp;role=attend&amp;amp;pw=p%2C%2Fzk2K%7CM" target="_blank"&gt;neste link&lt;/a&gt;. Vejo vocês lá.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=chU3W_PFn88:Gv6YRIZncE8:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=chU3W_PFn88:Gv6YRIZncE8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=chU3W_PFn88:Gv6YRIZncE8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=chU3W_PFn88:Gv6YRIZncE8:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=chU3W_PFn88:Gv6YRIZncE8:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=chU3W_PFn88:Gv6YRIZncE8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=chU3W_PFn88:Gv6YRIZncE8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=chU3W_PFn88:Gv6YRIZncE8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=chU3W_PFn88:Gv6YRIZncE8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=chU3W_PFn88:Gv6YRIZncE8:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/chU3W_PFn88" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/chU3W_PFn88/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/Webcast-sobre-computacao-paralela-dado-diretamente-pelo-time-do-PCP.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=0b673148-7cd8-4d8d-992b-edbadeb8fd58</guid>
      <pubDate>Sun, 21 Jun 2009 20:21:19 -0700</pubDate>
      <category>Eventos</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=0b673148-7cd8-4d8d-992b-edbadeb8fd58</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=0b673148-7cd8-4d8d-992b-edbadeb8fd58</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/Webcast-sobre-computacao-paralela-dado-diretamente-pelo-time-do-PCP.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=0b673148-7cd8-4d8d-992b-edbadeb8fd58</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=0b673148-7cd8-4d8d-992b-edbadeb8fd58</feedburner:origLink></item>
    <item>
      <title>Webcast de C# 4.0 – Parte 2 – Apresentação e recursos</title>
      <description>&lt;p&gt;Conforme prometido no webcast, seguem os recursos que apresentei no webcast neste post.&lt;/p&gt;  &lt;p&gt;Apresentação:&lt;/p&gt;  &lt;div style="width:425px;text-align:left" id="__ss_1611363"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/giovanni.bassi/c4-parte-2-com-interop-e-varincia?type=presentation" title="C#4 - Parte 2 - COM interop e variância"&gt;C#4 - Parte 2 - COM interop e variância&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=webcast-c4-2-cominteropevarincia-090619223448-phpapp02&amp;amp;stripped_title=c4-parte-2-com-interop-e-varincia" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=webcast-c4-2-cominteropevarincia-090619223448-phpapp02&amp;amp;stripped_title=c4-parte-2-com-interop-e-varincia" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more presentations from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/giovanni.bassi"&gt;Giovanni Bassi&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;   &lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Meu site de consultoria: &lt;a href="http://giovannibassi.com"&gt;http://giovannibassi.com&lt;/a&gt;     &lt;br /&gt;Site do .Net Architects: &lt;a href="http://dotnetarchitects.net"&gt;http://dotnetarchitects.net&lt;/a&gt;     &lt;br /&gt;Grupo de discussão online do .Net Architects: &lt;a href="http://tinyurl.com/DotNetArch"&gt;http://tinyurl.com/DotNetArch&lt;/a&gt;     &lt;br /&gt;Evento de arquitetura de software (.Net Architects Day 2009): &lt;a href="http://dotnetarchitects.net/dnad2009"&gt;http://dotnetarchitects.net/dnad2009&lt;/a&gt;     &lt;br /&gt;Visual Studio 2010 Beta 1: &lt;a href="http://tinyurl.com/vs10b1"&gt;http://tinyurl.com/vs10b1&lt;/a&gt;     &lt;br /&gt;C# 4 Resources: &lt;a href="http://msdn.microsoft.com/en-us/vcsharp/dd819407.aspx"&gt;http://msdn.microsoft.com/en-us/vcsharp/dd819407.aspx&lt;/a&gt;     &lt;br /&gt;Eric Lippert (Microsoft, time C#): &lt;a href="http://blogs.msdn.com/ericlippert/"&gt;http://blogs.msdn.com/ericlippert/&lt;/a&gt;     &lt;br /&gt;Eric Lippert falando de variância: &lt;a href="http://blogs.msdn.com/ericlippert/archive/tags/Covariance+and+Contravariance/default.aspx"&gt;http://blogs.msdn.com/ericlippert/archive/tags/Covariance+and+Contravariance/default.aspx&lt;/a&gt;    &lt;br /&gt;Traduzido pelo Felipe Fujiy: &lt;a href="http://blog.fujiy.net/blog/category/Covariancia-e-Contravariancia.aspx"&gt;http://blog.fujiy.net/blog/category/Covariancia-e-Contravariancia.aspx&lt;/a&gt;     &lt;br /&gt;Sam NG (Microsoft) &lt;a href="http://blogs.msdn.com/samng/archive/tags/Runtime+binding/default.aspx"&gt;http://blogs.msdn.com/samng/archive/tags/Runtime+binding/default.aspx&lt;/a&gt;     &lt;br /&gt;Tags de C#4 neste blog: &lt;a href="http://unplugged.giggio.net/unplugged/?tag=/c%234"&gt;http://unplugged.giggio.net/unplugged/?tag=/c%234&lt;/a&gt;     &lt;br /&gt;Renato Guimarães (MVP C#): &lt;a href="http://renatoguimaraes.spaces.live.com"&gt;http://renatoguimaraes.spaces.live.com&lt;/a&gt;     &lt;br /&gt;Edição 60 com artigo meu sobre C#4: &lt;a href="http://www.devmedia.com.br/resumo/default.asp?ed=60&amp;amp;site=1"&gt;http://www.devmedia.com.br/resumo/default.asp?ed=60&amp;amp;site=1&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=TDihH3tb5Ns:FI0-E_hf2Rk:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=TDihH3tb5Ns:FI0-E_hf2Rk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=TDihH3tb5Ns:FI0-E_hf2Rk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=TDihH3tb5Ns:FI0-E_hf2Rk:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=TDihH3tb5Ns:FI0-E_hf2Rk:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=TDihH3tb5Ns:FI0-E_hf2Rk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=TDihH3tb5Ns:FI0-E_hf2Rk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=TDihH3tb5Ns:FI0-E_hf2Rk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=TDihH3tb5Ns:FI0-E_hf2Rk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=TDihH3tb5Ns:FI0-E_hf2Rk:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/TDihH3tb5Ns" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/TDihH3tb5Ns/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/Webcast-de-C-40-Parte-2-Apresentacao-e-recursos.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=2b13f9af-42fb-4c36-adf3-a8865fed6a55</guid>
      <pubDate>Fri, 19 Jun 2009 20:40:14 -0700</pubDate>
      <category>.Net</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=2b13f9af-42fb-4c36-adf3-a8865fed6a55</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=2b13f9af-42fb-4c36-adf3-a8865fed6a55</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/Webcast-de-C-40-Parte-2-Apresentacao-e-recursos.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=2b13f9af-42fb-4c36-adf3-a8865fed6a55</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=2b13f9af-42fb-4c36-adf3-a8865fed6a55</feedburner:origLink></item>
    <item>
      <title>Quer saber o que está rolando no TechEd Brasil 2009?</title>
      <description>&lt;p&gt;&lt;a href="http://unplugged.giggio.net/unplugged/image.axd?picture=WindowsLiveWriter/QuersaberoquevairolarnoTechEdBrasil_237/image_4.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Tech Ed Brasil 2009" border="0" alt="Tech Ed Brasil 2009" src="http://unplugged.giggio.net/unplugged/image.axd?picture=WindowsLiveWriter/QuersaberoquevairolarnoTechEdBrasil_237/image_thumb_1.png" width="194" height="139" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;O Tech-Ed Brasil vai ser de 25 a 27 de Agosto. Como ficar sabendo do que vai rolar no evento? De várias formas:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;No Twitter:      &lt;ol&gt;       &lt;li&gt;Acompanhe a hashtag &lt;a href="http://search.twitter.com/search?q=%23TechEdBrasil" target="_blank"&gt;#TechEdBrasil&lt;/a&gt;. De longe a melhor maneira de você pegar feedback de todo mundo que vai ao evento e tem Twitter. É a informação não oficial na mão de todos. Não é a Microsoft, não são os MVPs, somos todos nós. Para ver como esse negócio funciona, é só conferir como o Scrum Gathering Brasil foi movimentado pela hashtag &lt;a href="http://search.twitter.com/search?q=%23ScrumGathering" target="_blank"&gt;#ScrumGathering&lt;/a&gt;, e a Engenharia de Software Conference, na tag &lt;a href="http://search.twitter.com/search?q=%23ESConference" target="_blank"&gt;#ESConference&lt;/a&gt;. (Aviso, o search to Twitter está &lt;a href="http://search.twitter.com/search?q=%23FixTwitterSearch" target="_blank"&gt;não está funcionando direito&lt;/a&gt;, e as buscas destas hashtags não estão voltando nada por enquanto.) Aproveito para incentivar: se for ao evento twitte tudo o que você vir. Vamos fazer uma cobertura por Twitter! &lt;/li&gt;        &lt;li&gt;Acompanhe o &lt;a href="https://twitter.com/techedbrasil" target="_blank"&gt;@TechEdBrasil&lt;/a&gt;. Novidades quentinhas antes de qualquer blog post. &lt;/li&gt;        &lt;li&gt;Acompanhe os responsáveis pelo evento, como o &lt;a href="https://twitter.com/lucianopalma" target="_blank"&gt;@LucianoPalma&lt;/a&gt; e o &lt;a href="mailto:R@Rog&amp;eacute;rio Cordeiro" target="_blank"&gt;@RogerioC&lt;/a&gt;, o &lt;a href="https://twitter.com/fabiohara" target="_blank"&gt;@FabioHara&lt;/a&gt;, entre outros. (Se alguém souber mais algum me avisa que eu atualizo a lista) &lt;/li&gt;        &lt;li&gt;Acompanhe os palestrantes. Eles ainda estão em definição e a Microsoft ainda não divulgou oficialmente, mas já temos confirmados (via Twitter) o &lt;a href="https://twitter.com/ramonduraes" target="_blank"&gt;@RamonDuraes&lt;/a&gt;, o &lt;a href="https://twitter.com/luticm" target="_blank"&gt;@LutiCM&lt;/a&gt;, e eu, &lt;a href="http://twitter.com/giovannibassi" target="_blank"&gt;@GiovanniBassi&lt;/a&gt;. (Se alguém souber mais algum me avisa que eu atualizo a lista) &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;O &lt;a href="http://pasteldocaverna.blogspot.com/" target="_blank"&gt;Pastel do Caverna&lt;/a&gt; é o blog oficial. &lt;/li&gt;    &lt;li&gt;O &lt;a href="http://www.teched.com.br/" target="_blank"&gt;site do evento&lt;/a&gt;, claro. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Conhece mais recursos? Me informe, eu atualizo o post.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=GfttroTyDYQ:bBDB84XkpPA:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=GfttroTyDYQ:bBDB84XkpPA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=GfttroTyDYQ:bBDB84XkpPA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=GfttroTyDYQ:bBDB84XkpPA:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=GfttroTyDYQ:bBDB84XkpPA:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=GfttroTyDYQ:bBDB84XkpPA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=GfttroTyDYQ:bBDB84XkpPA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=GfttroTyDYQ:bBDB84XkpPA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=GfttroTyDYQ:bBDB84XkpPA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=GfttroTyDYQ:bBDB84XkpPA:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/GfttroTyDYQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/GfttroTyDYQ/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/Quer-saber-o-que-esta-rolando-no-TechEd-Brasil-2009.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=6b709024-f192-4811-afcb-e43f90eb07a8</guid>
      <pubDate>Fri, 19 Jun 2009 20:20:27 -0700</pubDate>
      <category>Eventos</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=6b709024-f192-4811-afcb-e43f90eb07a8</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=6b709024-f192-4811-afcb-e43f90eb07a8</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/Quer-saber-o-que-esta-rolando-no-TechEd-Brasil-2009.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=6b709024-f192-4811-afcb-e43f90eb07a8</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=6b709024-f192-4811-afcb-e43f90eb07a8</feedburner:origLink></item>
    <item>
      <title>Webcast de C# 4.0 (parte 2) daqui a pouco</title>
      <description>&lt;p&gt;
Daqui a pouco tem a segunda parte dos &lt;a href="http://unplugged.giggio.net/post/Webcasts-de-C-40.aspx" target="_blank"&gt;webcasts de C# 4.0&lt;/a&gt; (&amp;eacute; agora ao meio dia). Vou falar de vari&amp;acirc;ncia e interoperabilidade com COM.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032417244" target="_blank"&gt;Vejo voc&amp;ecirc;s l&amp;aacute;&lt;/a&gt;.
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=comTmHc5dqQ:cc_bA5a3p7c:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=comTmHc5dqQ:cc_bA5a3p7c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=comTmHc5dqQ:cc_bA5a3p7c:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=comTmHc5dqQ:cc_bA5a3p7c:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=comTmHc5dqQ:cc_bA5a3p7c:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=comTmHc5dqQ:cc_bA5a3p7c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=comTmHc5dqQ:cc_bA5a3p7c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=comTmHc5dqQ:cc_bA5a3p7c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=comTmHc5dqQ:cc_bA5a3p7c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=comTmHc5dqQ:cc_bA5a3p7c:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/comTmHc5dqQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/comTmHc5dqQ/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (Giovanni Bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/Webcast-de-C-40-(parte-2)-daqui-a-pouco.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=7475b7a4-a4d7-4bc6-b06b-0161c0b987a0</guid>
      <pubDate>Thu, 18 Jun 2009 04:26:00 -0700</pubDate>
      <category>.Net</category>
      <dc:publisher>Giovanni Bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=7475b7a4-a4d7-4bc6-b06b-0161c0b987a0</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=7475b7a4-a4d7-4bc6-b06b-0161c0b987a0</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/Webcast-de-C-40-(parte-2)-daqui-a-pouco.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=7475b7a4-a4d7-4bc6-b06b-0161c0b987a0</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=7475b7a4-a4d7-4bc6-b06b-0161c0b987a0</feedburner:origLink></item>
    <item>
      <title>Quem paga pelo desenvolvimento? (ou entendendo porque o cliente sempre pensa em custo)</title>
      <description>&lt;p&gt;A algum tempo percebi uma dinâmica um tanto perigosa que acontece nas empresas que demandam software via fornecedores internos ou externos. Isso engloba praticamente todo o mercado corporativo, mas deixa de fora empresas que desenvolvem software de prateleira. O que vou escrever a seguir trata deste primeiro tipo de empresa.&lt;/p&gt;  &lt;p&gt;Sempre que um departamento precisa de um sistema, ele precisa demandar este sistema para alguém. Seja a demanda repassada para um departamento de TI interno, ou para um terceiro, o foco com razoável frequência costuma ser custo. Quando o departamento é interno estamos falando de rateio baseado em horas internas de outro departamento da empresa, então a discussão é em torno de horas. Quando a demanda vai para fora da empresa a discussão é financeira. Grandes empresas mantém departamentos de compras responsáveis por comprar desde toner para impressora e papel higiênico quanto software, e o tom, principalmente em tempo de crise, é comprar focado em preço. Para se proteger as empresas geralmente apostam em especificações e estimativas bem feitas (&lt;a href="http://unplugged.giggio.net/post/Estimativa-e-igual-a-calculo-aproximado.aspx" target="_blank"&gt;algo que não existe&lt;/a&gt;), e SLAs. Assumindo que a especificação determina o que vai ser entregue, faz sentido que o critério seja preço. Quer dizer, faria sentido se software não fosse software. Comprar software assim é como comprar serviços de advocacia por preço. Você faria isso se estivesse em uma enrascada? Arriscaria seu pescoço? E porque então arriscamos o dinheiro das empresas?&lt;/p&gt;  &lt;p&gt;Invariavelmente os fornecedores, sejam eles internos ou externos, vão ter que baixar o custo para atender o cliente, que quer uma Mercedez pelo preço de um Fusca. Frequentemente o cliente simplifica o escopo ao máximo, a fim também de baixar o preço, e remove itens fundamentais a qualquer software. De cara morrem coisas &amp;quot;inúteis&amp;quot; como log de erros, por exemplo. Design gráfico também costuma nem entrar no projeto. Outros itens, de tanta falta de demanda, às vezes nem são oferecidos pelos fornecedores. Coisas &amp;quot;inúteis&amp;quot; como análise estática de código, integração contínua, e claro, uma análise arquitetural e/ou um arquiteto acompanhando o projeto. Afinal, essas coisas &amp;quot;inúteis&amp;quot; só acrescentam custo e não valor (atenção para a ironia). Então o cliente fala que não vai pagar por isso. &lt;/p&gt;  &lt;p&gt;Porque isso acontece? Pois é, foi isso que eu descobri. Talvez vocês já saibam, mas para mim foi algo que de certa forma estava na minha cara, mas eu nunca tinha parado para ver. &lt;/p&gt;  &lt;p&gt;A questão é simples: quem paga pelo software e quem paga pela manutenção? É muito frequente que o cliente final pague pelo desenvolvimento do projeto, mas não pelas pequenas manutenções subsequentes. O dinheiro sai do seu centro de custo somente no nascimento do projeto. Quem paga as manutenções geralmente é TI, que mantém uma equipe de suporte, alocada no seu centro de custo, debaixo do seu budget.&lt;/p&gt;  &lt;p&gt;Esse fato leva o cliente a pedir o software mais barato possível. Os problemas e necessidades que vierem depois são resolvidos &amp;quot;de graça&amp;quot;, ao custo do departamento de TI. E como o software foi feito de qualquer jeito, a manutenção é muito cara, o que leva a equipe de suporte a inchar cada vez mais, ou entregar cada vez menos valor. Quem disse que não existe almoço grátis?&lt;/p&gt;  &lt;p&gt;Não é a toa que os CIOs são tão criticados por não entregar valor. Cerca de 80% do custo de TI vão para manutenção, e devido a essa dinâmica, uma manutenção cara que se originou nos próprios incentivos dados por TI. &lt;/p&gt;  &lt;p&gt;Como eu disse no começo, essa é uma dinâmica perigosa, já que os custos do projeto são muito maiores do que o planejado, e o software não é feito para durar, mas para sair de qualquer jeito. E o trabalho do arquiteto é justamente fazer software para durar.&lt;/p&gt;  &lt;p&gt;Gostaria de saber se isso é uma visão particular das minhas experiências ou se vocês confirmam esta visão. Comentários são muito bem vindos.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=vDFKOVv4FdI:pHMip634ErQ:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=vDFKOVv4FdI:pHMip634ErQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=vDFKOVv4FdI:pHMip634ErQ:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=vDFKOVv4FdI:pHMip634ErQ:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=vDFKOVv4FdI:pHMip634ErQ:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=vDFKOVv4FdI:pHMip634ErQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=vDFKOVv4FdI:pHMip634ErQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=vDFKOVv4FdI:pHMip634ErQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=vDFKOVv4FdI:pHMip634ErQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=vDFKOVv4FdI:pHMip634ErQ:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/vDFKOVv4FdI" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/vDFKOVv4FdI/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/Quem-paga-pelo-desenvolvimento.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=75b6a4d4-ce4c-44aa-8a6e-d3a0225d8bb5</guid>
      <pubDate>Tue, 16 Jun 2009 20:39:08 -0700</pubDate>
      <category>Gestão de projeto</category>
      <category>Arquitetura</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=75b6a4d4-ce4c-44aa-8a6e-d3a0225d8bb5</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=75b6a4d4-ce4c-44aa-8a6e-d3a0225d8bb5</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/Quem-paga-pelo-desenvolvimento.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=75b6a4d4-ce4c-44aa-8a6e-d3a0225d8bb5</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=75b6a4d4-ce4c-44aa-8a6e-d3a0225d8bb5</feedburner:origLink></item>
    <item>
      <title>C#: Resposta a "Qual Overload é chamado"</title>
      <description>&lt;p&gt;Respondendo então à questão de &lt;a href="http://unplugged.giggio.net/post/C-Qual-overload-e-chamado.aspx" target="_blank"&gt;qual overload é utilizado que fiz aqui&lt;/a&gt; na quinta-feira passada. Se você não viu a questão, leia lá antes de ler aqui para não perder a graça.&lt;/p&gt;  &lt;p&gt;Revendo as funções:&lt;/p&gt;  &lt;pre class="c#" name="code"&gt;FazAlgo(object arg) {} //overload 1
FazAlgo(params object[] args) {} //overload 2&lt;/pre&gt;

&lt;p&gt;Minha chamada é assim:&lt;/p&gt;

&lt;pre class="c#" name="code"&gt;string[] parametros = {&amp;quot;Giovanni&amp;quot;, &amp;quot;Bassi&amp;quot;};
FazAlgo(parametros);&lt;/pre&gt;

&lt;p&gt;Qual overload é chamado? Revendo as opções:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;O primeiro é chamado, passando um array de strings como um objeto. &lt;/li&gt;

  &lt;li&gt;O segundo é chamado, passando um array de strings como se fosse um array de objetos. &lt;/li&gt;

  &lt;li&gt;O segundo é chamado, passando um array de strings como um objeto do array args, como se implicitamente fizesse &amp;quot;FazAlgo(new object[] {parametros})&amp;quot; &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Adianto que a opção 3, apesar de tecnicamente ser possível, não é a correta porque há duas opções mais diretas. Nesta terceira opção o compilador tem que expandir o objeto de object para object[], e, como nas outras duas opção não há mudança alguma, a terceira opção é descartada.&lt;/p&gt;

&lt;p&gt;Graças à covariância entre arrays, podemos converter implicitamente de string[] para object[]. Isso coloca o overload 2 como mais específico que o overload 1, e portanto ele é o escolhido. Um array de strings pode até ser um object, mas ele é mais especificamente um array de objetos. O tipo mais específico sempre ganha.&lt;/p&gt;

&lt;p&gt;Engraçado que normalmente quando essa questão é levantada a maioria das pessoas dizem que a opção 1 é a correta. Mas não me parece a mais óbvia. Talvez as pessoas não entendam a &lt;a href="http://unplugged.giggio.net/post/Heranca-e-Generics.aspx" target="_blank"&gt;questão da variância&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=gec9QgGtZV0:sp0V83tczBw:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=gec9QgGtZV0:sp0V83tczBw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=gec9QgGtZV0:sp0V83tczBw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=gec9QgGtZV0:sp0V83tczBw:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=gec9QgGtZV0:sp0V83tczBw:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=gec9QgGtZV0:sp0V83tczBw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=gec9QgGtZV0:sp0V83tczBw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=gec9QgGtZV0:sp0V83tczBw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=gec9QgGtZV0:sp0V83tczBw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=gec9QgGtZV0:sp0V83tczBw:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/gec9QgGtZV0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/gec9QgGtZV0/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/C-Resposta-a-Qual-Overload-e-chamado.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=bd65506f-27d8-4341-a2e9-e92c701efbf7</guid>
      <pubDate>Mon, 08 Jun 2009 05:50:00 -0700</pubDate>
      <category>.Net</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=bd65506f-27d8-4341-a2e9-e92c701efbf7</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=bd65506f-27d8-4341-a2e9-e92c701efbf7</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/C-Resposta-a-Qual-Overload-e-chamado.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=bd65506f-27d8-4341-a2e9-e92c701efbf7</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=bd65506f-27d8-4341-a2e9-e92c701efbf7</feedburner:origLink></item>
    <item>
      <title>Estimativa == cálculo aproximado</title>
      <description>&lt;blockquote&gt;
	&lt;p&gt;
	&amp;quot;You might think you already know what an estimate is. My goal by the end of this chapter is to convince you that an estimate is different from what most people think. A good estimate is even more different.&lt;br /&gt;
	Here is a dictionary definition of estimate: 1. A tentative evaluation or rough calculation. 2. A preliminary calculation of the cost of a project. 3. A judgment based upon one&amp;#39;s impressions; opinion. (Source: The American Heritage Dictionary, Second College Edition, 1985.)&lt;br /&gt;
	Does this sound like what you are asked for when you&amp;#39;re asked for an estimate? Are you asked for a tentative or preliminary calculation&amp;mdash;that is, do you expect that you can change your mind later?&lt;br /&gt;
	Probably not. When executives ask for an &amp;quot;estimate,&amp;quot; they&amp;#39;re often asking for a commitment or for a plan to meet a target. The distinctions between estimates, targets, and commitments are critical to understanding what an estimate is, what an estimate is not, and how to make your estimates better.&amp;quot;
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Primeiros par&amp;aacute;grafos do livro &amp;quot;Software Estimation: Demystifying the Black Art&amp;quot;, da Microsoft Press, que voc&amp;ecirc; compra &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0735605351#reader" target="_blank"&gt;aqui na Amazon por meros 50 reais&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
&amp;Eacute; t&amp;atilde;o importante deixar claro que uma estimativa n&amp;atilde;o &amp;eacute; um contrato, n&amp;atilde;o &amp;eacute; um compromisso, que o cara abre o livro dizendo isso.
&lt;/p&gt;
&lt;p&gt;
Quantas pessoas e empresas entendem isso?
&lt;/p&gt;
&lt;p&gt;
Acho que esse par&amp;aacute;grafo, por si s&amp;oacute;, resolveria 90% dos problemas comerciais decorrentes de mudan&amp;ccedil;a de escopo e desvio de prazo presentes no mercado hoje.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.aulete.portaldapalavra.com.br/site.php?mdl=aulete_digital&amp;amp;op=loadVerbete&amp;amp;pesquisa=1&amp;amp;palavra=estimativa" target="_blank"&gt;Estimativa == C&amp;aacute;lculo aproximado&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Combinado?
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=ZCB7E-4HH4Y:J19by7QMB_k:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=ZCB7E-4HH4Y:J19by7QMB_k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=ZCB7E-4HH4Y:J19by7QMB_k:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=ZCB7E-4HH4Y:J19by7QMB_k:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=ZCB7E-4HH4Y:J19by7QMB_k:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=ZCB7E-4HH4Y:J19by7QMB_k:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=ZCB7E-4HH4Y:J19by7QMB_k:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=ZCB7E-4HH4Y:J19by7QMB_k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=ZCB7E-4HH4Y:J19by7QMB_k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=ZCB7E-4HH4Y:J19by7QMB_k:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/ZCB7E-4HH4Y" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/ZCB7E-4HH4Y/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (Giovanni Bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/Estimativa-e-igual-a-calculo-aproximado.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=35e574c1-54b4-4220-91f8-0119974e090d</guid>
      <pubDate>Fri, 05 Jun 2009 05:56:00 -0700</pubDate>
      <category>Gestão de projeto</category>
      <dc:publisher>Giovanni Bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=35e574c1-54b4-4220-91f8-0119974e090d</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=35e574c1-54b4-4220-91f8-0119974e090d</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/Estimativa-e-igual-a-calculo-aproximado.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=35e574c1-54b4-4220-91f8-0119974e090d</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=35e574c1-54b4-4220-91f8-0119974e090d</feedburner:origLink></item>
    <item>
      <title>Webcast de C# 4.0 – Parte 1 – Apresentação e recursos</title>
      <description>&lt;p&gt;Conforme prometido no webcast, seguem os recursos que apresentei no webcast neste post.&lt;/p&gt;  &lt;p&gt;Apresentação:&lt;/p&gt;  &lt;div style="width:425px;text-align:left" id="__ss_1533748"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/giovanni.bassi/c4-parte-1-dinamismo-e-argumentos-opcionais-e-nomeados?type=presentation" title="C#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeados"&gt;C#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeados&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=webcast-c4-1-dinamismoeargsopcenom-090604113644-phpapp02&amp;amp;stripped_title=c4-parte-1-dinamismo-e-argumentos-opcionais-e-nomeados" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=webcast-c4-1-dinamismoeargsopcenom-090604113644-phpapp02&amp;amp;stripped_title=c4-parte-1-dinamismo-e-argumentos-opcionais-e-nomeados" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more presentations from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/giovanni.bassi"&gt;Giovanni Bassi&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Meu site de consultoria: &lt;a href="http://giovannibassi.com"&gt;http://giovannibassi.com&lt;/a&gt;    &lt;br /&gt;Site do .Net Architects: &lt;a href="http://dotnetarchitects.net"&gt;http://dotnetarchitects.net&lt;/a&gt;     &lt;br /&gt;Grupo de discussão online do .Net Architects: &lt;a href="http://tinyurl.com/DotNetArch"&gt;http://tinyurl.com/DotNetArch&lt;/a&gt;    &lt;br /&gt;Evento de arquitetura de software (.Net Architects Day 2009): &lt;a href="http://dotnetarchitects.net/dnad2009"&gt;http://dotnetarchitects.net/dnad2009&lt;/a&gt;    &lt;br /&gt;Visual Studio 2010 Beta 1: &lt;a href="http://tinyurl.com/vs10b1"&gt;http://tinyurl.com/vs10b1&lt;/a&gt;     &lt;br /&gt;C# 4 Resources: &lt;a href="http://msdn.microsoft.com/en-us/vcsharp/dd819407.aspx"&gt;http://msdn.microsoft.com/en-us/vcsharp/dd819407.aspx&lt;/a&gt;     &lt;br /&gt;Eric Lippert (Microsoft, time C#): &lt;a href="http://blogs.msdn.com/ericlippert/"&gt;http://blogs.msdn.com/ericlippert/&lt;/a&gt;     &lt;br /&gt;Sam NG (Microsoft) &lt;a href="http://blogs.msdn.com/samng/archive/tags/Runtime+binding/default.aspx"&gt;http://blogs.msdn.com/samng/archive/tags/Runtime+binding/default.aspx&lt;/a&gt;    &lt;br /&gt;Tags de C#4 neste blog: &lt;a href="http://unplugged.giggio.net/unplugged/?tag=/c%234"&gt;http://unplugged.giggio.net/unplugged/?tag=/c%234&lt;/a&gt;     &lt;br /&gt;Renato Guimarães (MVP C#): &lt;a href="http://renatoguimaraes.spaces.live.com"&gt;http://renatoguimaraes.spaces.live.com&lt;/a&gt;     &lt;br /&gt;Edição 60 com artigo meu sobre C#4: &lt;a href="http://www.devmedia.com.br/resumo/default.asp?ed=60&amp;amp;site=1"&gt;http://www.devmedia.com.br/resumo/default.asp?ed=60&amp;amp;site=1&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=iXW6Zy79Zh8:HykraUxipNA:Tph0bMNtBCI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=Tph0bMNtBCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=iXW6Zy79Zh8:HykraUxipNA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=iXW6Zy79Zh8:HykraUxipNA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=iXW6Zy79Zh8:HykraUxipNA:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=iXW6Zy79Zh8:HykraUxipNA:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=iXW6Zy79Zh8:HykraUxipNA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=iXW6Zy79Zh8:HykraUxipNA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=iXW6Zy79Zh8:HykraUxipNA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?i=iXW6Zy79Zh8:HykraUxipNA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DotNetUnplugged?a=iXW6Zy79Zh8:HykraUxipNA:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DotNetUnplugged?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DotNetUnplugged/~4/iXW6Zy79Zh8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DotNetUnplugged/~3/iXW6Zy79Zh8/post.aspx</link>
      <author>unplugged.nospam@nospam.giggio.net (giovanni bassi)</author>
      <comments>http://unplugged.giggio.net/unplugged/post/Webcast-de-C-40-e28093-Parte-1-e28093-Apresentacao-e-recursos.aspx#comment</comments>
      <guid isPermaLink="false">http://unplugged.giggio.net/unplugged/post.aspx?id=87e632d2-a62b-4536-9994-64a3474385f4</guid>
      <pubDate>Thu, 04 Jun 2009 09:48:00 -0700</pubDate>
      <category>.Net</category>
      <dc:publisher>giovanni bassi</dc:publisher>
      <pingback:server>http://unplugged.giggio.net/unplugged/pingback.axd</pingback:server>
      <pingback:target>http://unplugged.giggio.net/unplugged/post.aspx?id=87e632d2-a62b-4536-9994-64a3474385f4</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://unplugged.giggio.net/unplugged/trackback.axd?id=87e632d2-a62b-4536-9994-64a3474385f4</trackback:ping>
      <wfw:comment>http://unplugged.giggio.net/unplugged/post/Webcast-de-C-40-e28093-Parte-1-e28093-Apresentacao-e-recursos.aspx#comment</wfw:comment>
      <wfw:commentRss>http://unplugged.giggio.net/unplugged/syndication.axd?post=87e632d2-a62b-4536-9994-64a3474385f4</wfw:commentRss>
    <feedburner:origLink>http://unplugged.giggio.net/unplugged/post.aspx?id=87e632d2-a62b-4536-9994-64a3474385f4</feedburner:origLink></item>
  </channel>
</rss>
