<?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>BLOG - TreinaWeb &#187; C#</title>
	<atom:link href="http://www.treinaweb.com.br/blog/tag/c/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.treinaweb.com.br/blog</link>
	<description>Webstandards e Programação Web e Desktop</description>
	<lastBuildDate>Fri, 10 Feb 2012 11:00:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Formatando data e hora no .NET</title>
		<link>http://www.treinaweb.com.br/blog/formatando-data-e-hora-no-net/</link>
		<comments>http://www.treinaweb.com.br/blog/formatando-data-e-hora-no-net/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 13:04:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Boas práticas]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[dica]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[VB.NET]]></category>

		<guid isPermaLink="false">http://www.treinaweb.com.br/blog/?p=962</guid>
		<description><![CDATA[Hoje faremos um Post diferente, daremos uma dica de como formatar datas e horas no .NET, isto porque a dica funciona tanto para o C#, quanto para o VB.NET. As vezes necessitamos formatar as datas para serem exibidos na tela, o que poucas pessoas sabem é que a classe DateTime se adapta para este tipo [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje faremos um Post diferente, daremos uma dica de como formatar datas e horas no .NET, isto porque a dica funciona tanto para o C#, quanto para o VB.NET.</p>
<p>As vezes necessitamos formatar as datas para serem exibidos na tela, o que poucas pessoas sabem é que a classe DateTime se adapta para este tipo de situação.</p>
<p>Abaixo temos uma lista das funcionalidades da classe:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="283" valign="top">DateTime.Now.ToString();</td>
<td width="284" valign="top">Exibe data e hora</td>
</tr>
<tr>
<td width="283" valign="top">DateTime.Now.ToShortTimeString();</td>
<td width="284" valign="top">Exibe hora sem os segundos</td>
</tr>
<tr>
<td width="283" valign="top">DateTime.Now.ToShortDateString();</td>
<td width="284" valign="top">Exibe a data com barras</td>
</tr>
<tr>
<td width="283" valign="top">DateTime.Now.ToLongTimeString();</td>
<td width="284" valign="top">Exibe as horas, minutos e  segundos</td>
</tr>
<tr>
<td width="283" valign="top">DateTime.Now.ToLongDateString();</td>
<td width="284" valign="top">Exibe a data em modo extensor</td>
</tr>
</tbody>
</table>
<p>Em alguns casos específicos precisamos customizar a data e a hora para serem exibidos e para isto formatamos a saída com o método ToString(). Abaixo temos alguns exemplos:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“d”);</td>
<td width="276" valign="top">2/6/2010</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“D”);</td>
<td width="276" valign="top">quarta-feira, 2 de junho de 2010</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“f”);</td>
<td width="276" valign="top">quarta-feira, 2 de junho de 2010 15:24</td>
</tr>
<tr>
<td width="286" valign="top">vDateTime.Now.ToString(“F”);</td>
<td width="276" valign="top">quarta-feira, 2 de junho de 2010 15:24:18</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“g”);</td>
<td width="276" valign="top">2/6/2010   15:24</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“G”);</td>
<td width="276" valign="top">2/6/2010 15:24:48</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“m”);</td>
<td width="276" valign="top">02 de   junho</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“r”);</td>
<td width="276" valign="top">Wed, 02 Jun 2010 15:26:07 GMT</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“s”);</td>
<td width="276" valign="top">2010-06-02T15:26:20</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“t”);</td>
<td width="276" valign="top">15:26</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“T”);</td>
<td width="276" valign="top">15:26:40</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“u”);</td>
<td width="276" valign="top">2010-06-02 15:26:51Z</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“U”);</td>
<td width="276" valign="top">quarta-feira, 2 de junho de 2010 18:26:59</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“y”);</td>
<td width="276" valign="top">junho   de 2010</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“dddd,   MMMM dd yyyy”);</td>
<td width="276" valign="top">quarta-feira, junho 02 2010</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“ddd,   MMM d “‘”yy”);</td>
<td width="276" valign="top">qua, jun 02 10</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“dddd,   MMMM dd”);</td>
<td width="276" valign="top">quarta-feira, junho 02</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“MM/yy”);</td>
<td width="276" valign="top">06/10</td>
</tr>
<tr>
<td width="286" valign="top">DateTime.Now.ToString(“dd/MM/yy”);</td>
<td width="276" valign="top">02/06/10</td>
</tr>
</tbody>
</table>
<p>Podemos implementar estes exemplos no Windows Form, quanto no Web Form.</p>
<p><span style="color: #888888;">Fonte: <a rel="nofollow" title="Ediberto Alves" href="http://www.edibertoalves.com.br/blog/formatando-datas-e-horas-com-estrutura-datetime/" target="_blank">Ediberto Alves</a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.treinaweb.com.br/blog/formatando-data-e-hora-no-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Métodos Asc e Chr no C#</title>
		<link>http://www.treinaweb.com.br/blog/metodos-asc-e-chr-no-c/</link>
		<comments>http://www.treinaweb.com.br/blog/metodos-asc-e-chr-no-c/#comments</comments>
		<pubDate>Thu, 21 May 2009 02:01:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Desenv. Desktop]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.treinaweb.com.br/blog/?p=242</guid>
		<description><![CDATA[Hoje faremos um artigo pequeno, porque estamos pensando em mudar algumas coisas, então aguardem novidades =) Para aqueles que desenvolviam no VB6, Delphi ou qualquer linguagem desktop que utilizava os métodos Asc e Chr, e sentiram falta destas funções no C#. Seus problemas acabaram !!! Mostraremos como criar estes métodos no C#. public char Chr&#40;int [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje faremos um artigo pequeno, porque estamos pensando em mudar algumas coisas, então aguardem novidades =)</p>
<p>Para aqueles que desenvolviam no VB6, Delphi ou qualquer linguagem desktop que utilizava os métodos Asc e Chr, e sentiram falta destas funções no C#. Seus problemas acabaram !!!</p>
<p>Mostraremos como criar estes métodos no C#.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">char</span> Chr<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">int</span> codigo<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
      <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">char</span><span style="color: #008000;">&#41;</span>codigo<span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span>
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">int</span> Asc<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span> letra<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
      <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">int</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#40;</span>Convert<span style="color: #008000;">.</span><span style="color: #0000FF;">ToChar</span><span style="color: #008000;">&#40;</span>letra<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Os métodos acima fazem a mesma coisa que os métodos originais.</p>
<p>Até a próxima!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.treinaweb.com.br/blog/metodos-asc-e-chr-no-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Capitalizar Strings no C#</title>
		<link>http://www.treinaweb.com.br/blog/capitalizar-strings-no-c/</link>
		<comments>http://www.treinaweb.com.br/blog/capitalizar-strings-no-c/#comments</comments>
		<pubDate>Tue, 19 May 2009 01:03:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Desenv. Web]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.treinaweb.com.br/blog/?p=230</guid>
		<description><![CDATA[Hoje mostraremos uma dica útil para quem precisa ter palavras capitalizadas no C#. Como no C# não existe uma função para fazer isto, é necessário criar um método que irá capitalizar nossas strings, ou seja, irá converter para maiúscula os primeiros caracteres de cada palavra. Pode ser usado em nome de formulários, por exemplo. Primeiro [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje mostraremos uma dica útil para quem precisa ter palavras capitalizadas no C#.</p>
<p>Como no C# não existe uma função para fazer isto, é necessário criar um método que irá capitalizar nossas strings, ou seja, irá converter para maiúscula os primeiros caracteres de cada palavra. Pode ser usado em nome de formulários, por exemplo.</p>
<p>Primeiro método</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">string</span> CapitalizeWords<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span> value<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
   <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>value <span style="color: #008000;">==</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">&#41;</span> <span style="color: #0600FF; font-weight: bold;">throw</span> <span style="color: #008000;">new</span> ArgumentNullException<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;value&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
   <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>value<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span> <span style="color: #008000;">==</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #0600FF; font-weight: bold;">return</span> value<span style="color: #008000;">;</span>
&nbsp;
   <span style="color: #000000;">System.<span style="color: #0000FF;">Text</span></span><span style="color: #008000;">.</span><span style="color: #0000FF;">StringBuilder</span> result <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> <span style="color: #000000;">System.<span style="color: #0000FF;">Text</span></span><span style="color: #008000;">.</span><span style="color: #0000FF;">StringBuilder</span><span style="color: #008000;">&#40;</span>value<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
   result<span style="color: #008000;">&#91;</span><span style="color: #FF0000;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> <span style="color: #6666cc; font-weight: bold;">char</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToUpper</span><span style="color: #008000;">&#40;</span>result<span style="color: #008000;">&#91;</span><span style="color: #FF0000;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
   <span style="color: #0600FF; font-weight: bold;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">int</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> result<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span><span style="color: #008000;">;</span> <span style="color: #008000;">++</span>i<span style="color: #008000;">&#41;</span>
   <span style="color: #008000;">&#123;</span>
      <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">char</span><span style="color: #008000;">.</span><span style="color: #0000FF;">IsWhiteSpace</span><span style="color: #008000;">&#40;</span>result<span style="color: #008000;">&#91;</span>i <span style="color: #008000;">-</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
      <span style="color: #008000;">&#123;</span>
         result<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> <span style="color: #6666cc; font-weight: bold;">char</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToUpper</span><span style="color: #008000;">&#40;</span>result<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
      <span style="color: #008000;">&#125;</span>
   <span style="color: #008000;">&#125;</span>
   <span style="color: #0600FF; font-weight: bold;">return</span> result<span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Segundo método</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">string</span> CapitalizeWordsCulture<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span> value<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
   <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #000000;">System.<span style="color: #0000FF;">Globalization</span></span><span style="color: #008000;">.</span><span style="color: #0000FF;">CultureInfo</span><span style="color: #008000;">.</span><span style="color: #0000FF;">CurrentCulture</span><span style="color: #008000;">.</span><span style="color: #0000FF;">TextInfo</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToTitleCase</span><span style="color: #008000;">&#40;</span>value<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Os dois métodos fazem exatamente a mesma coisa, sendo que o segundo método é melhor por ser menor (rimou =).</p>
<p>Bom proveito e até a próxima!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.treinaweb.com.br/blog/capitalizar-strings-no-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Código obsoleto em .NET</title>
		<link>http://www.treinaweb.com.br/blog/codigo-obsoleto-em-net/</link>
		<comments>http://www.treinaweb.com.br/blog/codigo-obsoleto-em-net/#comments</comments>
		<pubDate>Fri, 08 May 2009 00:53:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Desenv. Desktop]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.treinaweb.com.br/blog/?p=178</guid>
		<description><![CDATA[Quem trabalha ou já trabalhou em projetos de grande porte ou mesmo em projetos que duram longos períodos, certamente já encontrou algum trecho de código ou função antiga, que não tem mais utilidade para as novas funcionalidades do sistema. No entanto aquele estagiário que chegou agora não sabe disto e insiste em usar a função [...]]]></description>
			<content:encoded><![CDATA[<p>Quem trabalha ou já trabalhou em projetos de grande porte ou mesmo em projetos que duram longos períodos, certamente já encontrou algum trecho de código ou função antiga, que não tem mais utilidade para as novas funcionalidades do sistema. No entanto aquele estagiário que chegou agora não sabe disto e insiste em usar a função antiga (sempre o estagiário). Você já deve ter pensando em algumas formas de evitar isto! Mas você sabia que este é um recurso da própria plataforma .NET? Não? Então acompanhe abaixo:</p>
<p>No .<a rel="nofollow" title="Wikipédia" href="http://pt.wikipedia.org/wiki/.NET" target="_blank">NET </a>existe o atributo <strong>Obsolete</strong>, que adiciona uma marcação na classe para tornar um código obsoleto, e informa ao programador <span style="text-decoration: line-through;">estagiário</span>, qual novo código deverá ser usado.</p>
<p>Veja o exemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&#91;</span>Obsolete <span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Utilize pesquisaUsuarios()&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>
<span style="color: #0600FF; font-weight: bold;">public</span> DataSet listaUsuarios<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #008080; font-style: italic;">//Código antigo</span>
&nbsp;
    <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #008000;">new</span> DataSet<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">public</span> DataSet pesquisaUsuarios<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #008080; font-style: italic;">//Código novo</span>
&nbsp;
    <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #008000;">new</span> DataSet<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Quando o programador for utilizar o método listaUsuarios(), ele será avisado que o método é obsoleto e que pode usar o método pesquisaUsuarios() como alternativa.</p>
<p>Mas caso o programador <span style="text-decoration: line-through;">seja um noob e</span> continuar utilizando o método antigo, você pode forçá-lo a usar o novo método.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&#91;</span>Obsolete <span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Utilize pesquisaUsuarios()&quot;</span>, <span style="color: #0600FF; font-weight: bold;">true</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>
<span style="color: #0600FF; font-weight: bold;">public</span> DataSet listaUsuarios<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #008080; font-style: italic;">//Código antigo</span>
&nbsp;
    <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #008000;">new</span> DataSet<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">public</span> DataSet pesquisaUsuarios<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #008080; font-style: italic;">//Código novo</span>
&nbsp;
    <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #008000;">new</span> DataSet<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Note que agora, passamos como parâmetro o boleano <strong>true</strong>, neste caso, quando o <span style="text-decoration: line-through;">noob </span>programador for utilizar o método antigo aparecerá uma mensagem de erro, com isto ele será obrigado a usar o novo método.</p>
<p>Isto pode ser um pouco radical, mas facilita a manutenção do código e mantém tudo sempre atualizado.</p>
<p>Até a próxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.treinaweb.com.br/blog/codigo-obsoleto-em-net/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Criando miniaturas em C#</title>
		<link>http://www.treinaweb.com.br/blog/criando-miniaturas-em-c/</link>
		<comments>http://www.treinaweb.com.br/blog/criando-miniaturas-em-c/#comments</comments>
		<pubDate>Fri, 01 May 2009 02:45:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Notícias]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.treinaweb.com.br/blog/?p=144</guid>
		<description><![CDATA[Hoje mostraremos um exemplo simples e muito útil para criar miniaturas de imagens, conhecidas também como Thumbnails. A função abaixo é responsável por todo este processo de miniaturização das imagens, ela recebe como parâmetro, o caminho da imagem, a largura e o tamanho. public void thumbnail&#40;String img, int width, int height&#41; &#123; // O caminho [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje mostraremos um exemplo simples e muito útil para criar miniaturas de imagens, conhecidas também como Thumbnails.</p>
<p>A função abaixo é responsável por todo este processo de miniaturização das imagens, ela recebe como parâmetro, o caminho da imagem, a largura e o tamanho.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">        <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">void</span> thumbnail<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">String</span> img, <span style="color: #6666cc; font-weight: bold;">int</span> width, <span style="color: #6666cc; font-weight: bold;">int</span> height<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #008080; font-style: italic;">// O caminho da imagem virá da variavel img</span>
            <span style="color: #008080; font-style: italic;">// As medidas p/ miniatura virão da variavel width e height</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">// cria o object imagem com o nome e camimho completo do arquivo</span>
            <span style="color: #000000;">System.<span style="color: #0000FF;">Drawing</span></span><span style="color: #008000;">.</span><span style="color: #0000FF;">Image</span> image <span style="color: #008000;">=</span> <span style="color: #000000;">System.<span style="color: #0000FF;">Drawing</span></span><span style="color: #008000;">.</span><span style="color: #0000FF;">Image</span><span style="color: #008000;">.</span><span style="color: #0000FF;">FromFile</span><span style="color: #008000;">&#40;</span>img<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">// cria o thumbnail do object image, definindo sua altura e largura de acordo com os parâmetros</span>
            <span style="color: #000000;">System.<span style="color: #0000FF;">Drawing</span></span><span style="color: #008000;">.</span><span style="color: #0000FF;">Image</span> thumbnailImage <span style="color: #008000;">=</span> image<span style="color: #008000;">.</span><span style="color: #0000FF;">GetThumbnailImage</span><span style="color: #008000;">&#40;</span>width, height, <span style="color: #008000;">new</span> <span style="color: #000000;">System.<span style="color: #0000FF;">Drawing</span></span><span style="color: #008000;">.</span><span style="color: #0000FF;">Image</span><span style="color: #008000;">.</span><span style="color: #0000FF;">GetThumbnailImageAbort</span><span style="color: #008000;">&#40;</span>ThumbnailCallback<span style="color: #008000;">&#41;</span>, IntPtr<span style="color: #008000;">.</span><span style="color: #0000FF;">Zero</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">// cria a memory stream dos bytes da imagem</span>
            MemoryStream imageStream <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> MemoryStream<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">// coloca a imagem na memory stream</span>
            thumbnailImage<span style="color: #008000;">.</span><span style="color: #0000FF;">Save</span><span style="color: #008000;">&#40;</span>imageStream, <span style="color: #000000;">System.<span style="color: #0000FF;">Drawing</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Imaging</span></span><span style="color: #008000;">.</span><span style="color: #0000FF;">ImageFormat</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Jpeg</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">// cria um array de bytes com o tamanho da imagem</span>
            <span style="color: #6666cc; font-weight: bold;">byte</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> imageContent <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> <span style="color: #6666cc; font-weight: bold;">Byte</span><span style="color: #008000;">&#91;</span>imageStream<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">// rebobina a memory stream</span>
            imageStream<span style="color: #008000;">.</span><span style="color: #0000FF;">Position</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">// carrega o array de bytes com a imagem</span>
            imageStream<span style="color: #008000;">.</span><span style="color: #0000FF;">Read</span><span style="color: #008000;">&#40;</span>imageContent, <span style="color: #FF0000;">0</span>, <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">int</span><span style="color: #008000;">&#41;</span>imageStream<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">// modifica o cabeçalho &quot;content-type&quot; da página para &quot;image/jpeg&quot; e imprime a imagem.</span>
            Response<span style="color: #008000;">.</span><span style="color: #0000FF;">ContentType</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;image/jpeg&quot;</span><span style="color: #008000;">;</span>
            Response<span style="color: #008000;">.</span><span style="color: #0000FF;">BinaryWrite</span><span style="color: #008000;">&#40;</span>imageContent<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #008000;">&#125;</span>
        <span style="color: #008080; font-style: italic;">//função complementar</span>
        <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">bool</span> ThumbnailCallback<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #0600FF; font-weight: bold;">true</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span></pre></div></div>

<p>Note que você pode definir a largura e a altura da imagem, então também é possível ampliar as imagens, mas lembre-se que nestes casos a imagem pode perder qualidade.</p>
<p>Por hoje é isso, até a próxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.treinaweb.com.br/blog/criando-miniaturas-em-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Diretrizes de programação</title>
		<link>http://www.treinaweb.com.br/blog/diretrizes-de-programacao/</link>
		<comments>http://www.treinaweb.com.br/blog/diretrizes-de-programacao/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 00:37:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Boas práticas]]></category>
		<category><![CDATA[Desenv. Desktop]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Diretrizes de programação]]></category>
		<category><![CDATA[Guidelines]]></category>

		<guid isPermaLink="false">http://www.treinaweb.com.br/blog/?p=121</guid>
		<description><![CDATA[Hoje falaremos de um item muito importante para quem é programador ou para quem quer ser um programador, que é Guidelines ou simplesmente diretrizes de programação. As diretrizes de programação são regras que você deve seguir quando está desenvolvendo para deixar seu código mais legível e facilitar a vida de quem futuramente for dar manutenção [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje falaremos de um item muito importante para quem é programador ou para quem quer ser um programador, que é <em>Guidelines </em>ou simplesmente diretrizes de programação.</p>
<p>As diretrizes de programação são regras que você deve seguir quando está desenvolvendo para deixar seu código mais legível e facilitar a vida de quem futuramente for dar manutenção no seu código.</p>
<p><strong>PascalCasing</strong><br />
Propriedades e métodos devem seguir a convenção <em>PascalCasing</em>, onde a primeira letra de cada palavra é maiúscula.</p>
<p>Exemplo:</p>
<p><img class="alignnone size-full wp-image-123" title="diretrizes-exemplo11" src="http://www.treinaweb.com.br/blog/wp-content/uploads/2009/04/diretrizes-exemplo11.jpg" alt="diretrizes-exemplo11" width="290" height="166" /></p>
<p><strong>CamelCasing</strong><br />
Já os parâmetros e variáveis deve seguir a convenção <em>CamelCasing</em>, onde a primeira letra da primeira palavra deve ser minúscula e das demais palavras devem ser maiúsculas.</p>
<p>Exemplo:</p>
<p><img class="alignnone size-full wp-image-124" title="diretrizes-exemplo2" src="http://www.treinaweb.com.br/blog/wp-content/uploads/2009/04/diretrizes-exemplo2.jpg" alt="diretrizes-exemplo2" width="414" height="129" /></p>
<p>Veja que tanto as variáveis e o parâmetro da função estão seguindo as regras do <em>CamelCasing</em>.</p>
<p><strong>Verbos</strong><br />
Segundo as diretrizes de programação todos os métodos devem iniciar com verbos, por exemplo: use <em>Add</em>, se o método for adicionar algo; <em>Set</em>, se for atribuir; e <em>Get</em>, se for pegar algo.</p>
<p>Exemplo:</p>
<p><img class="alignnone size-full wp-image-125" title="diretrizes-exemplo3" src="http://www.treinaweb.com.br/blog/wp-content/uploads/2009/04/diretrizes-exemplo3.jpg" alt="diretrizes-exemplo3" width="401" height="112" /></p>
<p>Também é indicado que propriedades booleanas devem ser iniciadas com <em>Has</em>, <em>Can </em>ou <em>Is</em>.</p>
<p>Exemplo:</p>
<p><img class="alignnone size-full wp-image-126" title="diretrizes-exemplo4" src="http://www.treinaweb.com.br/blog/wp-content/uploads/2009/04/diretrizes-exemplo4.jpg" alt="diretrizes-exemplo4" width="269" height="58" /></p>
<p>Uma coisa que vocês devem ter reparado é outra indicação, ou seja, sempre renomeie os métodos, propriedades, variáveis, enfim todos os nomes devem estar em inglês, por que se um <span style="text-decoration: line-through;">nerd chinês</span> outro funcionário ver o seu código, conseguirá dar manutenção nele.</p>
<p>Estas são apenas algumas diretrizes de nomenclatura que devem ser aplicadas para qualquer linguagem. E estas regrinhas simples deixam um código mais legível e fácil de entender.</p>
<p>Sempre utilizem estas regras, quem for dar manutenção no seu código agradece. Até a próxima!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.treinaweb.com.br/blog/diretrizes-de-programacao/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

