<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Desenvolvimento web</title>
	<atom:link href="http://www.webdesenvolvimento.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webdesenvolvimento.net</link>
	<description>Programação, Bancos de Dados e Design para WEB</description>
	<lastBuildDate>Wed, 28 Jul 2010 03:28:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SelfJoin x CTE (Common Table Expression)</title>
		<link>http://www.webdesenvolvimento.net/sqlserver/selfjoin-x-cte-common-table-expression/</link>
		<comments>http://www.webdesenvolvimento.net/sqlserver/selfjoin-x-cte-common-table-expression/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 03:23:52 +0000</pubDate>
		<dc:creator>Rafaela Maion</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.webdesenvolvimento.net/?p=339</guid>
		<description><![CDATA[Depois de muito tempo, voltei &#8230; na verdade fiquei um tempinho em off pois estava estudando para tirar a certificação e preparar o meu treinamento de SQL Server. Mas a boa notícia que consegui tirar a certificação, com um Score de 970. Prestei a prova 70-433.
Agora mãos a obra &#8230;
Hoje iremos falar sobre CTE &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de muito tempo, voltei &#8230; na verdade fiquei um tempinho em off pois estava estudando para tirar a certificação e preparar o meu treinamento de SQL Server. Mas a boa notícia que consegui tirar a certificação, com um Score de 970. Prestei a prova 70-433.</p>
<p>Agora mãos a obra &#8230;</p>
<p>Hoje iremos falar sobre CTE &#8211; Common Table Expression X SelfJoin.</p>
<p>O CTE é um recurso desde o SQL Server 2005. Se compararmos o código do Self-Join com o CTE , até parece complicado (Rs), mas ao decorrer do Post, veremos que fácil.</p>
<p>Antes de mais nada, Self Join é quando utilizamos a mesma tabela no FROM e no JOIN. É normal fazermos isso quando queremos por exemplo listar todos os funcionários e seus superiores. Antes do SQL Server 2005, esta era a forma que conseguíamos fazer esta junção.</p>
<pre class="brush: sql;">
SELECT E.EmployeeKey,
	   e.FirstName + '' + E.LastName as 'Employee Name',
	   ds.FirstName + '' + ds.LastName as 'Supervisor Name'
 FROM DimEmployee e
INNER JOIN DimEmployee ds ON e.ParentEmployeeKey = ds.EmployeeKey
ORDER BY e.EmployeeKey
</pre>
<p>Com esta query consigo pegar os funcionários e quem é seu supervisor.</p>
<p>Ao decorrer do Post, iremos ver várias maneiras da utilização do CTE. Lembrando que podemos utilizar no escopo de SELECT, INSERT, DELETE, MERGE ou DELETE.</p>
<p>Uma CTE pode se auto referenciar (CTE recursiva) e pode ser referenciada várias vezes na mesma query.  </p>
<p>Sintaxe:</p>
<pre class="brush: sql;">
WITH expression_name [ ( column_name [,...n] ) ]
AS
( CTE_query_definition )
</pre>
<p>Vou dar um exemplo simples da utilização:</p>
<pre class="brush: sql;">
WITH CTE_Simples (Id, Nome) AS
(
     SELECT Id, Nome FROM Funcionario
)
SELECT * FROM CTE_Simples
</pre>
<p>ou até mesmo</p>
<pre class="brush: sql;">
WITH CTE_Simples (Id, Nome) AS
(
     SELECT 1, 'Rafaela'
)
SELECT * FROM CTE_Simples
</pre>
<p>Simples não é mesmo ??? Claro, quando pensamos na utilização do CTE, pensamos em recursividade. Onde eu preciso chamar a minha CTE várias vezes, e isso cai no caso do exemplo que dei sobre Self-Join. </p>
<p>Vamos então utilizar o exemplo do Self-Join utilizando CTE.</p>
<p>Para trabalhar com CTE recursiva (Recursive CTE), tem uma query inicial, chamada de query âncora e uma segunda query que é liga a âncora, através do UNION ALL.</p>
<pre class="brush: sql;">
WITH Employee_CTE (employeeKey,Level, EmployeeName) AS
(
	SELECT e.EmployeeKey, 1, e.FirstName + '' + E.LastName as Name
 	FROM DimEmployee e
	WHERE e.ParentEmployeeKey IS NULL
	UNION ALL
	SELECT e.EmployeeKey, cte.level + 1, e.FirstName + ' ' + E.LastName AS Name
	FROM DimEmployee e
	INNER JOIN Employee_CTE cte ON E.ParentEmployeeKey  = cte.employeeKey
)
SELECT * FROM Employee_CTE
</pre>
<p>Se executarmos as duas querys (Self-Join e CTE) o Execute Plan tratá os seguintes custos:</p>
<ul>
<li>Self-Join &#8211; 0.0642</li>
<li>CTE &#8211; 0.0249.</li>
</ul>
<p>Claro, temos que considerar que a tabela que estou utilizando tem apenas 296, mas a intensão é mostrar que temos um ganho de performance utilizando o CTE.</p>
<p>Bom espero que tenham gostado, e nos vemos na próxima.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.webdesenvolvimento.net/sqlserver/selfjoin-x-cte-common-table-expression/feed" rel="nofollow" class="external" title="Acompanhar comentários deste artigo?">Acompanhar comentários deste artigo?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.webdesenvolvimento.net/sqlserver/selfjoin-x-cte-common-table-expression/&amp;title=SelfJoin+x+CTE+%28Common+Table+Expression%29" rel="nofollow" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.webdesenvolvimento.net/sqlserver/selfjoin-x-cte-common-table-expression/&amp;title=SelfJoin+x+CTE+%28Common+Table+Expression%29" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.webdesenvolvimento.net/sqlserver/selfjoin-x-cte-common-table-expression/&amp;t=SelfJoin+x+CTE+%28Common+Table+Expression%29" rel="nofollow" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=SelfJoin+x+CTE+%28Common+Table+Expression%29&amp;link=http://www.webdesenvolvimento.net/sqlserver/selfjoin-x-cte-common-table-expression/" rel="nofollow" class="external" title="Compartilhar noFriendFeed">Compartilhar noFriendFeed</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.webdesenvolvimento.net/sqlserver/selfjoin-x-cte-common-table-expression/&amp;title=SelfJoin+x+CTE+%28Common+Table+Expression%29" rel="nofollow" class="external" title="Adicionar aoGoogle Bookmarks">Adicionar aoGoogle Bookmarks</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.webdesenvolvimento.net/sqlserver/selfjoin-x-cte-common-table-expression/" rel="nofollow" class="external" title="Compartilhar noTechnorati">Compartilhar noTechnorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=SelfJoin+x+CTE+%28Common+Table+Expression%29+-+http://tinyurl.com/22s59aq+&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.webdesenvolvimento.net/sqlserver/selfjoin-x-cte-common-table-expression/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expression Tree Type</title>
		<link>http://www.webdesenvolvimento.net/net-framework/expression-tree-type/</link>
		<comments>http://www.webdesenvolvimento.net/net-framework/expression-tree-type/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 03:26:20 +0000</pubDate>
		<dc:creator>Talles Maion</dc:creator>
				<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[VB.NET]]></category>

		<guid isPermaLink="false">http://www.webdesenvolvimento.net/?p=383</guid>
		<description><![CDATA[Árvores de Expressão ou Expression Tree Types representam o código em uma árvore (sistema autônomo estrutura de dados) onde cada nó é uma expressão, por exemplo, uma chamada de método ou uma operação binária, sistema autônomo, por exemplo, x < y.
Além disso, podemos compilar e executar código representado por árvores de expressão, isso permite a [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Árvores de Expressão ou Expression Tree Types</strong> representam o código em uma árvore (sistema autônomo estrutura de dados) onde cada nó é uma expressão, por exemplo, uma chamada de método ou uma operação binária, sistema autônomo, por exemplo, x < y.</p>
<p>Além disso, podemos compilar e executar código representado por árvores de expressão, isso permite a modificação dinâmica de código executável.</p>
<p>A ilustração a seguir mostra um exemplo de uma expressão e sua representação:</p>
<p><a href="http://www.webdesenvolvimento.net/wp-content/expressiontree.jpg"><img class="aligncenter size-medium wp-image-384" title="Expression Tree Type" src="http://www.webdesenvolvimento.net/wp-content/expressiontree-300x275.jpg" alt="Expression Tree Type" width="300" height="275" /></a></p>
<p><strong>Na prática</strong></p>
<div id="div_CLE1" class="dp-highlighter" style="display: inline;">
<pre class="brush: csharp;">
public static void Main(string[] args)
{
    //Criando a seguinte Expression Tree Lambda Expression:
    //num =&gt; num &lt; 5
    //
    //Não esqueça de importar o namespace: System.Linq.Expressions
    ParameterExpression numParam = Expression.Parameter(typeof(int), &quot;num&quot;);
        ConstantExpression five = Expression.Constant(5, typeof(int));
            BinaryExpression numLessThanFive = Expression.LessThan(numParam, five);
            Expression&lt;Func&lt;int, bool&gt;&gt; lambda1 =
                Expression.Lambda&lt;Func&lt;int, bool&gt;&gt;(
                    numLessThanFive,
                    new ParameterExpression[] { numParam });
}
</pre>
</div>
<div id="div_VBLE1" class="dp-highlighter" style="display: none;">
<pre class="brush: vb;">
Sub Main()
    'Criando a seguinte Expression Tree Lambda Expression:
    'num =&gt; num &lt; 5
    '
    'Não esqueça de importar o namespace: System.Linq.Expressions
    Dim numParam As ParameterExpression = Expressions.Expression.Parameter(GetType(Integer), &quot;num&quot;)
    Dim five As ConstantExpression = Expressions.Expression.Constant(5, GetType(Integer))
    Dim numLessThanFive As BinaryExpression = Expressions.Expression.LessThan(numParam, five)
    Dim lambda1 As Expression(Of Func(Of Integer, Boolean)) = _
                                 Expressions.Expression.Lambda(Of Func(Of Integer, Boolean)) _
                                 (numLessThanFive, _
                                 New ParameterExpression() {numParam})
End Sub
</pre>
</div>
<div class="menulanguage">
<ul>
<li><a id="hyp_CLE1" class="current" href="javascript:changeSyntax ('CLE1', 'VBLE1', false)">C#.NET</a></li>
<li><a id="hyp_VBLE1" href="javascript:changeSyntax ('CLE1', 'VBLE1', true)">VB.NET</a></li>
</ul>
</div>
<p>T+ <img src='http://www.webdesenvolvimento.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<script type="text/javascript">// <![CDATA[
 function changeSyntax (lang1, lang2, showLang2) {var div_1 = 'div_' + lang1;var div_2 = 'div_' + lang2;var hyp_1 = 'hyp_' + lang1;var hyp_2 = 'hyp_' + lang2;document.getElementById(div_1).style.display = (showLang2) ? 'none' : 'inline';document.getElementById(div_2).style.display = (showLang2) ? 'inline' : 'none';document.getElementById(hyp_1).className = (showLang2) ? 'reset' : 'current';document.getElementById(hyp_2).className = (showLang2) ? 'current' : 'reset';}
// ]]&gt;</script></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.webdesenvolvimento.net/net-framework/expression-tree-type/feed" rel="nofollow" class="external" title="Acompanhar comentários deste artigo?">Acompanhar comentários deste artigo?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.webdesenvolvimento.net/net-framework/expression-tree-type/&amp;title=Expression+Tree+Type" rel="nofollow" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.webdesenvolvimento.net/net-framework/expression-tree-type/&amp;title=Expression+Tree+Type" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.webdesenvolvimento.net/net-framework/expression-tree-type/&amp;t=Expression+Tree+Type" rel="nofollow" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Expression+Tree+Type&amp;link=http://www.webdesenvolvimento.net/net-framework/expression-tree-type/" rel="nofollow" class="external" title="Compartilhar noFriendFeed">Compartilhar noFriendFeed</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.webdesenvolvimento.net/net-framework/expression-tree-type/&amp;title=Expression+Tree+Type" rel="nofollow" class="external" title="Adicionar aoGoogle Bookmarks">Adicionar aoGoogle Bookmarks</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.webdesenvolvimento.net/net-framework/expression-tree-type/" rel="nofollow" class="external" title="Compartilhar noTechnorati">Compartilhar noTechnorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Expression+Tree+Type+-+http://tinyurl.com/27k6gfw+&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.webdesenvolvimento.net/net-framework/expression-tree-type/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lambda Expressions</title>
		<link>http://www.webdesenvolvimento.net/c/lambda-expressions/</link>
		<comments>http://www.webdesenvolvimento.net/c/lambda-expressions/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 02:05:18 +0000</pubDate>
		<dc:creator>Talles Maion</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[.NET Framework]]></category>

		<guid isPermaLink="false">http://www.webdesenvolvimento.net/?p=377</guid>
		<description><![CDATA[Uma Expressão Lambda é uma função anônima que pode conter expressões e declarações, e pode ser usada para criar delegates ou expression tree types.
As Expressões Lambda usam o operador =&#62;. O lado esquerdo do operador Lambda especifica os parâmetros de entrada e o lado direito especifica a expressão. Por exemplo, a Expressão Lambda: x =&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Uma <strong>Expressão Lambda</strong> é uma função anônima que pode conter expressões e declarações, e pode ser usada para criar <a href="http://www.webdesenvolvimento.net/net-framework/delegates/" target="_self">delegates</a> ou expression tree types.</p>
<p>As <strong>Expressões Lambda</strong> usam o operador <strong>=&gt;</strong>. O lado esquerdo do operador Lambda especifica os parâmetros de entrada e o lado direito especifica a expressão. Por exemplo, a Expressão Lambda: <strong>x =&gt; x * x</strong>.</p>
<p><strong>Regras para utilização:</strong></p>
<ul>
<li>O lambda deve conter o mesmo número de parâmetros como o tipo de delegate;</li>
<li>Cada parâmetro de entrada na lambda deve ser implicitamente convertível para o parâmetro delegate correspondente;</li>
<li>O valor de retorno do lambda (se houver) deve ser implicitamente conversível no tipo de retorno do delegate.</li>
</ul>
<p><strong>Na prática</strong></p>
<ul>
<li><strong>Exemplo 1</strong></li>
</ul>
<pre class="brush: csharp;">
delegate void TestDelegate(string s);

TestDelegate exemplo = n =&gt; { string s = n + &quot; &quot; + &quot;World&quot;; Console.WriteLine(s); };
exemplo(&quot;Hello&quot;);
</pre>
<p> </p>
<ul>
<li><strong>Exemplo 2</strong></li>
</ul>
<pre class="brush: csharp;">
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

int oddNumbers = numbers.Count(n =&gt; n % 2 == 1);
</pre>
<p>Abraços</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.webdesenvolvimento.net/c/lambda-expressions/feed" rel="nofollow" class="external" title="Acompanhar comentários deste artigo?">Acompanhar comentários deste artigo?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.webdesenvolvimento.net/c/lambda-expressions/&amp;title=Lambda+Expressions" rel="nofollow" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.webdesenvolvimento.net/c/lambda-expressions/&amp;title=Lambda+Expressions" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.webdesenvolvimento.net/c/lambda-expressions/&amp;t=Lambda+Expressions" rel="nofollow" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Lambda+Expressions&amp;link=http://www.webdesenvolvimento.net/c/lambda-expressions/" rel="nofollow" class="external" title="Compartilhar noFriendFeed">Compartilhar noFriendFeed</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.webdesenvolvimento.net/c/lambda-expressions/&amp;title=Lambda+Expressions" rel="nofollow" class="external" title="Adicionar aoGoogle Bookmarks">Adicionar aoGoogle Bookmarks</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.webdesenvolvimento.net/c/lambda-expressions/" rel="nofollow" class="external" title="Compartilhar noTechnorati">Compartilhar noTechnorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Lambda+Expressions+-+http://tinyurl.com/294lxxu+&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.webdesenvolvimento.net/c/lambda-expressions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Constraints em Generics</title>
		<link>http://www.webdesenvolvimento.net/net-framework/constraints-em-generics/</link>
		<comments>http://www.webdesenvolvimento.net/net-framework/constraints-em-generics/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 01:15:14 +0000</pubDate>
		<dc:creator>Talles Maion</dc:creator>
				<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[VB.NET]]></category>

		<guid isPermaLink="false">http://www.webdesenvolvimento.net/?p=371</guid>
		<description><![CDATA[Nos últimos posts conhecemos mais a fundo algumas novidades existentes no Framework 2.0 e 3.5 conforme pode ser visto abaixo:

Generics
Tipos Nulos ou Nullable Types
Delegate Action
Delegate Predicate
Delegate Comparison
Delegate Converter
Type Inference
Anonymous Types
Object Initialization
Extension Methods 

Bom, na parte do Generics ficou faltando falar sobre Constraints em Generics onde podemos definir certas restrições ao tipo T atribuído na declaração de uma [...]]]></description>
			<content:encoded><![CDATA[<p>Nos últimos posts conhecemos mais a fundo algumas novidades existentes no Framework 2.0 e 3.5 conforme pode ser visto abaixo:</p>
<ul>
<li><a href="http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5/" target="_self">Generics</a></li>
<li><a href="http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-parte-2/" target="_self">Tipos Nulos ou Nullable Types</a></li>
<li><a href="http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-3/" target="_self">Delegate Action</a></li>
<li><a href="http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-4/" target="_self">Delegate Predicate</a></li>
<li><a href="http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-5/" target="_self">Delegate Comparison</a></li>
<li><a href="http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-6/" target="_self">Delegate Converter</a></li>
<li><a href="http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-7/" target="_self">Type Inference</a></li>
<li><a href="http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-8/" target="_self">Anonymous Types</a></li>
<li><a href="http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-9/" target="_self">Object Initialization</a></li>
<li><a href="http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-10/" target="_self">Extension Methods</a> </li>
</ul>
<p>Bom, na parte do <a href="http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5/" target="_self">Generics</a> ficou faltando falar sobre <strong>Constraints em Generics</strong> onde podemos definir certas restrições ao tipo <strong>T</strong> atribuído na declaração de uma classe Genérica. Podemos definir Constraints para os seguintes casos:</p>
<ul>
<li>Deve ser um tipo por valor;</li>
<li>Deve ser um tipo por referência;</li>
<li>Deve ter um construtor sem parâmetro (parameter less);</li>
<li>Deve ser especificada uma determinada classe ou sub-classe;</li>
<li>Deve ser implementada uma determinada interface.</li>
</ul>
<p><strong>Definindo Constraints</strong></p>
<table style="width: 100%;">
<tbody>
<tr>
<td style="background: #889800; color: white;"><strong>C#</strong></td>
<td style="background: #889800; color: white;"><strong>VB.NET </strong></td>
<td style="background: #889800; color: white;"><strong>Descrição </strong></td>
</tr>
<tr>
<td>where T : struct</td>
<td>T As Structure</td>
<td>Onde T seja uma estrutura</td>
</tr>
<tr>
<td>where T : class</td>
<td>T As Class</td>
<td>Onde T seja uma classe</td>
</tr>
<tr>
<td>where T : new()</td>
<td>T As New</td>
<td>Onde T possua um construtor sem parâmetro</td>
</tr>
<tr>
<td>where T : class name</td>
<td>T As class name</td>
<td>Onde T herde de uma classe específica</td>
</tr>
<tr>
<td>where T : interface name</td>
<td>T As interface name</td>
<td>Onde T implemente uma interface específica</td>
</tr>
<tr>
<td>where T : U</td>
<td>T As U</td>
<td>Onde T herde de U</td>
</tr>
</tbody>
</table>
<p>
<strong>Na prática</strong><br />
</p>
<div id="div_CGC1" class="dp-highlighter" style="display: inline;">
<pre class="brush: csharp;">
public class Cliente&lt;T&gt;
	where T : IDisposable, new()
{
       //Implementar a classe
}
</pre>
</div>
<div id="div_VBGC1" class="dp-highlighter" style="display: none;">
<pre class="brush: vb;">
Public Class Cliente(Of T As {IDisposable, New})
       'Implementar a classe
End Class
</pre>
</div>
<div class="menulanguage">
<ul>
<li><a id="hyp_CGC1" class="current" href="javascript:changeSyntax ('CGC1', 'VBGC1', false)">C#.NET</a></li>
<li><a id="hyp_VBGC1" href="javascript:changeSyntax ('CGC1', 'VBGC1', true)">VB.NET</a></li>
</ul>
</div>
<p>
Por enquanto é só!!! Até o próximo post.</p>
<p><script type="text/javascript">// <![CDATA[
 function changeSyntax (lang1, lang2, showLang2) {var div_1 = 'div_' + lang1;var div_2 = 'div_' + lang2;var hyp_1 = 'hyp_' + lang1;var hyp_2 = 'hyp_' + lang2;document.getElementById(div_1).style.display = (showLang2) ? 'none' : 'inline';document.getElementById(div_2).style.display = (showLang2) ? 'inline' : 'none';document.getElementById(hyp_1).className = (showLang2) ? 'reset' : 'current';document.getElementById(hyp_2).className = (showLang2) ? 'current' : 'reset';}
// ]]&gt;</script></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.webdesenvolvimento.net/net-framework/constraints-em-generics/feed" rel="nofollow" class="external" title="Acompanhar comentários deste artigo?">Acompanhar comentários deste artigo?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.webdesenvolvimento.net/net-framework/constraints-em-generics/&amp;title=Constraints+em+Generics" rel="nofollow" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.webdesenvolvimento.net/net-framework/constraints-em-generics/&amp;title=Constraints+em+Generics" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.webdesenvolvimento.net/net-framework/constraints-em-generics/&amp;t=Constraints+em+Generics" rel="nofollow" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Constraints+em+Generics&amp;link=http://www.webdesenvolvimento.net/net-framework/constraints-em-generics/" rel="nofollow" class="external" title="Compartilhar noFriendFeed">Compartilhar noFriendFeed</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.webdesenvolvimento.net/net-framework/constraints-em-generics/&amp;title=Constraints+em+Generics" rel="nofollow" class="external" title="Adicionar aoGoogle Bookmarks">Adicionar aoGoogle Bookmarks</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.webdesenvolvimento.net/net-framework/constraints-em-generics/" rel="nofollow" class="external" title="Compartilhar noTechnorati">Compartilhar noTechnorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Constraints+em+Generics+-+http://tinyurl.com/283su5m+&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.webdesenvolvimento.net/net-framework/constraints-em-generics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redes socias no Brasil</title>
		<link>http://www.webdesenvolvimento.net/marketing/redes-socias-no-brasil/</link>
		<comments>http://www.webdesenvolvimento.net/marketing/redes-socias-no-brasil/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 17:01:42 +0000</pubDate>
		<dc:creator>Alex Sandro</dc:creator>
				<category><![CDATA[Marketing]]></category>
		<category><![CDATA[redes sociais]]></category>

		<guid isPermaLink="false">http://www.webdesenvolvimento.net/?p=368</guid>
		<description><![CDATA[Video produzido pela Agência Click da uma idéia da dimensão que as redes socias estão tomando.





		
			Acompanhar comentários deste artigo?
		
		
			Compartilhar nodel.icio.us
		
		
			Digg this!
		
		
			Compartilhar noFacebook
		
		
			Compartilhar noFriendFeed
		
		
			Adicionar aoGoogle Bookmarks
		
		
			Compartilhar noTechnorati
		
		
			Tweet This!
		




]]></description>
			<content:encoded><![CDATA[<p>Video produzido pela Agência Click da uma idéia da dimensão que as redes socias estão tomando.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/DmRsQibIOWg&amp;hl=pt_BR&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/DmRsQibIOWg&amp;hl=pt_BR&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.webdesenvolvimento.net/marketing/redes-socias-no-brasil/feed" rel="nofollow" class="external" title="Acompanhar comentários deste artigo?">Acompanhar comentários deste artigo?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.webdesenvolvimento.net/marketing/redes-socias-no-brasil/&amp;title=Redes+socias+no+Brasil" rel="nofollow" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.webdesenvolvimento.net/marketing/redes-socias-no-brasil/&amp;title=Redes+socias+no+Brasil" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.webdesenvolvimento.net/marketing/redes-socias-no-brasil/&amp;t=Redes+socias+no+Brasil" rel="nofollow" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Redes+socias+no+Brasil&amp;link=http://www.webdesenvolvimento.net/marketing/redes-socias-no-brasil/" rel="nofollow" class="external" title="Compartilhar noFriendFeed">Compartilhar noFriendFeed</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.webdesenvolvimento.net/marketing/redes-socias-no-brasil/&amp;title=Redes+socias+no+Brasil" rel="nofollow" class="external" title="Adicionar aoGoogle Bookmarks">Adicionar aoGoogle Bookmarks</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.webdesenvolvimento.net/marketing/redes-socias-no-brasil/" rel="nofollow" class="external" title="Compartilhar noTechnorati">Compartilhar noTechnorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Redes+socias+no+Brasil+-+http://tinyurl.com/2w2j7ux+&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.webdesenvolvimento.net/marketing/redes-socias-no-brasil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Explorando .NET Framework 2.0 e 3.5 – Parte 10</title>
		<link>http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-10/</link>
		<comments>http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-10/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 02:34:44 +0000</pubDate>
		<dc:creator>Talles Maion</dc:creator>
				<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[VB.NET]]></category>

		<guid isPermaLink="false">http://www.webdesenvolvimento.net/?p=281</guid>
		<description><![CDATA[Extension Methods são métodos adicionais que são definidos para complementar as funcionalidades dos tipos base. Permitem adicionar novos métodos aos tipos existentes na CLR sem ter que recorrer ao sub-classing ou à recompilação do tipo original. Desta forma podemos incrementar o âmbito funcional de tipos base de uma forma extremamente prática. Existem algumas diferenças para [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Extension Methods</strong> são métodos adicionais que são definidos para complementar as funcionalidades dos tipos base. Permitem adicionar novos métodos aos tipos existentes na CLR sem ter que recorrer ao sub-classing ou à recompilação do tipo original. Desta forma podemos incrementar o âmbito funcional de tipos base de uma forma extremamente prática. Existem algumas diferenças para a definição de <strong>Extension Methods</strong> nas linguagens VB.NET e Visual C#:</p>
<ul>
<li><strong>VB.NET</strong>
<ul>
<li>Devem <span style="text-decoration: underline;">obrigatoriamente</span> ser definidos dentro de um módulo com o atributo <span style="text-decoration: underline;">ExtensionAttribute</span> que fica localizado dentro do namespace System.Runtime.CompilerServices (System.Core.dll).</li>
</ul>
</li>
<li><strong>C#.NET</strong>
<ul>
<li>Devem <span style="text-decoration: underline;">obrigatoriamente</span> ser definidos dentro de uma classe estática e não precisa de nenhum atributo definido;</li>
<li>O tipo a estender é antecedido pela keyword <span style="text-decoration: underline;">this</span> para indicar ao compilador que o método deve ser adicionado aos métodos do tipo <strong>Extension Methods</strong>.</li>
</ul>
</li>
</ul>
<p><strong>Na prática</strong></p>
<div id="div_CE10" class="dp-highlighter" style="display: inline;">
<pre class="brush: csharp;">
		public static class Helper
		{
			public static bool IsValidEmail(this string value)
			{
				System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@&quot;[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$&quot;);
				return regex.IsMatch(value);
			}
		}

		public static void Main(string[] args)
		{
			string email = &quot;vrevers@dominio.com.br&quot;;
			Console.WriteLine(email.IsValidEmail());
		}
	</pre>
</div>
<div id="div_VBE10" class="dp-highlighter" style="display: none;">
<pre class="brush: vb;">
		&lt;System.Runtime.CompilerServices.Extension()&gt; _
		Public Function IsValidEmail(ByVal value As String) As Boolean
			Dim regex As New System.Text.RegularExpressions.Regex(&quot;[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$&quot;)
			Return regex.IsMatch(value)
		End Function

		Sub Main()
			Dim email As String = &quot;vrevers@dominio.com.br&quot;
			Console.WriteLine(email.IsValidEmail())
		End Sub
	</pre>
</div>
<div class="menulanguage">
<ul>
<li><a id="hyp_CE10" class="current" href="javascript:changeSyntax ('CE10', 'VBE10', false)">C#.NET</a></li>
<li><a id="hyp_VBE10" href="javascript:changeSyntax ('CE10', 'VBE10', true)">VB.NET</a></li>
</ul>
</div>
<p>Espero que tenham gostado!!!<br />
<script type="text/javascript">// <![CDATA[
 function changeSyntax (lang1, lang2, showLang2) {var div_1 = 'div_' + lang1;var div_2 = 'div_' + lang2;var hyp_1 = 'hyp_' + lang1;var hyp_2 = 'hyp_' + lang2;document.getElementById(div_1).style.display = (showLang2) ? 'none' : 'inline';document.getElementById(div_2).style.display = (showLang2) ? 'inline' : 'none';document.getElementById(hyp_1).className = (showLang2) ? 'reset' : 'current';document.getElementById(hyp_2).className = (showLang2) ? 'current' : 'reset';}
// ]]&gt;</script></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-–-parte-10/feed" rel="nofollow" class="external" title="Acompanhar comentários deste artigo?">Acompanhar comentários deste artigo?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-10/&amp;title=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+10" rel="nofollow" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-10/&amp;title=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+10" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-10/&amp;t=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+10" rel="nofollow" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+10&amp;link=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-10/" rel="nofollow" class="external" title="Compartilhar noFriendFeed">Compartilhar noFriendFeed</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-10/&amp;title=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+10" rel="nofollow" class="external" title="Adicionar aoGoogle Bookmarks">Adicionar aoGoogle Bookmarks</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-10/" rel="nofollow" class="external" title="Compartilhar noTechnorati">Compartilhar noTechnorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+10+-+http://tinyurl.com/263gobu+&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Explorando .NET Framework 2.0 e 3.5 – Parte 9</title>
		<link>http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-9/</link>
		<comments>http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-9/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 02:06:49 +0000</pubDate>
		<dc:creator>Talles Maion</dc:creator>
				<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[VB.NET]]></category>

		<guid isPermaLink="false">http://www.webdesenvolvimento.net/?p=278</guid>
		<description><![CDATA[A partir do Framework 3.0 é possível usar a funcionalidade Object Initialization que permite indicar valores para as propriedades sem obrigar à utilização do construtor ou a necessidade de atribuir valores de forma explícita.
Na prática


	public class Pessoa
	{
		public String Nome { get; set; }
		public String Apelido { get; set; }
	}

	public static void Main(string[] args)
	{
		Pessoa pessoa = [...]]]></description>
			<content:encoded><![CDATA[<p>A partir do Framework 3.0 é possível usar a funcionalidade <strong>Object Initialization</strong> que permite indicar valores para as propriedades sem obrigar à utilização do construtor ou a necessidade de atribuir valores de forma explícita.</p>
<p><strong>Na prática</strong></p>
<div id="div_CE9" class="dp-highlighter" style="display: inline;">
<pre class="brush: csharp;">
	public class Pessoa
	{
		public String Nome { get; set; }
		public String Apelido { get; set; }
	}

	public static void Main(string[] args)
	{
		Pessoa pessoa = new Pessoa() { Nome = &quot;Ovidio&quot;, Apelido = &quot;DVD&quot;};
	}
	</pre>
</div>
<div id="div_VBE9" class="dp-highlighter" style="display: none;">
<pre class="brush: vb;">
	Public Class Pessoa

		Private _nome As String
		Private _apelido As String

		Public Property Nome() As String
			Get
				Return _nome
			End Get
			Set(ByVal value As String)
				_nome = value
			End Set
		End Property

		Public Property Apelido() As String
			Get
				Return _apelido
			End Get
			Set(ByVal value As String)
				_apelido = value
			End Set
		End Property

	End Class

	Sub Main()
		Dim pessoa As New Pessoa With {.Nome = &quot;Ovidio&quot;, .Apelido = &quot;DVD&quot;}
	End Sub
	</pre>
</div>
<div class="menulanguage">
<ul>
<li><a id="hyp_CE9" class="current" href="javascript:changeSyntax ('CE9', 'VBE9', false)">C#.NET</a></li>
<li><a id="hyp_VBE9" href="javascript:changeSyntax ('CE9', 'VBE9', true)">VB.NET</a></li>
</ul>
</div>
<p><script type="text/javascript">// <![CDATA[
 function changeSyntax (lang1, lang2, showLang2) {var div_1 = 'div_' + lang1;var div_2 = 'div_' + lang2;var hyp_1 = 'hyp_' + lang1;var hyp_2 = 'hyp_' + lang2;document.getElementById(div_1).style.display = (showLang2) ? 'none' : 'inline';document.getElementById(div_2).style.display = (showLang2) ? 'inline' : 'none';document.getElementById(hyp_1).className = (showLang2) ? 'reset' : 'current';document.getElementById(hyp_2).className = (showLang2) ? 'current' : 'reset';}
// ]]&gt;</script></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-–-parte-9/feed" rel="nofollow" class="external" title="Acompanhar comentários deste artigo?">Acompanhar comentários deste artigo?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-9/&amp;title=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+9" rel="nofollow" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-9/&amp;title=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+9" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-9/&amp;t=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+9" rel="nofollow" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+9&amp;link=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-9/" rel="nofollow" class="external" title="Compartilhar noFriendFeed">Compartilhar noFriendFeed</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-9/&amp;title=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+9" rel="nofollow" class="external" title="Adicionar aoGoogle Bookmarks">Adicionar aoGoogle Bookmarks</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-9/" rel="nofollow" class="external" title="Compartilhar noTechnorati">Compartilhar noTechnorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+9+-+http://tinyurl.com/2facjmc+&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Explorando .NET Framework 2.0 e 3.5 – Parte 8</title>
		<link>http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-8/</link>
		<comments>http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-8/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 01:52:55 +0000</pubDate>
		<dc:creator>Talles Maion</dc:creator>
				<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[VB.NET]]></category>

		<guid isPermaLink="false">http://www.webdesenvolvimento.net/?p=274</guid>
		<description><![CDATA[Os Anonymous Types foram introduzidos ao Framework 3.0 e através deste recurso podemos criar um novo tipo de dados, sem precisar explicitamente criar uma classe para o mesmo.
Na prática


public static void Main(string[] args)
{
	var pessoa = new {Nome = &#34;Ovidio&#34;, Apelido = &#34;DVD&#34;};
	Console.WriteLine(pessoa.Apelido);
}




Sub Main()
	Dim pessoa = New With {.Nome = &#34;Ovidio&#34;, .Apelido = &#34;DVD&#34;}
	Console.WriteLine(pessoa.Apelido)
End Sub




C#.NET
VB.NET


T+
// 




		
			Acompanhar [...]]]></description>
			<content:encoded><![CDATA[<p>Os <strong>Anonymous Types</strong> foram introduzidos ao Framework 3.0 e através deste recurso podemos criar um novo tipo de dados, sem precisar explicitamente criar uma classe para o mesmo.</p>
<p><strong>Na prática</strong></p>
<div id="div_CE8" class="dp-highlighter" style="display: inline;">
<pre class="brush: csharp;">
public static void Main(string[] args)
{
	var pessoa = new {Nome = &quot;Ovidio&quot;, Apelido = &quot;DVD&quot;};
	Console.WriteLine(pessoa.Apelido);
}
</pre>
</div>
<div id="div_VBE8" class="dp-highlighter" style="display: none;">
<pre class="brush: vb;">
Sub Main()
	Dim pessoa = New With {.Nome = &quot;Ovidio&quot;, .Apelido = &quot;DVD&quot;}
	Console.WriteLine(pessoa.Apelido)
End Sub
</pre>
</div>
<div class="menulanguage">
<ul>
<li><a id="hyp_CE8" class="current" href="javascript:changeSyntax ('CE8', 'VBE8', false)">C#.NET</a></li>
<li><a id="hyp_VBE8" href="javascript:changeSyntax ('CE8', 'VBE8', true)">VB.NET</a></li>
</ul>
</div>
<p>T+</p>
<p><script type="text/javascript">// <![CDATA[
 function changeSyntax (lang1, lang2, showLang2) {var div_1 = 'div_' + lang1;var div_2 = 'div_' + lang2;var hyp_1 = 'hyp_' + lang1;var hyp_2 = 'hyp_' + lang2;document.getElementById(div_1).style.display = (showLang2) ? 'none' : 'inline';document.getElementById(div_2).style.display = (showLang2) ? 'inline' : 'none';document.getElementById(hyp_1).className = (showLang2) ? 'reset' : 'current';document.getElementById(hyp_2).className = (showLang2) ? 'current' : 'reset';}
// ]]&gt;</script></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-–-parte-8/feed" rel="nofollow" class="external" title="Acompanhar comentários deste artigo?">Acompanhar comentários deste artigo?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-8/&amp;title=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+8" rel="nofollow" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-8/&amp;title=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+8" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-8/&amp;t=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+8" rel="nofollow" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+8&amp;link=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-8/" rel="nofollow" class="external" title="Compartilhar noFriendFeed">Compartilhar noFriendFeed</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-8/&amp;title=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+8" rel="nofollow" class="external" title="Adicionar aoGoogle Bookmarks">Adicionar aoGoogle Bookmarks</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-8/" rel="nofollow" class="external" title="Compartilhar noTechnorati">Compartilhar noTechnorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Explorando+.NET+Framework+2.0+e+3.5+%E2%80%93+Parte+8+-+http://tinyurl.com/39ch4on+&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.webdesenvolvimento.net/net-framework/explorando-net-framework-2-0-e-3-5-%e2%80%93-parte-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2 recursos para alinhar seu site em qualquer navegador</title>
		<link>http://www.webdesenvolvimento.net/csshtml/2-recursos-para-alinhar-seu-site-em-qualquer-navegador/</link>
		<comments>http://www.webdesenvolvimento.net/csshtml/2-recursos-para-alinhar-seu-site-em-qualquer-navegador/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 22:41:12 +0000</pubDate>
		<dc:creator>Alex Sandro</dc:creator>
				<category><![CDATA[CSS+HTML]]></category>

		<guid isPermaLink="false">http://www.webdesenvolvimento.net/?p=298</guid>
		<description><![CDATA[O trabalho para deixar o site alinhado em todos os navegadores pode ser minimizado se o desenvolvedor usar estes dois recursos antes da codificação da criacão.
Primeiro: Definindo o Doctype
Encontramos sites que no topo do seu código fonte ainda esta sem a definição do Doctype. Exemplo:

&#60;html&#62;
&#60;head&#62;
&#60;title&#62;Nome do site&#60;/title&#62;
&#60;/head&#62;

&#8230;
Qual linha esta faltando neste código? Algo assim:


&#60;!DOCTYPE html [...]]]></description>
			<content:encoded><![CDATA[<p>O trabalho para deixar o site alinhado em todos os navegadores pode ser minimizado se o desenvolvedor usar estes dois recursos antes da codificação da criacão.</p>
<p>Primeiro: Definindo o Doctype</p>
<p>Encontramos sites que no topo do seu código fonte ainda esta sem a definição do Doctype. Exemplo:</p>
<pre class="brush: xml;">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Nome do site&lt;/title&gt;
&lt;/head&gt;
</pre>
<p>&#8230;</p>
<p>Qual linha esta faltando neste código? Algo assim:</p>
<pre class="brush: xml;">

&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Nome do site&lt;/title&gt;
&lt;/head&gt;
&lt;boby&gt;
</pre>
<p>O que é um Doctype?</p>
<p>O Doctype é a Declaração do Tipo de Documento ou simplesmente DTD, todo documento (X)HTML deve conter um Doctype logo em seu inicio.</p>
<p>Sem esta linha o navegador o intepretará sua página usando &#8220;quirks mode&#8221; ocasionando erros no layout.</p>
<p><strong>Lista de Doctypes corretos mais usados:<br />
</strong></p>
<p>HTML 4.01 Strict:&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD HTML 4.01//EN&#8221;</p>
<p>&#8220;http://www.w3.org/TR/html4/strict.dtd&#8221;&gt;</p>
<p>HMTL 4.01 Transitional:</p>
<p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD HTML 4.01 Transitional//EN&#8221;</p>
<p>&#8220;http://www.w3.org/TR/html4/loose.dtd&#8221;&gt;</p>
<p>XHTML 1.0 Strict:</p>
<p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Strict//EN&#8221;</p>
<p>&#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#8221;&gt;</p>
<p>XHTML 1.0 Transitional:</p>
<p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221;</p>
<p>&#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</p>
<p>Deixei o frameset de fora de propósito por ser raramente usado atualmente.</p>
<p><strong>Segundo: usar reset CSS</strong></p>
<p>﻿O objetivo do &#8220;reset css&#8221; é reduzir as inconsistências dos navegadores zerando os elementos do HTML. Cada navegador tem uma forma de definir a altura, margens dos principais elementos HTML. Este recurso faz com que seu código seja melhor padronizado para depois ser interpretado suas demais formatações. Vale a pena para desenvolvedores que querem fazer sites CSS <a title="Cross-browser" rel="external" href="http://pt.wikipedia.org/wiki/Cross-browser" target="_blank">Cross-browser</a>.</p>
<p>Há varios deles prontos na web. Um exemplo super básico:</p>
<pre class="brush: css;">
* {
    padding: 0;
    margin: 0;
    border: 0;
}
</pre>
<p>Após experimentarmos alguns dos mais famosos entre eles do <a href="http://developer.yahoo.com/yui/reset/">Yahoo</a>, <a title="Reset CSS by Eric Meyer" rel="external" href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/">Eric Meyer</a>, temos juntado o que vimos ser relevante:</p>
<pre class="brush: css;">

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td {
	margin:0;
	padding:0;
}
table {
	border-collapse:collapse;
	border-spacing:0;
}
fieldset, img {
	border:0;
}
address, caption, cite, code, dfn, em, strong, th, var {
	font-style:normal;
	font-weight:normal;
}
li {
	list-style:none;
}
caption, th {
	text-align:left;
}
h1, h2, h3, h4, h5, h6 {
	font-size:100%;
	font-weight:normal;
}
q:before, q:after {
	content:'';
}
abbr, acronym {
	border:0;
	font-variant:normal;
}
/* to preserve line-height and selector appearance */
sup {
	vertical-align:text-top;
}
sub {
	vertical-align:text-bottom;
}
input, textarea, select {
	font-family:inherit;
	font-size:inherit;
	font-weight:inherit;
}
/*to enable resizing for IE*/
input, textarea, select {
*font-size:100%;
}
/*because legend doesn't inherit in IE */
legend {
	color:#000;
}
del, ins {
	text-decoration:none;
}
body {
	font:13px/1.231 arial, helvetica, clean, sans-serif;
 *font-size:small;
 *font:x-small;
}
select, input, button, textarea {
	font:99% arial, helvetica, clean, sans-serif;
}
table {
	font-size:inherit;
	font:100%;
}
pre, code, kbd, samp, tt {
	font-family:monospace;
 *font-size:108%;
	line-height:100%;
}
h1 {
	font-size:138.5%;
}
h2 {
	font-size:123.1%;
}
h3 {
	font-size:108%;
}
h1, h2, h3 {
	margin:0.5em 0;
}
h1, h2, h3, h4, h5, h6, strong {
	font-weight:bold;
}
abbr, acronym {
	border-bottom:1px dotted #000;
	cursor:help;
}
em {
	font-style:italic;
}
del {
	text-decoration:line-through;
}
blockquote, ol, dl {
	margin:1em;
}

ul{
	margin-top:0.5em;
	margin-left:0.5em;
	margin-bottom:0.5em;
}

input[type=text], input[type=password], textarea {
	width:12.25em;
*width:11.9em;
}
q {
	quotes: &quot;&quot; &quot;&quot;;
}
ul, ol {
	list-style: none;
}
hr {
	display: none;
} /* we don't need a visual hr in layout */
font {
	color: inherit !important;
	font: inherit !important;
	color: inherit !important;
} /* disables some nasty font attributes in standard browsers */
marquee {
	overflow: inherit !important;
	-moz-binding: none;
}
blink {
	text-decoration: none;
}
nobr {
	white-space: normal;
}
</pre>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.webdesenvolvimento.net/csshtml/2-recursos-para-alinhar-seu-site-em-qualquer-navegador/feed" rel="nofollow" class="external" title="Acompanhar comentários deste artigo?">Acompanhar comentários deste artigo?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.webdesenvolvimento.net/csshtml/2-recursos-para-alinhar-seu-site-em-qualquer-navegador/&amp;title=2+recursos+para+alinhar+seu+site+em+qualquer+navegador" rel="nofollow" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.webdesenvolvimento.net/csshtml/2-recursos-para-alinhar-seu-site-em-qualquer-navegador/&amp;title=2+recursos+para+alinhar+seu+site+em+qualquer+navegador" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.webdesenvolvimento.net/csshtml/2-recursos-para-alinhar-seu-site-em-qualquer-navegador/&amp;t=2+recursos+para+alinhar+seu+site+em+qualquer+navegador" rel="nofollow" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=2+recursos+para+alinhar+seu+site+em+qualquer+navegador&amp;link=http://www.webdesenvolvimento.net/csshtml/2-recursos-para-alinhar-seu-site-em-qualquer-navegador/" rel="nofollow" class="external" title="Compartilhar noFriendFeed">Compartilhar noFriendFeed</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.webdesenvolvimento.net/csshtml/2-recursos-para-alinhar-seu-site-em-qualquer-navegador/&amp;title=2+recursos+para+alinhar+seu+site+em+qualquer+navegador" rel="nofollow" class="external" title="Adicionar aoGoogle Bookmarks">Adicionar aoGoogle Bookmarks</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.webdesenvolvimento.net/csshtml/2-recursos-para-alinhar-seu-site-em-qualquer-navegador/" rel="nofollow" class="external" title="Compartilhar noTechnorati">Compartilhar noTechnorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=2+recursos+para+alinhar+seu+site+em+qualquer+navegador+-+http://tinyurl.com/39yxxkr+&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.webdesenvolvimento.net/csshtml/2-recursos-para-alinhar-seu-site-em-qualquer-navegador/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Viral para Samsung</title>
		<link>http://www.webdesenvolvimento.net/marketing/viral-para-samsung/</link>
		<comments>http://www.webdesenvolvimento.net/marketing/viral-para-samsung/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 14:14:51 +0000</pubDate>
		<dc:creator>Alex Sandro</dc:creator>
				<category><![CDATA[Marketing]]></category>

		<guid isPermaLink="false">http://www.webdesenvolvimento.net/?p=295</guid>
		<description><![CDATA[




		
			Acompanhar comentários deste artigo?
		
		
			Compartilhar nodel.icio.us
		
		
			Digg this!
		
		
			Compartilhar noFacebook
		
		
			Compartilhar noFriendFeed
		
		
			Adicionar aoGoogle Bookmarks
		
		
			Compartilhar noTechnorati
		
		
			Tweet This!
		




]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/5CdYKaA6XXA&amp;hl=pt_BR&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/5CdYKaA6XXA&amp;hl=pt_BR&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.webdesenvolvimento.net/marketing/viral-para-samsung/feed" rel="nofollow" class="external" title="Acompanhar comentários deste artigo?">Acompanhar comentários deste artigo?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.webdesenvolvimento.net/marketing/viral-para-samsung/&amp;title=Viral+para+Samsung" rel="nofollow" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.webdesenvolvimento.net/marketing/viral-para-samsung/&amp;title=Viral+para+Samsung" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.webdesenvolvimento.net/marketing/viral-para-samsung/&amp;t=Viral+para+Samsung" rel="nofollow" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Viral+para+Samsung&amp;link=http://www.webdesenvolvimento.net/marketing/viral-para-samsung/" rel="nofollow" class="external" title="Compartilhar noFriendFeed">Compartilhar noFriendFeed</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.webdesenvolvimento.net/marketing/viral-para-samsung/&amp;title=Viral+para+Samsung" rel="nofollow" class="external" title="Adicionar aoGoogle Bookmarks">Adicionar aoGoogle Bookmarks</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.webdesenvolvimento.net/marketing/viral-para-samsung/" rel="nofollow" class="external" title="Compartilhar noTechnorati">Compartilhar noTechnorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Viral+para+Samsung+-+http://tinyurl.com/2wv3ju7+&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.webdesenvolvimento.net/marketing/viral-para-samsung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
