﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comentários sobre: Design By Contract (DbC) em .NET</title>
	<atom:link href="http://www.heroisdati.com/design-by-contract-dbc-em-net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/</link>
	<description>Por Denis Ferrari</description>
	<lastBuildDate>Mon, 19 Dec 2011 10:14:08 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>Por: Design by contract (DbC) em .NET: comparando soluções :: Tutoriais CTDO - Sua Base de Tutoriais Online</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-178</link>
		<dc:creator>Design by contract (DbC) em .NET: comparando soluções :: Tutoriais CTDO - Sua Base de Tutoriais Online</dc:creator>
		<pubDate>Sat, 28 Aug 2010 21:01:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-178</guid>
		<description>[...] ter &#101;&#115;&#099;&#114;&#105;&#116;&#111; &#111; seguinte comentário: &#8220;Pra min &#105;&#115;&#115;&#111; é firula, não &#118;&#101;&#106;&#111; diferença &#110;&#101;&amp;#1...&#8220;. Alguns códigos que &#118;&#111;&#117; [...]</description>
		<content:encoded><![CDATA[<p>[...] ter &#101;&#115;&#99;&#114;&#105;&#116;&#111; &#111; seguinte comentário: &#8220;Pra min &#105;&#115;&#115;&#111; é firula, não &#118;&#101;&#106;&#111; diferença &#110;&#101;&amp;#1&#8230;&#8220;. Alguns códigos que &#118;&#111;&#117; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Denis Ferrari</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-136</link>
		<dc:creator>Denis Ferrari</dc:creator>
		<pubDate>Thu, 05 Aug 2010 03:52:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-136</guid>
		<description>Dilter,

Realizei vários testes na minha máquina comparando as implementações, não tive uma queda de performance expressiva usando DbC. Como isso não é uma comprovação científica, sugiro que você faça alguns testes de utilização na arquitetura que deseja implementar, e é claro, compartilhe os resultados :).

Abraços!</description>
		<content:encoded><![CDATA[<p>Dilter,</p>
<p>Realizei vários testes na minha máquina comparando as implementações, não tive uma queda de performance expressiva usando DbC. Como isso não é uma comprovação científica, sugiro que você faça alguns testes de utilização na arquitetura que deseja implementar, e é claro, compartilhe os resultados <img src='http://hidrotec-es.com.br/denisferrari/wiki/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Abraços!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Dilter Porto</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-131</link>
		<dc:creator>Dilter Porto</dc:creator>
		<pubDate>Fri, 30 Jul 2010 16:55:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-131</guid>
		<description>Olá Denis.
Desculpa, não especifiquei bem o custo que estava me referindo.

Estava falando a respeito do custo de performance pelo fato da necessidade da instanciação de mais objetos e processamentos adicionais. Isso tudo comparado ao custo da implementação tradicional, com o &quot;if&quot;.

Valeu.</description>
		<content:encoded><![CDATA[<p>Olá Denis.<br />
Desculpa, não especifiquei bem o custo que estava me referindo.</p>
<p>Estava falando a respeito do custo de performance pelo fato da necessidade da instanciação de mais objetos e processamentos adicionais. Isso tudo comparado ao custo da implementação tradicional, com o &#8220;if&#8221;.</p>
<p>Valeu.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Cadu</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-121</link>
		<dc:creator>Cadu</dc:creator>
		<pubDate>Wed, 28 Jul 2010 02:58:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-121</guid>
		<description>Fala meu camarada parabéns gostei do post abração</description>
		<content:encoded><![CDATA[<p>Fala meu camarada parabéns gostei do post abração</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Fabrício Vargas Matos</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-119</link>
		<dc:creator>Fabrício Vargas Matos</dc:creator>
		<pubDate>Tue, 27 Jul 2010 15:58:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-119</guid>
		<description>Fala Denis,

Legal saber do recurso no .NET.

O uso de pré/pós-condições e invariantes (não estou falando de classes .NET, mas da técnica) é algo muito interessante para especificação de comportamentos dos algoritmos e sua prova de correção. Aplicamos isso muito bem em casos mais específicos, como algoritmos de busca e ordenação por exemplo e outros comportamentos de infra. Mas na indústria de sistemas de informação, na camada de domínio, não vemos um uso adequado. Custo? Talvez. Embora a aderência dessas técnicas (básicas em Métodos Formais) ao desenvolvimento de sistemas de informação seja questionável, a verdade é que muitos poucos desenvolvedores realmente sabem utilizar coisas como Invariantes, indução matemática, etc..

Nessa seara tem pano pra manga!

Abraços!</description>
		<content:encoded><![CDATA[<p>Fala Denis,</p>
<p>Legal saber do recurso no .NET.</p>
<p>O uso de pré/pós-condições e invariantes (não estou falando de classes .NET, mas da técnica) é algo muito interessante para especificação de comportamentos dos algoritmos e sua prova de correção. Aplicamos isso muito bem em casos mais específicos, como algoritmos de busca e ordenação por exemplo e outros comportamentos de infra. Mas na indústria de sistemas de informação, na camada de domínio, não vemos um uso adequado. Custo? Talvez. Embora a aderência dessas técnicas (básicas em Métodos Formais) ao desenvolvimento de sistemas de informação seja questionável, a verdade é que muitos poucos desenvolvedores realmente sabem utilizar coisas como Invariantes, indução matemática, etc..</p>
<p>Nessa seara tem pano pra manga!</p>
<p>Abraços!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Denis Ferrari</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-117</link>
		<dc:creator>Denis Ferrari</dc:creator>
		<pubDate>Mon, 26 Jul 2010 20:44:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-117</guid>
		<description>Olá Dilter,

A curva de aprendizado dessa técnica é muito pequena, o que torna o seu custo irrisório.

Vou escrever um novo post comparando as duas soluções.

Abraços!</description>
		<content:encoded><![CDATA[<p>Olá Dilter,</p>
<p>A curva de aprendizado dessa técnica é muito pequena, o que torna o seu custo irrisório.</p>
<p>Vou escrever um novo post comparando as duas soluções.</p>
<p>Abraços!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Dilter Porto</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-113</link>
		<dc:creator>Dilter Porto</dc:creator>
		<pubDate>Mon, 26 Jul 2010 17:33:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-113</guid>
		<description>Denis,
acho que a única dúvida que vem é com relação ao custo desta implementação. A maior clareza no código e a utilização de uma técnica de propósito específico para um problema (manutenção correta de estado dos objetos) traz um custo maior se comparado às tradicionais implementações com if .. throw exception ?</description>
		<content:encoded><![CDATA[<p>Denis,<br />
acho que a única dúvida que vem é com relação ao custo desta implementação. A maior clareza no código e a utilização de uma técnica de propósito específico para um problema (manutenção correta de estado dos objetos) traz um custo maior se comparado às tradicionais implementações com if .. throw exception ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Denis Ferrari</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-107</link>
		<dc:creator>Denis Ferrari</dc:creator>
		<pubDate>Fri, 23 Jul 2010 19:21:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-107</guid>
		<description>Oi Guilherme,

O DbC é justamente para isso, garantir o estado do seu objeto durante todo o tempo de vida dele. Você protege seus métodos contra parâmetros inválidos e suas propriedades contra configurações errôneas.

É uma das formas de garantir o estado do seu objeto, algumas pessoas utilizam AOP para isso, se quiser saber mais veja o link:
http://podcast.dotnetarchitects.net/2010/05/podcast-13programacao-orientada-a-aspecto/

Abraços!</description>
		<content:encoded><![CDATA[<p>Oi Guilherme,</p>
<p>O DbC é justamente para isso, garantir o estado do seu objeto durante todo o tempo de vida dele. Você protege seus métodos contra parâmetros inválidos e suas propriedades contra configurações errôneas.</p>
<p>É uma das formas de garantir o estado do seu objeto, algumas pessoas utilizam AOP para isso, se quiser saber mais veja o link:<br />
<a href="http://podcast.dotnetarchitects.net/2010/05/podcast-13programacao-orientada-a-aspecto/" rel="nofollow">http://podcast.dotnetarchitects.net/2010/05/podcast-13programacao-orientada-a-aspecto/</a></p>
<p>Abraços!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Guilherme</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-106</link>
		<dc:creator>Guilherme</dc:creator>
		<pubDate>Fri, 23 Jul 2010 18:37:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-106</guid>
		<description>Podemos usar DbC para fazer validações nas entidades? Por exemplo garantir que uma variavel nunca seja nula ou vazia, esse tipo de coisa? É uma boa pratica ou recomendado?</description>
		<content:encoded><![CDATA[<p>Podemos usar DbC para fazer validações nas entidades? Por exemplo garantir que uma variavel nunca seja nula ou vazia, esse tipo de coisa? É uma boa pratica ou recomendado?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Renan</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-105</link>
		<dc:creator>Renan</dc:creator>
		<pubDate>Fri, 23 Jul 2010 14:13:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-105</guid>
		<description>Parabens, gostei.Aprendizado novo.</description>
		<content:encoded><![CDATA[<p>Parabens, gostei.Aprendizado novo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Denis Ferrari</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-104</link>
		<dc:creator>Denis Ferrari</dc:creator>
		<pubDate>Fri, 23 Jul 2010 13:52:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-104</guid>
		<description>Já está no seu e-mail.

Não precisa desenvolver o construtor do hexadecimal, só garantir as pré-condições, pós-condições e invariantes sem usar os contratos. Se preocupe com o valor mínimo e máximo das taxas (0 -&gt; 255).

;)</description>
		<content:encoded><![CDATA[<p>Já está no seu e-mail.</p>
<p>Não precisa desenvolver o construtor do hexadecimal, só garantir as pré-condições, pós-condições e invariantes sem usar os contratos. Se preocupe com o valor mínimo e máximo das taxas (0 -&gt; 255).<br />
 <img src='http://hidrotec-es.com.br/denisferrari/wiki/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Gustavo</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-103</link>
		<dc:creator>Gustavo</dc:creator>
		<pubDate>Fri, 23 Jul 2010 13:46:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-103</guid>
		<description>Blz, 

Me envie essa solution q vc usou nesse demo q eu altero do meu jeito sem essas firulas de Contracts... hehe

KISS</description>
		<content:encoded><![CDATA[<p>Blz, </p>
<p>Me envie essa solution q vc usou nesse demo q eu altero do meu jeito sem essas firulas de Contracts&#8230; hehe</p>
<p>KISS</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Denis Ferrari</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-102</link>
		<dc:creator>Denis Ferrari</dc:creator>
		<pubDate>Fri, 23 Jul 2010 13:44:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-102</guid>
		<description>Olá Cesar,

O exemplo está na versão 4.0. Para trabalhar com contratos na versão 3.5 do framework você pode utilizar o Spec#. Veja maiores informações no link:
http://research.microsoft.com/en-us/projects/specsharp/

Abraços!</description>
		<content:encoded><![CDATA[<p>Olá Cesar,</p>
<p>O exemplo está na versão 4.0. Para trabalhar com contratos na versão 3.5 do framework você pode utilizar o Spec#. Veja maiores informações no link:<br />
<a href="http://research.microsoft.com/en-us/projects/specsharp/" rel="nofollow">http://research.microsoft.com/en-us/projects/specsharp/</a></p>
<p>Abraços!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Cesar Rabelo</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-101</link>
		<dc:creator>Cesar Rabelo</dc:creator>
		<pubDate>Fri, 23 Jul 2010 13:25:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-101</guid>
		<description>Esse namespace contracts está disponível em qual versão do .net framework? Ou ela é externa a .net framework? Tentei simular esse exemplo no vs2008 framework 3.5 e não achei esse namespace. System.Diagnostics.Contracts: só achei essas System.Diagnostics.CodeAnalysis;
System.Diagnostics.Eventing;
System.Diagnostics.PerformanceData;
System.Diagnostics.SymbolStore;</description>
		<content:encoded><![CDATA[<p>Esse namespace contracts está disponível em qual versão do .net framework? Ou ela é externa a .net framework? Tentei simular esse exemplo no vs2008 framework 3.5 e não achei esse namespace. System.Diagnostics.Contracts: só achei essas System.Diagnostics.CodeAnalysis;<br />
System.Diagnostics.Eventing;<br />
System.Diagnostics.PerformanceData;<br />
System.Diagnostics.SymbolStore;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Denis Ferrari</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-100</link>
		<dc:creator>Denis Ferrari</dc:creator>
		<pubDate>Fri, 23 Jul 2010 01:47:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-100</guid>
		<description>Oi Gustavo,

Por que não fazemos o seguinte: Faça sua implementação da mesma classe garantindo as regras a sua maneira, depois comparamos os resultados ok? O que acha?</description>
		<content:encoded><![CDATA[<p>Oi Gustavo,</p>
<p>Por que não fazemos o seguinte: Faça sua implementação da mesma classe garantindo as regras a sua maneira, depois comparamos os resultados ok? O que acha?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Gustavo</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-99</link>
		<dc:creator>Gustavo</dc:creator>
		<pubDate>Thu, 22 Jul 2010 20:55:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-99</guid>
		<description>Pra min isso é firula, não vejo diferença nenhum do if(...) throw new Exception...</description>
		<content:encoded><![CDATA[<p>Pra min isso é firula, não vejo diferença nenhum do if(&#8230;) throw new Exception&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Denis Ferrari</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-98</link>
		<dc:creator>Denis Ferrari</dc:creator>
		<pubDate>Thu, 22 Jul 2010 20:36:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-98</guid>
		<description>Obrigado pelo feedback Edmilson! :)</description>
		<content:encoded><![CDATA[<p>Obrigado pelo feedback Edmilson! <img src='http://hidrotec-es.com.br/denisferrari/wiki/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Edmilson</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-97</link>
		<dc:creator>Edmilson</dc:creator>
		<pubDate>Thu, 22 Jul 2010 20:08:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-97</guid>
		<description>Denis,  muito bom artigo, seu blog esta show de Bola!!
[]´s

Edmilson</description>
		<content:encoded><![CDATA[<p>Denis,  muito bom artigo, seu blog esta show de Bola!!<br />
[]´s</p>
<p>Edmilson</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Jhonatan Fernando</title>
		<link>http://www.heroisdati.com/design-by-contract-dbc-em-net/comment-page-1/#comment-96</link>
		<dc:creator>Jhonatan Fernando</dc:creator>
		<pubDate>Thu, 22 Jul 2010 19:04:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.heroisdati.com/?p=483#comment-96</guid>
		<description>Denis, parabéns pelo artigo, ficou muito bom!!</description>
		<content:encoded><![CDATA[<p>Denis, parabéns pelo artigo, ficou muito bom!!</p>
]]></content:encoded>
	</item>
</channel>
</rss>

