<?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>Caique Dourado</title>
	<atom:link href="http://www.caiquedourado.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.caiquedourado.com.br</link>
	<description>WebDevelopment - ASP.NET, C#, Comércio Eletrônico, CSS, JQuery</description>
	<lastBuildDate>Tue, 12 Jul 2011 21:03:41 +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>Lançamento! Cupons VIP</title>
		<link>http://www.caiquedourado.com.br/2011/07/12/lancamento-cupons-vip/</link>
		<comments>http://www.caiquedourado.com.br/2011/07/12/lancamento-cupons-vip/#comments</comments>
		<pubDate>Tue, 12 Jul 2011 21:03:40 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Mercado]]></category>
		<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[compra coletiva]]></category>
		<category><![CDATA[cupons]]></category>
		<category><![CDATA[cupons vip]]></category>
		<category><![CDATA[descontos]]></category>
		<category><![CDATA[ofertas]]></category>
		<category><![CDATA[salvador]]></category>

		<guid isPermaLink="false">http://www.caiquedourado.com.br/?p=454</guid>
		<description><![CDATA[
O Cupons VIP começou a ser pensado e desenvolvido em setembro do ano de 2010, após ter sido lançado o Peixe Urbano, em março, seguido pelo Clube Urbano que mais tarde foi comprado pelo Groupon. Tais lançamentos criaram um ritmo alucinante no mercado quando começaram a surgir inúmeros sites de compras coletivas, permitindo aos idealizadores [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a rel="attachment wp-att-455" href="http://www.caiquedourado.com.br/2011/07/12/lancamento-cupons-vip/deart-cupons-vip/"><img class="size-medium wp-image-455 aligncenter" title="Cupons VIP" src="http://www.caiquedourado.com.br/wp-content/uploads/2011/07/Deart-Cupons-VIP-342x300.png" alt="" width="342" height="300" /></a></p>
<p>O <a title="www.cuponsvip.com.br" href="http://www.cuponsvip.com.br" target="_blank">Cupons VIP</a> começou a ser pensado e desenvolvido em setembro do ano de 2010, após ter sido lançado o Peixe Urbano, em março, seguido pelo Clube Urbano que mais tarde foi comprado pelo Groupon. Tais lançamentos criaram um ritmo alucinante no mercado quando começaram a surgir inúmeros sites de compras coletivas, permitindo aos idealizadores do Cupons Vip avaliar e perceber  seus concorrentes e aperfeiçoar o seu site antes mesmo de seu lançamento, apurando o formato de ofertas, a mecânica, a usabilidade, o design, o uso do cupom pelo usuário, as reclamações &#8211; tanto dos clientes quanto dos parceiros. Tudo isso permitiu desenvolver o seu próprio sistema/plataforma muito mais robusta e atrativa, corrigindo erros e potencializando o que já vem dando certo, criando diferenciais exclusivos para conquistar a preferência das pessoas que poderão desfrutar de um clube de descontos com as melhores ofertas, sendo eficiente, ágil, com políticas bem definidas para viverem uma boa experiência e aproveitar ao máximo tudo aquilo que deseja.</p>
<p>O <a title="www.cuponsvip.com.br" href="http://www.cuponsvip.com.br" target="_blank">Cupons VIP</a> dispõe de um sistema próprio que oferece a Oferta do Dia, semelhante aos demais sites; Oferta da Semana, que é uma exclusividade, ainda não vista em nenhum outro site do mercado nacional ou internacional; Clube de Descontos, que em breve vai ser lançado e irá permitir ao usuário desfrutar de descontos e benefícios dos melhores estabelecimentos da cidade;  sistema de créditos para indicação de amigos com o valor mais alto encontrado na internet; o site conta ainda com um design leve, atrativo e fácil de usar, conta também com uma barra fixa no topo do site que permite ao usuário uma melhor navegação, e traz um alerta ao usuário quando se aproxima o prazo final da validade da oferta para que ele utilize logo, além de ótimos prêmios para quem compra, curte e depois convida o maior número de amigos no período de três meses.</p>
<p>No <a title="www.cuponsvip.com.br" href="http://www.cuponsvip.com.br" target="_blank">Cupons VIP</a> as pessoas encontram diferenciais exclusivos e atrativos como:</p>
<p><strong>Oferta da Semana:</strong> Só o <a title="www.cuponsvip.com.br" href="http://www.cuponsvip.com.br" target="_blank">Cupons VIP</a> tem a modalidade de ofertas que divulga uma promoção imperdível por uma semana, começando na Segunda e terminando no Domingo, no qual a pessoa compra a oferta que deseja, confirma o pagamento no prazo de 24h, imprime o cupom que estará disponível na sua conta no <a title="www.cuponsvip.com.br" href="http://www.cuponsvip.com.br" target="_blank">Cupons VIP</a> e usa sua oferta, ou seja, não precisa esperar terminar a oferta do dia e mais um prazo de 48h para consumir o seu cupom. Muito mais economia, praticidade e rapidez para as pessoas consumirem o que deseja.</p>
<p><strong>Super Crédito:</strong> No <a title="www.cuponsvip.com.br" href="http://www.cuponsvip.com.br" target="_blank">Cupons VIP</a> o crédito para quem indica um amigo que compra no site é de<br />
R$ 15,00, o mais alto ofertado em site de compras coletivas no Brasil.</p>
<p><strong>Barra fixa: </strong>Só o <a title="www.cuponsvip.com.br" href="http://www.cuponsvip.com.br" target="_blank">Cupons VIP</a> tem uma barra fixa no topo do site, o que permite uma melhor navegação e praticidade para quem está navegando pelo site, sem precisar subir e descer a barra de rolagem para acessar o que procura.</p>
<p><strong>Prêmios: </strong>Além de economizar comprando as ofertas no <a title="www.cuponsvip.com.br" href="http://www.cuponsvip.com.br" target="_blank">Cupons VIP</a>, as pessoas podem concorrer a inúmeros prêmios durante todo ano, entre iPad, iPods, Netbooks, Câmeras Digitais, Créditos no site, entre outros, para isto basta comprar, curtir o site e convidar o maior números de amigos. É  bem fácil de ganhar! Com essa política de prêmios o <a title="www.cuponsvip.com.br" href="http://www.cuponsvip.com.br" target="_blank">Cupons VIP</a> garante mais ainda a satisfação dos seus usuários.</p>
<p><strong>Clube de Descontos:</strong> Em breve o <a title="www.cuponsvip.com.br" href="http://www.cuponsvip.com.br" target="_blank">Cupons VIP</a> estará lançando mais uma novidade que certamente agradará a todos. Não revela detalhes, mas garante que as pessoas poderão desfrutar de descontos e benefícios exclusivos dos melhores estabelecimento da cidade.</p>
<p><strong>Alertas: </strong>No <a title="www.cuponsvip.com.br" href="http://www.cuponsvip.com.br" target="_blank">Cupons VIP</a> a pessoa cadastrada recebe e-mails informando sobre o prazo de validade da oferta adquirida, a situação da compra e dos créditos, tudo para que fique bem informado e possa desfrutar o máximo das ofertas.</p>
<p>Sistema próprio: Para garantir total autonomia, segurança, rapidez, fexibilidade e desempemho para as pessoas que acessam, o <a title="www.cuponsvip.com.br" href="http://www.cuponsvip.com.br" target="_blank">Cupons VIP</a> foi desenvolvido em uma plataforma própria durante 9 meses, ou seja não é um templete barato que vende por aí na internet e nem usa uma plataforma desenvolvida por outra empresa. O <a title="www.cuponsvip.com.br" href="http://www.cuponsvip.com.br" target="_blank">Cupons VIP</a> faz parte de um pequeno número de sites de compras coletivas que dispõe de um sistema/plataforma próprio, como Groupon, Peixe Urbano, Clickon, entre outros. Em um universo de 2 mil sites de compras em torno de 10 dispõem de um sistema próprio, e isso é um grande diferencial, muito importante para a mobilidade e sucesso do negócio.</p>
<p>O <a title="www.cuponsvip.com.br" href="http://www.cuponsvip.com.br" target="_blank">Cupons VIP</a> não será mais um site de compras coletivas e sim uma rede social de compradores e uma eficiente ferramenta de promoção, marketing e publicidade para os empresários usarem como sua plataforma de ecommerce/loja virtual no seu plano de comunicação.</p>
<p>Inicialmente o <a title="www.cuponsvip.com.br" href="http://www.cuponsvip.com.br" target="_blank">Cupons VIP</a> vai concentrar sua atuação no mercado da Bahia e logo depois será expandindo por todo nordeste, norte e demais estados do Brasil, é o que informa o publicitário e design Sidharta Costa Pinto que está a frente do <a title="www.cuponsvip.com.br" href="http://www.cuponsvip.com.br" target="_blank">Cupons VIP</a>, junto com Caique Dourado responsável por toda parte de Tecnologia.</p>
<p>Visite:<br />
<a title="Cupons VIP" href="http://www.cuponsvip.com.br" target="_blank">www.cuponsvip.com.br</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2011/07/12/lancamento-cupons-vip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>União Compras</title>
		<link>http://www.caiquedourado.com.br/2009/09/01/uniao-compras/</link>
		<comments>http://www.caiquedourado.com.br/2009/09/01/uniao-compras/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 17:25:45 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[inoltz]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Web2.0]]></category>

		<guid isPermaLink="false">http://caiquedourado.com.br/?p=19</guid>
		<description><![CDATA[
Tecnologias:
Client-Side:
HTML, CSS, JQuery, Flash
Server-Side:
ASP.NET (C#), SQl Server, WebServices
Link:
www.uniaocompras.com.br






]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-308" src="http://www.caiquedourado.com.br/wp-content/uploads/2008/12/uniao-compras_1242614709295.png" alt="" width="560" height="775" /></p>
<p><strong>Tecnologias:</strong></p>
<p>Client-Side:<br />
HTML, CSS, JQuery, Flash</p>
<p>Server-Side:<br />
ASP.NET (C#), SQl Server, WebServices</p>
<p>Link:<br />
<a title="União Compras" href="http://www.uniaocompras.com.br" target="_blank">www.uniaocompras.com.br</a></p>
<p><span id="more-58"></span></p>
<p><a href="/wp-content/uploads/2009/04/uniao_compras_02.png"><img class="alignnone" src="/wp-content/uploads/2009/04/uniao_compras_02.png" alt="" width="560" /></a></p>
<p><a href="/wp-content/uploads/2009/04/uniao_compras_autenticacao_senha.png"><img class="alignnone" src="/wp-content/uploads/2009/04/uniao_compras_autenticacao_senha.png" alt="" width="560" /></a></p>
<p><a href="/wp-content/uploads/2009/04/uniao_compras_cadastro.png"><img class="alignnone" src="/wp-content/uploads/2009/04/uniao_compras_cadastro.png" alt="" width="560" /></a></p>
<p><a href="/wp-content/uploads/2009/04/uniao_compras_meu_escritorio_relacionamento.png"><img class="alignnone" src="/wp-content/uploads/2009/04/uniao_compras_meu_escritorio_relacionamento.png" alt="" width="560" /></a></p>
<p><a href="/wp-content/uploads/2009/04/uniao_compras_meu_escritorio_enderecos.png"><img class="alignnone" src="/wp-content/uploads/2009/04/uniao_compras_meu_escritorio_enderecos.png" alt="" width="560" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2009/09/01/uniao-compras/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Juspodivm</title>
		<link>http://www.caiquedourado.com.br/2009/04/15/juspodivm/</link>
		<comments>http://www.caiquedourado.com.br/2009/04/15/juspodivm/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 17:26:28 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[inoltz]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Web2.0]]></category>

		<guid isPermaLink="false">http://caiquedourado.com.br/?p=25</guid>
		<description><![CDATA[
Tecnologias:
Client-Side:
HTML, CSS, JQuery, Flash
Server-Side:
ASP.NET, C#, SQL Server, Gerenciador de Conteúdo
Link:
www.juspodivm.com.br



]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-31" title="Home - Juspodivm" src="/wp-content/uploads/2009/04/port_juspodivm_home.jpg" alt="Home - Juspodivm" width="560" /></p>
<p><strong>Tecnologias:</strong></p>
<p>Client-Side:<br />
HTML, CSS, JQuery, Flash</p>
<p>Server-Side:<br />
ASP.NET, C#, SQL Server, Gerenciador de Conteúdo</p>
<p>Link:<br />
<a title="Juspodivm" href="http://www.juspodivm.com.br" target="_blank">www.juspodivm.com.br</a></p>
<p><span id="more-61"></span></p>
<p><img class="alignnone size-full wp-image-31" title="Artigos - Juspodivm" src="/wp-content/uploads/2009/04/port_juspodivm_artigos.jpg" alt="Artigos - Juspodivm" width="560" /></p>
<p><img class="alignnone size-full wp-image-31" title="Cadastro - Juspodivm" src="/wp-content/uploads/2009/04/port_juspodivm_cadastro.jpg" alt="Cadastro - Juspodivm" width="560" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2009/04/15/juspodivm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inoltz &#8211; zController</title>
		<link>http://www.caiquedourado.com.br/2009/04/14/zcontroller/</link>
		<comments>http://www.caiquedourado.com.br/2009/04/14/zcontroller/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 17:26:51 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[inoltz]]></category>

		<guid isPermaLink="false">http://caiquedourado.com.br/?p=27</guid>
		<description><![CDATA[

Plataforma de Gerenciamento de Conteúdo e Comércio Eletrônico
Tecnologias:
Client-Side:
HTML, CSS, JQuery
Server-Side:
ASP.NET, C#, SQL Server


]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-31" title="Home - zController" src="http://caiquedourado.com.br/wp-content/uploads/2009/04/home_zcontroller.jpg" alt="Home - zController" width="560" /></p>
<p><img class="alignnone size-full wp-image-31" title="Consultas - zController" src="http://caiquedourado.com.br/wp-content/uploads/2009/04/consultas_zcontroller.jpg" alt="Consultas - zController" width="560" /></p>
<p>Plataforma de Gerenciamento de Conteúdo e Comércio Eletrônico</p>
<p><strong>Tecnologias:</strong></p>
<p>Client-Side:<br />
HTML, CSS, JQuery</p>
<p>Server-Side:<br />
ASP.NET, C#, SQL Server</p>
<p><span id="more-62"></span></p>
<p><img class="alignnone size-full wp-image-31" title="Cadastro - zController" src="http://caiquedourado.com.br/wp-content/uploads/2009/04/cadasro_zcontroller.jpg" alt="Cadastro - zController" width="560" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2009/04/14/zcontroller/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Syene Empreendimentos</title>
		<link>http://www.caiquedourado.com.br/2009/04/13/syene/</link>
		<comments>http://www.caiquedourado.com.br/2009/04/13/syene/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 17:27:15 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[asp]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[inoltz]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[salvador]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://caiquedourado.com.br/?p=29</guid>
		<description><![CDATA[
Tecnologias:
Client-Side:
HTML, CSS, JQuery, Flash
Server-Side:
ASP (Active Server Pages) + Sistema Gerenciador de Conteúdo
Link:
www.syene.com.br



]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-31" title="Home - Syene" src="/wp-content/uploads/2009/04/port_syene_home.jpg" alt="Home - Syene" width="560" /></p>
<p><strong>Tecnologias:</strong></p>
<p>Client-Side:<br />
HTML, CSS, JQuery, Flash</p>
<p>Server-Side:<br />
ASP (Active Server Pages) + Sistema Gerenciador de Conteúdo</p>
<p>Link:<br />
<a title="Syene Empreendimentos target=" href="http://www.syene.com.br">www.syene.com.br</a></p>
<p><span id="more-63"></span><br />
<img class="alignnone size-full wp-image-31" title="Mídia - Syene" src="/wp-content/uploads/2009/04/port_syene_midias.jpg" alt="Mídia - Syene" width="560" /></p>
<p><img class="alignnone size-full wp-image-31" title="Downloads - Syene" src="/wp-content/uploads/2009/04/port_syene_downloads.jpg" alt="Downloads - Syene" width="560" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2009/04/13/syene/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Editora Foco Jurídico</title>
		<link>http://www.caiquedourado.com.br/2009/01/07/editora_foco_juridico/</link>
		<comments>http://www.caiquedourado.com.br/2009/01/07/editora_foco_juridico/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 17:26:15 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Comércio Eletrônico]]></category>
		<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Boleto]]></category>
		<category><![CDATA[VISA]]></category>
		<category><![CDATA[VISA Electron]]></category>

		<guid isPermaLink="false">http://caiquedourado.com.br/?p=23</guid>
		<description><![CDATA[
Tecnologias:
Client-Side:
HTML, CSS, JQuery, Flash
Server-Side:
ASP.NET (C#), SQl Server
SEO:
Url&#8217;s amigáveis, Títulos únicos de página
Link:
www.focojuridico.com.br





Meios de Pagamento:
VISA, VISA Electron, Boleto Bancário
]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2009/04/foco_juridico_formas_pagamento.png"><img class="alignnone" src="/wp-content/uploads/2009/04/foco_juridico_formas_pagamento.png" alt="" width="560" /></a></p>
<p><strong>Tecnologias:</strong></p>
<p><strong>Client-Side:</strong><br />
HTML, CSS, JQuery, Flash</p>
<p><strong>Server-Side:</strong><br />
ASP.NET (C#), SQl Server</p>
<p><strong>SEO:</strong><br />
Url&#8217;s amigáveis, Títulos únicos de página</p>
<p>Link:<br />
<a title="Editora Foco Jurídico" href="http://www.focojuridico.com.br" target="_blank">www.focojuridico.com.br</a></p>
<p><span id="more-60"></span></p>
<p><a href="/wp-content/uploads/2009/04/foco_juridico_home.png"><img class="alignnone" src="/wp-content/uploads/2009/04/foco_juridico_home.png" alt="" width="560" /></a></p>
<p><a href="/wp-content/uploads/2009/04/foco_juridico_livro_detalhe.png"><img class="alignnone" src="/wp-content/uploads/2009/04/foco_juridico_livro_detalhe.png" alt="" width="560" /></a></p>
<p><a href="/wp-content/uploads/2009/04/foco_juridico_meuspedidos.png"><img class="alignnone" src="/wp-content/uploads/2009/04/foco_juridico_meuspedidos.png" alt="" width="560" /></a></p>
<p><a href="/wp-content/uploads/2009/04/foco_juridico_cadastro.png"><img class="alignnone" src="/wp-content/uploads/2009/04/foco_juridico_cadastro.png" alt="" width="560" /></a></p>
<p><strong>Meios de Pagamento:</strong><br />
VISA, VISA Electron, Boleto Bancário</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2009/01/07/editora_foco_juridico/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BahiaVitrine</title>
		<link>http://www.caiquedourado.com.br/2008/11/25/bahiavitrine/</link>
		<comments>http://www.caiquedourado.com.br/2008/11/25/bahiavitrine/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 17:26:02 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[inoltz]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Web2.0]]></category>

		<guid isPermaLink="false">http://caiquedourado.com.br/?p=21</guid>
		<description><![CDATA[
Tecnologias:
Client-Side:
HTML, CSS, JQuery, Flash
Server-Side:
ASP.NET (C#), SQl Server
Link:
www.bahiavitrine.com.br






]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2009/04/bahia_viitrine_home.png"><img class="alignnone" src="/wp-content/uploads/2009/04/bahia_viitrine_home.png" alt="" width="560" height="766" /></a></p>
<p><strong>Tecnologias:</strong></p>
<p>Client-Side:<br />
HTML, CSS, JQuery, Flash</p>
<p>Server-Side:<br />
ASP.NET (C#), SQl Server</p>
<p>Link:<br />
<a href="http://www.bahiavitrine.com.br" title="Bahia Vitrine" target="_blank">www.bahiavitrine.com.br</a></p>
<p><span id="more-59"></span></p>
<p><a href="/wp-content/uploads/2009/04/bahia_viitrine_colunaso.png"><img class="alignnone" src="/wp-content/uploads/2009/04/bahia_viitrine_colunaso.png" alt="" width="560" /></a></p>
<p></p>
<p><a href="/wp-content/uploads/2009/04/bahia_viitrine_fotos_e_entrevistas.png"><img class="alignnone" src="/wp-content/uploads/2009/04/bahia_viitrine_fotos_e_entrevistas.png" alt="" width="560" /></a></p>
<p></p>
<p><a href="/wp-content/uploads/2009/04/bahia_viitrine_cadastro.png"><img class="alignnone" src="/wp-content/uploads/2009/04/bahia_viitrine_cadastro.png" alt="" width="560" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2008/11/25/bahiavitrine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PizzaHut</title>
		<link>http://www.caiquedourado.com.br/2008/10/01/pizzahut/</link>
		<comments>http://www.caiquedourado.com.br/2008/10/01/pizzahut/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 17:25:29 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Comércio Eletrônico]]></category>
		<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[inoltz]]></category>
		<category><![CDATA[Web2.0]]></category>
		<category><![CDATA[webservices]]></category>
		<category><![CDATA[windows forms]]></category>

		<guid isPermaLink="false">http://caiquedourado.com.br/?p=17</guid>
		<description><![CDATA[
WebService para Transferência de Pedidos &#8211; CallCenter
Manutenção Site / Sistema de Pedidos On-Line
Client-Side
AJAX
Server-Side
ASP, SQL Server, Windows Forms, C#, WebServices
]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2008/10/pizza_hut_home.jpg"><img class="alignnone size-full wp-image-209" title="pizza_hut_home" src="/wp-content/uploads/2008/10/pizza_hut_home.jpg" alt="pizza_hut_home" width="560" height="408" /></a></p>
<p>WebService para Transferência de Pedidos &#8211; CallCenter<br />
Manutenção Site / Sistema de Pedidos On-Line</p>
<p><strong>Client-Side</strong><br />
AJAX</p>
<p><strong>Server-Side</strong><br />
ASP, SQL Server, Windows Forms, C#, WebServices</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2008/10/01/pizzahut/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Santo Forte</title>
		<link>http://www.caiquedourado.com.br/2008/09/20/santo-forte/</link>
		<comments>http://www.caiquedourado.com.br/2008/09/20/santo-forte/#comments</comments>
		<pubDate>Sat, 20 Sep 2008 20:06:30 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[accessing]]></category>
		<category><![CDATA[Action Script]]></category>
		<category><![CDATA[asp]]></category>
		<category><![CDATA[ms access]]></category>

		<guid isPermaLink="false">http://caiquedourado.esparta.kinghost.net/?p=225</guid>
		<description><![CDATA[
Client-Side
Action Script, XML
Server-Side
ASP, MS Access
Link
www.santoforte.com


]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2009/04/santo_forte_home1.jpg"><img class="alignnone size-full wp-image-226" title="santo_forte_home1" src="/wp-content/uploads/2009/04/santo_forte_home1.jpg" alt="santo_forte_home1" width="560" height="350" /></a></p>
<p><strong>Client-Side</strong><br />
Action Script, XML</p>
<p><strong>Server-Side</strong><br />
ASP, MS Access</p>
<p><strong>Link</strong><br />
<a href="http://www.santoforte.com">www.santoforte.com</a></p>
<p><span id="more-225"></span></p>
<p><img class="alignnone size-full wp-image-269" title="atualizador_santo_forte" src="http://caiquedourado.esparta.kinghost.net/wp-content/uploads/2008/09/atualizador_santo_forte.jpg" alt="atualizador_santo_forte" width="560" height="336" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2008/09/20/santo-forte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inarts</title>
		<link>http://www.caiquedourado.com.br/2008/05/12/inarts/</link>
		<comments>http://www.caiquedourado.com.br/2008/05/12/inarts/#comments</comments>
		<pubDate>Mon, 12 May 2008 17:24:59 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Comércio Eletrônico]]></category>
		<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[Banco do Brasil]]></category>
		<category><![CDATA[Boleto]]></category>
		<category><![CDATA[Bradesco]]></category>
		<category><![CDATA[Diners]]></category>
		<category><![CDATA[F2B]]></category>
		<category><![CDATA[Meios de Pagamento]]></category>
		<category><![CDATA[VERSiTE]]></category>
		<category><![CDATA[VISA]]></category>
		<category><![CDATA[VISA Electron]]></category>
		<category><![CDATA[Web2.0]]></category>

		<guid isPermaLink="false">http://caiquedourado.com.br/?p=15</guid>
		<description><![CDATA[
Meios de Pagamento
Gateway F2B
Cartões de Crédido American Express, VISA
Cartão de Débito Visa Electron
Boleto Bancário
Transferência Online Bradesco, Itaú e Banco do Brasil
Client-Side
CSS, Prototype, Scriptaculous
Server-Side
ASP.NET (C#), SQL Server

Link
www.inarts.com



]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-241" title="inarts_home" src="/wp-content/uploads/2008/05/inarts_home.jpg" alt="inarts_home" width="560" height="389" /></p>
<p><strong>Meios de Pagamento</strong></p>
<p>Gateway <a href="http://www.f2b.com.br">F2B</a><br />
Cartões de Crédido American Express, VISA<br />
Cartão de Débito Visa Electron<br />
Boleto Bancário<br />
Transferência Online Bradesco, Itaú e Banco do Brasil</p>
<p><strong>Client-Side</strong><br />
CSS, Prototype, Scriptaculous</p>
<p><strong>Server-Side</strong><br />
ASP.NET (C#), SQL Server<br />
<strong><br />
Link</strong><br />
<a href="http://www.inarts.com">www.inarts.com</a></p>
<p><span id="more-56"></span></p>
<p><img class="alignnone size-full wp-image-242" title="inarts_catalogo" src="/wp-content/uploads/2008/05/inarts_catalogo.jpg" alt="inarts_catalogo" width="560" height="771" /></p>
<p><img class="alignnone size-full wp-image-243" title="inarts_compra" src="/wp-content/uploads/2008/05/inarts_compra.jpg" alt="inarts_compra" width="560" height="371" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2008/05/12/inarts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VERSiTE</title>
		<link>http://www.caiquedourado.com.br/2008/02/22/versite/</link>
		<comments>http://www.caiquedourado.com.br/2008/02/22/versite/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 17:24:22 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[VERSiTE]]></category>
		<category><![CDATA[Web2.0]]></category>

		<guid isPermaLink="false">http://caiquedourado.com.br/?p=13</guid>
		<description><![CDATA[
O Site da VERSiTE está de cara nova. O Site foi inteiramente recostruido, ganhando um design limpo e moderno.
A antiga versão foi construida em PHP, com requisições de páginas em AJAX. O uso do AJAX facilitava a navegação porém não permitia uma perfeita indexação do conteúdo pelos mecanismos de pesquisa. Algumas páginas acabavam ficando de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/caiquedourado/2283249470/" target="_blank"><img src="http://farm3.static.flickr.com/2361/2283249470_c78ea3a67e_o.jpg" border="0" alt="VERSiTE Interactive" width="480" height="315" /></a></p>
<p>O Site da VERSiTE está de cara nova. O Site foi inteiramente recostruido, ganhando um design limpo e moderno.</p>
<p>A antiga versão foi construida em PHP, com requisições de páginas em AJAX. O uso do AJAX facilitava a navegação porém não permitia uma perfeita indexação do conteúdo pelos mecanismos de pesquisa. Algumas páginas acabavam ficando de fora das buscas.</p>
<p>Na nova versão optamos por desenvolver o layout em XHTML + CSS,  seguindo os padrões <a title="WebStandards" href="http://pt.wikipedia.org/wiki/Web_standards" target="_blank">WebStandards</a> para uma correta exibição do conteúdo em navegadores distintos e também para obter um melhor posicionamento junto ao Google.</p>
<p><strong>Versão Mobile</strong></p>
<p>Sem deixar de pensar também nos usuários de dispositivos móveis, foi criada uma versão do site com foco nos SmartPhones, PDA’S e telefones celulares. O Layout é totalmente flúido e pode ser acessado também por dispositivos que suportam somente navagação por texto.</p>
<p><a title="VERSiTE Mobile" href="http://www.versite.com.br/mobile" target="_blank">http://www.versite.com.br/mobile</a></p>
<p><a href="http://www.flickr.com/photos/caiquedourado/2283221406/" target="_blank"><img src="http://farm4.static.flickr.com/3228/2283221406_81d7bbf664_o.png" border="0" alt="VERSiTE Mobile" width="406" height="746" /></a></p>
<p><span id="more-55"></span></p>
<p><strong>FrontEnd</strong></p>
<p>A boa e pura combinação de XHTML + CSS. Para as tarefas Client-Side utilizei as bibliotecas Prototype e Scriptaculous para os efeitos.</p>
<p><strong>BackEnd</strong></p>
<p>Foi escrito em ASP e serve o mesmo conteúdo tanto para o Site principal quanto para a versão Mobile visando facilitar a inclusão de conteúdo pelos editores.</p>
<p><strong>Feed de Notícias </strong></p>
<p>Quem quiser acompanhar as notícias da Agência pode assinar o Feed.</p>
<p><a title="Feed de Notícias" href="http://www.versite.com.br/feeds/noticias.xml" target="_blank">http://www.versite.com.br/feeds/noticias.xml</a></p>
<p>Não deixem de acompanhar!</p>
<p><a title="www.versite.com.br " href="http://www.versite.com.br/" target="_blank">www.versite.com.br</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2008/02/22/versite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SUCOM</title>
		<link>http://www.caiquedourado.com.br/2008/02/21/sucom/</link>
		<comments>http://www.caiquedourado.com.br/2008/02/21/sucom/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 16:41:28 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[VERSiTE]]></category>

		<guid isPermaLink="false">http://www.caiquedourado.com.br/?p=277</guid>
		<description><![CDATA[
Tecnologias:
Client-Side:
GoogleMaps API, JavaScript, HTML + CSS
Link:
http://www.sucom.ba.gov.br
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-278" title="www_sucom_ba_gov_br" src="http://www.caiquedourado.com.br/wp-content/uploads/2009/05/www_sucom_ba_gov_br.jpg" alt="www_sucom_ba_gov_br" width="560" height="506" /></p>
<p><strong>Tecnologias:</strong></p>
<p>Client-Side:<br />
GoogleMaps API, JavaScript, HTML + CSS</p>
<p>Link:<br />
<a title="SUCOM" href="http://www.sucom.ba.gov.br" target="_blank">http://www.sucom.ba.gov.br</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2008/02/21/sucom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Util.cs</title>
		<link>http://www.caiquedourado.com.br/2007/12/28/utilcs/</link>
		<comments>http://www.caiquedourado.com.br/2007/12/28/utilcs/#comments</comments>
		<pubDate>Sat, 29 Dec 2007 01:36:42 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">http://caiquedourado.com.br/?p=48</guid>
		<description><![CDATA[Métodos para tratamento de Textos, Edição de Imagens, Conversão, Formatação, Comparação de Valores.

Download
Atualizador.Util
Atualizador.Util.Textos
Atualizador.Util.Imagem


using System;
using System.IO;
using System.IO.Compression;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Data;

namespace Atualizador.Util
{

    public static class Textos
    {

        #region Trata Textos para correta exibição no Site

     [...]]]></description>
			<content:encoded><![CDATA[<p>Métodos para tratamento de Textos, Edição de Imagens, Conversão, Formatação, Comparação de Valores.</p>
<p><img class="alignnone size-full wp-image-61" title="atualizadorframework" src="/wp-content/uploads/2009/04/atualizadorframework1.png" alt="atualizadorframework" width="523" height="681" /></p>
<p><strong>Download</strong><br />
<a href="/wp-content/uploads/2009/04/atualizadorutil.cs">Atualizador.Util</a><br />
<a href="/wp-content/uploads/2009/04/atualizadorutiltextos.cs">Atualizador.Util.Textos</a><br />
<a href="/wp-content/uploads/2009/04/atualizadorutilimagem.cs">Atualizador.Util.Imagem</a></p>
<p><span id="more-65"></span></p>
<pre class="brush: csharp;">
using System;
using System.IO;
using System.IO.Compression;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Data;

namespace Atualizador.Util
{

    public static class Textos
    {

        #region Trata Textos para correta exibição no Site

        //Trata Texto subistuindo os BBCode
        public static String trataTexto(object valor)
        {
            return trataTexto(valor, false, true, 0);
        }

        //Trata Texto subistuindo os BBCode e removendo o HTML
        public static String trataTexto(object valor, int numCaracteres)
        {
            return trataTexto(valor, true, true, numCaracteres);
        }

        //Trata Texto subistuindo os BBCode e/ou removendo o HTML
        public static String trataTexto(object valor, bool removerHtml)
        {
            return trataTexto(valor, removerHtml, true, 0);
        }

        //Trata Texto subistuindo os BBCode e/ou removendo o HTML e retornando uma quantidade determinada de caracteres
        public static String trataTexto(object valor, bool removerHtml, int numCaracteres)
        {
            return trataTexto(valor, removerHtml, true, numCaracteres);
        }

        //Trata Texto substituindo ou não os BBCode, removendo ou não o HTML, e retornando uma quantidade determinada de caracteres
        public static String trataTexto(object valor, bool removerHtml, bool substituirTagsEspeciais, int numCaracteres)
        {
            String texto = Atualizador.Framework.Util.Util.converteString(valor);

            //Substitui BBCode (Obrigatoriamente se foi setada a remoção do HTML)
            if ((substituirTagsEspeciais == true) || (removerHtml == true))
                texto = BBCode(texto);

            //Remove HTML
            if (removerHtml)
                texto = removeHTML(texto);

            //Corta o Texto
            if (numCaracteres != 0)
                texto = cortarString(texto, numCaracteres);

            //Retorna texto removendo espaços antes e após
            return texto.Trim();

        }

        //Trata Texto substituindo ou não os BBCode, removendo ou não o HTML, e retornando uma quantidade determinada de caracteres
        public static String trataQuebraLinha(object valor, bool substituirTagsEspeciais, int numCaracteres)
        {
            String texto = Atualizador.Framework.Util.Util.converteString(valor);

            //Substitui BBCode (Obrigatoriamente se foi setada a remoção do HTML)
            if (substituirTagsEspeciais == true)
                texto = BBCode(texto);

            texto = texto.Replace(&quot;&quot;, String.Empty);
            texto = texto.Replace(&quot;&quot;, String.Empty);
            texto = texto.Replace(&quot;&quot;, String.Empty);
            texto = texto.Replace(&quot;&quot;, String.Empty);

            texto = texto.Replace(&quot;&lt;em&gt;&quot;, String.Empty);
            texto = texto.Replace(&quot;&lt;/em&gt;&quot;, String.Empty);
            texto = texto.Replace(&quot;&lt;em&gt;&quot;, String.Empty);
            texto = texto.Replace(&quot;&lt;/em&gt;&quot;, String.Empty);

            texto = texto.Replace(&quot;&lt;em&gt;&quot;, String.Empty);
            texto = texto.Replace(&quot;&lt;/em&gt;&quot;, String.Empty);

            texto = texto.Replace(&quot;&lt;em&gt;&quot;, String.Empty);
            texto = texto.Replace(&quot;&lt;/em&gt;&quot;, String.Empty);

            //Corta o Texto
            if (numCaracteres != 0)
                texto = cortarString(texto, numCaracteres);

            //Retorna texto removendo espaços antes e após
            return texto.Trim();

        }
        #endregion

        #region Corta uma parte do Texto

        //Corta uma parte da String
        public static string cortarString(String texto, int limite)
        {
            string output = texto;

            if (output.Length &gt; limite &amp;amp;amp;amp;&amp;amp;amp;amp; limite &gt; 0)
            {

                output = output.Substring(0, limite);

                if (texto.Substring(output.Length, 1) != &quot; &quot;)
                {
                    int LastSpace = output.LastIndexOf(&quot; &quot;);

                    if (LastSpace != -1)
                        output = output.Substring(0, LastSpace);
                }

                output += &quot;...&quot;;
            }
            return output;
        }
        #endregion

        #region Converte BBCode
        public static string BBCode(string texto)
        {

            ////Define regex
            Regex regExp;

            ////Regex for URL tag without anchor
            regExp = new Regex(@&quot;\[url\]([^\]]+)\[\/url\]&quot;);
            texto = regExp.Replace(texto, &quot;&lt;a href=&quot;\&quot;&gt;$1&lt;/a&gt;&quot;);

            ////Regex for URL tag without anchor
            regExp = new Regex(@&quot;\[URL\]([^\]]+)\[\/URL\]&quot;);
            texto = regExp.Replace(texto, &quot;&lt;a href=&quot;\&quot;&gt;$1&lt;/a&gt;&quot;);

            ////Regex for URL with anchor
            regExp = new Regex(@&quot;\[url=([^\]]+)\]([^\]]+)\[\/url\]&quot;);
            texto = regExp.Replace(texto, &quot;&lt;a href=&quot;\&quot;&gt;$2&lt;/a&gt;&quot;);

            ////Regex for URL with anchor
            regExp = new Regex(@&quot;\[URL=([^\]]+)\]([^\]]+)\[\/URL\]&quot;);
            texto = regExp.Replace(texto, &quot;&lt;a href=&quot;\&quot;&gt;$2&lt;/a&gt;&quot;);

            ////Image regex
            regExp = new Regex(@&quot;\[img\]([^\]]+)\[\/img\]&quot;);
            texto = regExp.Replace(texto, &quot;&lt;img src=&quot;\&quot; alt=&quot;&quot; /&gt;&quot;);

            ////Image regex
            regExp = new Regex(@&quot;\[IMG\]([^\]]+)\[\/IMG\]&quot;);
            texto = regExp.Replace(texto, &quot;&lt;img src=&quot;\&quot; alt=&quot;&quot; /&gt;&quot;);

            ////Bold text
            regExp = new Regex(@&quot;\[b\](.+?)\[\/b\]&quot;);
            texto = regExp.Replace(texto, &quot;&lt;strong&gt;$1&lt;/strong&gt;&quot;);

            ////Bold text
            regExp = new Regex(@&quot;\[B\](.+?)\[\/B\]&quot;);
            texto = regExp.Replace(texto, &quot;&lt;strong&gt;$1&lt;/strong&gt;&quot;);

            ////Italic text
            regExp = new Regex(@&quot;\[i\](.+?)\[\/i\]&quot;);
            texto = regExp.Replace(texto, &quot;&lt;em&gt;$1&lt;/em&gt;&quot;);

            ////Italic text
            regExp = new Regex(@&quot;\[I\](.+?)\[\/I\]&quot;);
            texto = regExp.Replace(texto, &quot;&lt;em&gt;$1&lt;/em&gt;&quot;);

            ////Underline text
            regExp = new Regex(@&quot;\[u\](.+?)\[\/u\]&quot;);
            texto = regExp.Replace(texto, &quot;&lt;span style=&quot;text-decoration: underline;&quot;&gt;$1&lt;/span&gt;&quot;);

            ////Underline text
            regExp = new Regex(@&quot;\[U\](.+?)\[\/U\]&quot;);
            texto = regExp.Replace(texto, &quot;&lt;span style=&quot;text-decoration: underline;&quot;&gt;$1&lt;/span&gt;&quot;);

            ////Font size
            regExp = new Regex(@&quot;\[size=([^\]]+)\]([^\]]+)\[\/size\]&quot;);
            texto = regExp.Replace(texto, &quot;&lt;span style=&quot;\&quot;&gt;$2&lt;/span&gt;&quot;);

            ////Font size
            regExp = new Regex(@&quot;\[SIZE=([^\]]+)\]([^\]]+)\[\/SIZE\]&quot;);
            texto = regExp.Replace(texto, &quot;&lt;span style=&quot;\&quot;&gt;$2&lt;/span&gt;&quot;);

            ////Font color
            regExp = new Regex(@&quot;\[color=([^\]]+)\]([^\]]+)\[\/color\]&quot;);
            texto = regExp.Replace(texto, &quot;&lt;span style=&quot;\&quot;&gt;$2&lt;/span&gt;&quot;);

            ////Font color
            regExp = new Regex(@&quot;\[COLOR=([^\]]+)\]([^\]]+)\[\/COLOR\]&quot;);
            texto = regExp.Replace(texto, &quot;&lt;span style=&quot;\&quot;&gt;$2&lt;/span&gt;&quot;);

            ///BR
            texto = texto.Replace(&quot;[br]&quot;, &quot;&quot;);
            texto = texto.Replace(&quot;[BR]&quot;, &quot;&quot;);

            return texto;
        }
        #endregion

        #region Remove HTML
        public static String removeHTML(string texto)
        {
            String retorno = String.Empty;
            Regex regex = new Regex(&quot;&lt;!--?(.*)--&gt;&quot;, RegexOptions.IgnoreCase | RegexOptions.Multiline);
            retorno = regex.Replace(texto, string.Empty);
            return retorno;
        }
        #endregion

        #region Remove Acentos
        ///
        /// Remove Acentos de uma String, substituindo-as pelas letrar sem acento e eliminando os caracteres especiais
        ///
        ///
Texto para remoção dos acentos
        public static String removeAcentos(String texto)
        {
            string comAcentos = &quot;^`|'³²²¹,.:;!@#$%¨&amp;amp;amp;amp;*()-?=+{}&gt;&lt;~/][°ªº§£¢¬ÄÅÁÂÀÃäáâàãÉÊËÈéêëèÍÎÏÌíîïìÖÓÔÒÕöóôòõÜÚÛüúûùÇç &quot;;
            string semAcentos = &quot;-----------------------------------------AAAAAAaaaaaEEEEeeeeIIIiiiiiOOOOOoooooUUUuuuuCc_&quot;;

            for (int i = 0; i &lt; comAcentos.Length; i++)
                texto = texto.Replace(comAcentos[i].ToString(), semAcentos[i].ToString()).Trim();

            return texto.Replace(&quot;-&quot;, String.Empty);
        }
        #endregion

        #region Substitui Quebras de Linha para exibição na página
        public static String substituiQuebrasLinha(object valor)
        {
            String texto = Atualizador.Framework.Util.Util.converteString(valor);
            return substituiQuebrasLinha(texto);
        }

        public static String substituiQuebrasLinha(String texto)
        {
            texto = texto.Replace(System.Environment.NewLine, &quot;&quot;);
            return texto;
        }

        #endregion

        #region Converte a primeira letra para Maiúscula
        public static string primeiraLetraMaiuscula(string s)
        {
            StringBuilder sb = new StringBuilder(s);
            sb[0] = Char.ToUpper(sb[0]);
            return sb.ToString();
        }
        #endregion
    }
}
</pre>
<pre class="brush: csharp;">
using System;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;

namespace Atualizador.Util
{
    public static class Imagem
    {
        #region &quot;Cortar Imagem&quot;
        ///
        /// Corta uma área da imagem
        ///
        ///
Arquivo de Origem
        ///
Arquivo de Destino
        ///
Distância a partir da esquerda para recortar a imagem
        ///
Distância a partir do topo para recortar a imagem
        ///
Largura da área para recortar a imagem
        ///
Altura da área para recortar a imagem
        public static void redimensionarImagem(String imagem_origem, String imagem_destino, int posicaoCorteX, int posicaoCorteY, int larguraCorte, int alturaCorte)
        {

            //Corta uma área da imagem
            Bitmap BitmapOriginal = new Bitmap(imagem_origem);
            Bitmap BitmaCortado = new Bitmap(larguraCorte, alturaCorte);

            Graphics Imagem = Graphics.FromImage(BitmaCortado);
            Imagem.CompositingQuality = CompositingQuality.HighQuality;
            Imagem.SmoothingMode = SmoothingMode.HighQuality;
            Imagem.PixelOffsetMode = PixelOffsetMode.HighQuality;
            Imagem.InterpolationMode = InterpolationMode.HighQualityBicubic;
            Imagem.DrawImage(BitmapOriginal, new Rectangle(0, 0, BitmaCortado.Width, BitmaCortado.Height), posicaoCorteX, posicaoCorteY, BitmaCortado.Width, BitmaCortado.Height, GraphicsUnit.Pixel);

            BitmaCortado.Save(imagem_destino, BitmaCortado.RawFormat);

            Imagem.Dispose();
            BitmaCortado.Dispose();
            BitmapOriginal.Dispose();

        }
        #endregion

        #region &quot;Redimensionar Imagem&quot;
        ///
        /// Corte e Redimensiona a imagem fornecendo largura e altura finais
        ///
        ///
Arquivo de Origem
        ///
Arquivo de Destino
        ///
Distância a partir da esquerda para recortar a imagem
        ///
Distância a partir do topo para recortar a imagem
        ///
Largura da área para recortar a imagem
        ///
Altura da área para recortar a imagem
        ///
Largura da imagem para redimensionamento
        ///
Altura final da imagem para redimensionamento
        public static void redimensionarImagem(String imagem_origem, String imagem_destino, int posicaoCorteX, int posicaoCorteY, int larguraCorte, int alturaCorte, int larguraFinal, int alturaFinal)
        {
            //Corta e redimensiona uma área da imagem

            Bitmap BitmapOriginal = new Bitmap(imagem_origem);
            Bitmap BitmapCortado = new Bitmap(larguraCorte, alturaCorte);
            Graphics GraficoCortado = Graphics.FromImage(BitmapCortado);
            GraficoCortado.DrawImage(BitmapOriginal, new Rectangle(0, 0, BitmapCortado.Width, BitmapCortado.Height), posicaoCorteX, posicaoCorteY, BitmapCortado.Width, BitmapCortado.Height, GraphicsUnit.Pixel);

            Size NovoTamanho = new Size(larguraFinal, alturaFinal);
            System.Drawing.Image gdi = new Bitmap(NovoTamanho.Width, NovoTamanho.Height);

            Graphics BitmapZoom = Graphics.FromImage(gdi);
            BitmapZoom.InterpolationMode = InterpolationMode.HighQualityBicubic;
            BitmapZoom.CompositingQuality = CompositingQuality.HighQuality;
            BitmapZoom.SmoothingMode = SmoothingMode.HighQuality;
            BitmapZoom.PixelOffsetMode = PixelOffsetMode.HighQuality;
            BitmapZoom.InterpolationMode = InterpolationMode.HighQualityBicubic;
            BitmapZoom.DrawImage(BitmapCortado, new Rectangle(new Point(0, 0), NovoTamanho), new Rectangle(new Point(0, 0), BitmapCortado.Size), GraphicsUnit.Pixel);
            BitmapZoom.Dispose();

            gdi.Save(imagem_destino);

            GraficoCortado.Dispose();
            BitmapCortado.Dispose();
            BitmapOriginal.Dispose();

        }
        #endregion

        #region &quot;Zoom Imagem&quot;
        ///
Arquivo de Origem
        ///
Arquivo de Destino
        ///
Largura final da imagem
        ///
Altura final da imagem
        public static bool zoomImagem(String imagem_origem, String imagem_destino, int w_novo, int h_novo)
        {
            bool acao_ok = false;

            //Redimensiona uma área da imagem

            try
            {
                System.Drawing.Image BitmapOriginal = System.Drawing.Image.FromFile(imagem_origem);
                Size NovoTamanho = new Size(w_novo, h_novo);

                System.Drawing.Image gdi = new Bitmap(NovoTamanho.Width, NovoTamanho.Height);

                Graphics BitmapZoom = Graphics.FromImage(gdi);
                BitmapZoom.InterpolationMode = InterpolationMode.HighQualityBicubic;
                BitmapZoom.CompositingQuality = CompositingQuality.HighQuality;
                BitmapZoom.SmoothingMode = SmoothingMode.HighQuality;
                BitmapZoom.PixelOffsetMode = PixelOffsetMode.HighQuality;
                BitmapZoom.InterpolationMode = InterpolationMode.HighQualityBicubic;
                BitmapZoom.DrawImage(BitmapOriginal, new Rectangle(new Point(0, 0), NovoTamanho), new Rectangle(new Point(0, 0), BitmapOriginal.Size), GraphicsUnit.Pixel);
                BitmapZoom.Dispose();

                gdi.Save(imagem_destino, gdi.RawFormat);

                acao_ok = true;

            }
            catch { }

            return acao_ok;
        }
        #endregion

        #region &quot;Retorna dimensão imagem&quot;
        ///
Caminho do Arquivo
        public static Dimensao retornaTamanho(string nomeArquivo)
        {
            //Pega imagem
            System.Drawing.Image imagemEnviada = System.Drawing.Image.FromFile(nomeArquivo);

            //Determina largura e altura
            Dimensao dimensao = new Dimensao();
            dimensao.Largura = imagemEnviada.PhysicalDimension.Width;
            dimensao.Altura = imagemEnviada.PhysicalDimension.Height;

            return dimensao;
        }

        #endregion

        #region Retorna Proporção
        ///
Caminho do Arquivo
        ///
Largura Máxima
        ///
Altura Máxima
        ///
Largura
        ///
Altura
        public static Dimensao retornaProporcao(string nomeArquivo, float maxLarg, float maxAlt, float largura, float altura)
        {
            System.Drawing.Image OriImg = System.Drawing.Image.FromFile(nomeArquivo);
            Dimensao dimensao = new Dimensao();
            if (OriImg.Width &gt; OriImg.Width)
            {
                //Padrão Paisagem
                if (OriImg.Width &gt; maxLarg)
                {
                    dimensao.Largura = maxLarg;
                    dimensao.Altura = Convert.ToInt32(OriImg.Height * dimensao.Largura / OriImg.Width);
                }
                else
                {
                    dimensao.Largura = OriImg.Width;
                    dimensao.Altura = OriImg.Height;
                }
            }
            else
            {
                //Padrão Retrato
                if (OriImg.Height &gt; maxAlt)
                {
                    dimensao.Altura = maxAlt;
                    dimensao.Largura = Convert.ToInt32(OriImg.Width * dimensao.Largura / OriImg.Height);
                }
                else
                {
                    dimensao.Largura = OriImg.Width;
                    dimensao.Altura = OriImg.Height;
                }

            }

            return dimensao;
        }
        #endregion

        #region Corta e Redimensiona Imagem
        ///
        /// Corta uma área da imagem
        ///
        ///
Arquivo de Origem
        ///
Arquivo de Destino
        ///
Distância a partir da esquerda para recortar a imagem
        ///
Distância a partir do topo para recortar a imagem
        ///
Largura da área para recortar a imagem
        ///
Altura da área para recortar a imagem
        ///
Largura da imagem final
        ///
Altura da imagem final
        public static void cortaRedimensionaImagem(String imagem_origem, String imagem_destino, int posicaoCorteX, int posicaoCorteY, int larguraCorte, int alturaCorte,int novaLargura, int novaAltura)
        {

            //Corta uma área da imagem
            Bitmap BitmapOriginal = new Bitmap(imagem_origem);
            Bitmap BitmaCortado = new Bitmap(larguraCorte, alturaCorte);

            Graphics Imagem = Graphics.FromImage(BitmaCortado);
            Imagem.CompositingQuality = CompositingQuality.HighQuality;
            Imagem.SmoothingMode = SmoothingMode.HighQuality;
            Imagem.PixelOffsetMode = PixelOffsetMode.HighQuality;
            Imagem.InterpolationMode = InterpolationMode.HighQualityBicubic;
            Imagem.DrawImage(BitmapOriginal, new Rectangle(0, 0, BitmaCortado.Width, BitmaCortado.Height), posicaoCorteX, posicaoCorteY, BitmaCortado.Width, BitmaCortado.Height, GraphicsUnit.Pixel);

            /////////////////////////////////
            Size NovoTamanho = new Size(novaLargura, novaAltura);

            System.Drawing.Image gdi = new Bitmap(NovoTamanho.Width, NovoTamanho.Height);

            Graphics BitmapZoom = Graphics.FromImage(gdi);
            BitmapZoom.InterpolationMode = InterpolationMode.HighQualityBicubic;
            BitmapZoom.CompositingQuality = CompositingQuality.HighQuality;
            BitmapZoom.SmoothingMode = SmoothingMode.HighQuality;
            BitmapZoom.PixelOffsetMode = PixelOffsetMode.HighQuality;
            BitmapZoom.InterpolationMode = InterpolationMode.HighQualityBicubic;
            BitmapZoom.DrawImage(BitmaCortado, new Rectangle(new Point(0, 0), NovoTamanho), new Rectangle(new Point(0, 0), BitmaCortado.Size), GraphicsUnit.Pixel);
            BitmapZoom.Dispose();

            gdi.Save(imagem_destino, gdi.RawFormat);

            /////////////////////////

            Imagem.Dispose();
            gdi.Dispose();
            BitmaCortado.Dispose();
            BitmapOriginal.Dispose();

        }
        #endregion

    }

    public class Dimensao
    {
        float altura;
        float largura;

        #region Altura
        public float Altura
        {
            get { return altura; }
            set { altura = value; }
        }
        #endregion

        #region Largura
        public float Largura
        {
            get { return largura; }
            set { largura = value; }
        }
        #endregion
    }
}
</pre>
<pre class="brush: csharp;">
using System;
using System.IO;
using System.IO.Compression;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Data;

namespace Atualizador
{
    public static class Util
    {

        #region &quot;Normaliza as aspas da String&quot;
        ///
        /// Remove as aspas e a barra invertida de uma String
        ///
        ///
String para Remoção
        public static string aspasSQL(string str)
        {
            String retorno = str;

            retorno = retorno.Replace(&quot;'&quot;, &quot;''&quot;);

            return retorno;
        }

        ///
        /// Remove as aspas e a barra invertida de um Objeto
        ///
        ///
Objeto para Remoção
        public static string aspasSQL(object ostr)
        {
            String retorno = ostr.ToString();

            retorno = retorno.Replace(&quot;'&quot;, &quot;''&quot;);

            return retorno;
        }
        #endregion

        #region &quot;Normaliza as aspas da String&quot;
        ///
        /// Substitui as aspas de uma String
        ///
        ///
String para Remoção
        public static string aspasJavaScript(string str)
        {
            String retorno = str;

            retorno = retorno.Replace(&quot;'&quot;, &quot;\\'&quot;);

            return retorno;
        }
        #endregion

        #region Conversões

        public static int converteInteiro(object valor)
        {
            int retorno;

            try
            {
                retorno = int.Parse(valor.ToString());
            }
            catch
            {
                retorno = 0;
            }

            return retorno;
        }

        public static long converteNumero(object valor)
        {
            long retorno;

            try
            {
                retorno = long.Parse(valor.ToString());
            }
            catch
            {
                retorno = 0;
            }

            return retorno;
        }

        public static short converteShort(object valor)
        {
            short retorno;

            try
            {
                retorno = short.Parse(valor.ToString());
            }
            catch
            {
                retorno = 0;
            }

            return retorno;
        }

        public static String converteString(object valor)
        {
                return (valor != null) ? valor.ToString() : String.Empty;
        }

        public static float converteFloat(object valor)
        {
            float retorno;

            try
            {
                retorno = float.Parse(valor.ToString());
            }
            catch
            {
                retorno = 0;
            }

            return retorno;
        }

        public static bool converteBool(object valor)
        {
            bool retorno;

            try
            {
                if ((valor.ToString().ToLower() == &quot;0&quot;) || (valor.ToString().ToLower() == &quot;false&quot;) || (valor.ToString().ToLower() == String.Empty))
                    retorno = false;
                else
                    retorno = true;
            }
            catch
            {
                retorno = false;
            }

            return retorno;
        }

        public static decimal converteDecimal(object valor)
        {
            decimal retorno;

            try
            {
                retorno = decimal.Parse(valor.ToString());
            }
            catch
            {
                retorno = 0;
            }

            return retorno;
        }

        public static string converteDataToString(DateTime data)
        {
            string strAno = data.Year.ToString();
            string strMes = data.Month.ToString();
            string strDia = data.Day.ToString();

            if (Int16.Parse(strMes) &lt;= 9)
                strMes = &quot;0&quot; + strMes;
            if (Int16.Parse(strDia) &lt;= 9)
                strDia = &quot;0&quot; + strDia;

            string strData = strAno + strMes + strDia;
            return strData;
        }

        public static DateTime convertStringToData(string strData)
        {
            string strAno = strData.Substring(0, 4);
            string strMes = strData.Substring(4, 2);
            string strDia = strData.Substring(6, 2);
            return DateTime.Parse(strDia + &quot;/&quot; + strMes + &quot;/&quot; + strAno);
        }

        public static DateTime converteData(object valor)
        {
            return converteData(converteString(valor));
        }

        public static DateTime converteData(string valor)
        {
            return DateTime.Parse(valor);
        }

        #endregion

        #region Formata Data / Hora

        public static String formataData(object valor)
        {
            String dataStr = Atualizador.Framework.Util.Util.formataStringData(valor.ToString());
            DateTime data = Atualizador.Framework.Util.Util.converteData(dataStr);

            String nomeMes = String.Format(&quot;{0:MMMM}&quot;, data).Substring(0, 3).ToUpper();
            return String.Format(&quot;{0} de {1}&quot;, data.Day, nomeMes);
        }

        #endregion

        #region Formata Valor Boleano

        ///
        /// Formata o valor booleano (True/False) para (Sim/Não)
        ///
        ///
Data
        public static string formataBoolString(bool valor)
        {
            if (valor)
                return &quot;Sim&quot;;
            else
                return &quot;Não&quot;;
        }

        #endregion

        #region Retorna Mensagem de boas vindas
        public static String mensagemBoasVindas(DateTime horario)
        {
            if (horario.Hour &lt;= 12)
                return &quot;Bom Dia&quot;;
            else if ((horario.Hour &gt; 12) &amp;amp;amp;amp;&amp;amp;amp;amp; (horario.Hour &lt; 18))
                return &quot;Boa Tarde&quot;;
            else
                return &quot;Boa Noite&quot;;
        }
        #endregion

        #region Extrai Números
        public static String extraiNumeros(string valor)
        {
            return string.Join(null, System.Text.RegularExpressions.Regex.Split(valor, &quot;[^\\d]&quot;));
        }
        #endregion

        #region Converte Data para o formato Juliano
        public static long converteDataParaJuliano(DateTime dt)
        {
            int m = dt.Month;
            int d = dt.Day;
            int y = dt.Year;

            if (m &lt; 3)
            {
                m = m + 12;
                y = y - 1;
            }
            long jd = d + (153 * m - 457) / 5 + 365 * y + (y / 4) - (y / 100) + (y / 400) + 1721119;
            return jd;
        }
        #endregion

        #region Número de dias entre duas Datas
        public static int numeroDiasEntreDatas(DateTime dataInicial, DateTime dataFinal)
        {
            int ano = 0;
            int dias = 0;

            TimeSpan ts = new TimeSpan();
            ts = dataFinal.Subtract(dataInicial);
            ano = (ts.Days / 365);

            dias = dataFinal.Subtract(dataInicial.AddYears(ano)).Days;

            return dias;
        }
        #endregion

        #region Traduz valor Boolean para Português (Sim / Não)
        public static String traduzValorBoolean(object str)
        {
            bool valor = converteBool(str);
            return (valor) ? &quot;Sim&quot; : &quot;Não&quot;;
        }
        #endregion

        /* Validações */

        #region &quot;Valida Número&quot;
        ///
        /// Verifica se o valor do objeto é um número
        ///
        ///
Objeto para verificação
        public static bool IsNumeric(Object objValue)
        {
            bool _Valid = false;

            try
            {
                double y = Convert.ToDouble(objValue);
                _Valid = true;
                return _Valid;
            }
            catch
            {
                _Valid = false;
            }

            try
            {
                int x = Convert.ToInt32(objValue);
                _Valid = true;
                return _Valid;
            }
            catch
            {
                _Valid = false;
            }

            return _Valid;
        }
        #endregion

        #region &quot;Valida Data&quot;
        ///
        /// Verifica se uma String é uma Data
        ///
        ///
String para verificação
        public static bool IsDateTime(String sDateTime)
        {
            bool bIsDateTime = false;

            try
            {
                System.DateTime.Parse(sDateTime);
                bIsDateTime = true;
            }
            catch
            {
                bIsDateTime = false;
            }

            return bIsDateTime;
        }
        #endregion

        #region Valida E-mail
        public static bool validaEmail(string inputEmail)
        {

            string strRegex = @&quot;^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}&quot; +
                  @&quot;\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\&quot; +
                  @&quot;.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$&quot;;
            Regex re = new Regex(strRegex);
            if (re.IsMatch(inputEmail))
                return (true);
            else
                return (false);
        }
        #endregion

        #region Valida CEP
        public static bool validaCEP(string valor)
        {
            valor = valor.Replace(&quot;-&quot;,String.Empty);

            String cep = Atualizador.Framework.Util.Util.extraiNumeros(valor);

            return (cep.Length == 8);
        }
        #endregion

        #region Valida CPF
        public static bool validaCPF(string cpf)
        {
            int[] multiplicador1 = new int[9] { 10, 9, 8, 7, 6, 5, 4, 3, 2 };
            int[] multiplicador2 = new int[10] { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 };
            string tempCpf;
            string digito;
            int soma;
            int resto;

            cpf = cpf.Trim();
            cpf = cpf.Replace(&quot;.&quot;, &quot;&quot;).Replace(&quot;-&quot;, &quot;&quot;);

            if (cpf.Length != 11)
                return false;

            tempCpf = cpf.Substring(0, 9);
            soma = 0;
            for (int i = 0; i &lt; 9; i++)
                soma += int.Parse(tempCpf[i].ToString()) * multiplicador1[i];

            resto = soma % 11;
            if (resto &lt; 2)
                resto = 0;
            else
                resto = 11 - resto;

            digito = resto.ToString();

            tempCpf = tempCpf + digito;

            soma = 0;
            for (int i = 0; i &lt; 10; i++)
                soma += int.Parse(tempCpf[i].ToString()) * multiplicador2[i];

            resto = soma % 11;
            if (resto &lt; 2)
                resto = 0;
            else
                resto = 11 - resto;

            digito = digito + resto.ToString();

            return cpf.EndsWith(digito);
        }
        #endregion

        #region Valida CNPJ
        public static bool ValidaCnpj(string cnpj)
        {
            int[] multiplicador1 = new int[12] { 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 };
            int[] multiplicador2 = new int[13] { 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 };
            int soma;
            int resto;
            string digito;
            string tempCnpj;

            cnpj = cnpj.Trim();
            cnpj = cnpj.Replace(&quot;.&quot;, &quot;&quot;).Replace(&quot;-&quot;, &quot;&quot;).Replace(&quot;/&quot;, &quot;&quot;);

            if (cnpj.Length != 14)
                return false;

            tempCnpj = cnpj.Substring(0, 12);

            soma = 0;
            for (int i = 0; i &lt; 12; i++)
                soma += int.Parse(tempCnpj[i].ToString()) * multiplicador1[i];

            resto = (soma % 11);
            if (resto &lt; 2)
                resto = 0;
            else
                resto = 11 - resto;

            digito = resto.ToString();

            tempCnpj = tempCnpj + digito;
            soma = 0;
            for (int i = 0; i &lt; 13; i++)
                soma += int.Parse(tempCnpj[i].ToString()) * multiplicador2[i];

            resto = (soma % 11);
            if (resto &lt; 2)
                resto = 0;
            else
                resto = 11 - resto;

            digito = digito + resto.ToString();

            return cnpj.EndsWith(digito);
        }
        #endregion

        #region &quot;Arredonda Número&quot;
        ///
        /// Arredonda o valor de um Número, aproximando-o para mais (2,3 -&gt; 3)
        ///
        ///
Valor a ser arredondado
        public static int arredondaNum(double valor)
        {
            return (int)Math.Ceiling(valor);
        }

        public static int arredondaNum(decimal valor)
        {
            return (int)Math.Ceiling(valor);
        }
        #endregion

        /* Formata Moeda */

        #region Formata Moeda
        public static String formataMoeda(object valor)
        {
            return String.Format(&quot;{0:c}&quot;, valor);
        }
        #endregion

        #region &quot;Formata telefone xxxx-xxxx&quot;
        ///
        /// Formata telefone xxxx-xxxx
        ///
        ///
Numero
        public static string formataTelefone(Object numero)
        {
            string num = converteString(numero);
            string n = &quot;&quot;;

            for (int i = 0; i &lt; num.Length; i++)
            {
                n += num.Substring(i, 1);
                if (i == 3)
                    n += &quot;-&quot;;
            }

            return n;
        }
        #endregion

        #region &quot;Formata telefone (xx)xxxx-xxxx&quot;
        ///
        /// Formata telefone (xx)xxxx-xxxx
        ///
        ///
Numero
        public static string formataTelefoneDDD(Object numero)
        {
            string num = converteString(numero);
            string n = &quot;&quot;;

            for (int i = 0; i &lt; num.Length; i++)
            {
                if (i == 0)
                    n += &quot;(&quot;;

                n += num.Substring(i, 1);

                if (i == 1)
                    n += &quot;)&quot;;

                if (i == 5)
                    n += &quot;-&quot;;
            }

            return n;
        }
        #endregion

        #region &quot;Formata Cep xxxxx-xxx&quot;
        ///
        /// Formata Cep xxxxx-xxx
        ///
        ///
CEP
        public static string formataCep(Object cep)
        {
            string num = converteString(cep).Replace(&quot;-&quot;, String.Empty);
            string n = &quot;&quot;;

            for (int i = 0; i &lt; num.Length; i++)
            {
                n += num.Substring(i, 1);
                if (i == 4)
                    n += &quot;-&quot;;
            }

            return n;
        }
        #endregion

        /* Query Strings */

        #region &quot;Pega parâmetro da URL (String)&quot;
        ///
        /// Retorna o valor, sem espaços em branco, de uma QueryString informando seu nome como parâmetro
        ///
        ///
Nome da QueryString
        public static String parametroStr(String nome)
        {

            if (System.Web.HttpContext.Current.Request.QueryString[nome] != null)
                return System.Web.HttpContext.Current.Request.QueryString[nome].ToString();
                //return System.Web.HttpContext.Current.Server.UrlDecode(System.Web.HttpContext.Current.Request.QueryString[nome].ToString());
            else
                return String.Empty;

        }
        #endregion

        #region &quot;Pega parâmetro da URL (Número)&quot;
        ///
        /// Retorna o valor númerico de uma QueryString  passando seu nome como parâmetro. Se a qusery string não for um número válido é retornado '0'
        ///
        ///
Nome da QueryString
        public static int parametroNum(String nome)
        {
            Int32 numRetorno;
            Int32.TryParse(System.Web.HttpContext.Current.Request.QueryString[nome], out numRetorno);
            return numRetorno;
        }
        #endregion

        /* Arquivos */

        #region &quot;Gera nome para o arquivo&quot;
        ///
        /// Gera um nome de arquivo único
        ///
        ///
Nome do arquivo original para capturar a extensão original do arquivo
        public static String geraNomeArquivo(String arquivo)
        {
            return String.Format(&quot;{0}{1}&quot;, Guid.NewGuid().ToString().Replace(&quot;-&quot;, String.Empty), System.IO.Path.GetExtension(arquivo));
        }

        ///
        /// Gera um nome incremental de arquivo
        ///
        ///
Nome do arquivo original para capturar a extensão original do arquivo
        ///
Diretório de armazenamento
        public static String geraNomeArquivoIncremental(String nomeArquivo, String diretorioArquivos)
        {
            //Inclui '/' final
            if (!diretorioArquivos.EndsWith(&quot;/&quot;))
                diretorioArquivos = String.Concat(diretorioArquivos, &quot;/&quot;);

            if (!System.IO.File.Exists(diretorioArquivos + nomeArquivo))
            {
                //Se não existe um arquivo com o mesmo nome
                return nomeArquivo;
            }
            else
            {
                #region Se já existe um arquivo com o mesmo nome

                //Nome final do Arquivo
                String novoNome = nomeArquivo;

                //Contador
                int numIncremento = 1;

                String arquivo, extensao = String.Empty;

                while (System.IO.File.Exists(diretorioArquivos + novoNome))
                {
                    //Resgata nome e extensão do arquivo
                    extensao = System.IO.Path.GetExtension(novoNome);
                    arquivo = nomeArquivo.Replace(extensao, String.Empty);

                    //Gera novo nome
                    novoNome = String.Format(&quot;{0}({1}){2}&quot;, arquivo, numIncremento, extensao);

                    //Incrementa o Contador
                    numIncremento += 1;
                }

                return novoNome;

                #endregion
            }

        }
        #endregion

        /* HTMLControls */

        #region Adiciona Classe
        public static void adicionaClasse(HtmlControl controle, String classe)
        {
            adicionaClasse(controle, classe, true);

        }

        public static void adicionaClasse(HtmlControl controle, String classe, bool verificaSeJaExiste)
        {
            bool jaExiste = false;

            //Verifica se o elemento já possui a classe
            if (verificaSeJaExiste)
            {
                jaExiste = existeClasse(controle, classe);
            }

            //Se a classe ainda não foi adicionada ao elemento
            if (jaExiste == false)
            {
                if (classe == String.Empty)
                {
                    //Se o elemento não possui classes
                    controle.Attributes[&quot;class&quot;] = classe;
                }
                else
                {
                    //Se o elemento possui outras classes
                    controle.Attributes[&quot;class&quot;] = String.Concat(controle.Attributes[&quot;class&quot;], &quot; &quot;, classe);
                }
            }

        }
        #endregion

        #region Remove Classe
        public static void removerClasse(HtmlControl controle, String classe)
        {
            String classesElemento = controle.Attributes[&quot;class&quot;];

            //Remove a Classe
            classesElemento = classesElemento.Replace(classe, String.Empty);

            controle.Attributes[&quot;class&quot;] = classesElemento;
        }
        #endregion

        #region Verifica se Classe já existe
        public static bool existeClasse(HtmlControl controle, String classe)
        {
            bool jaExiste = false;

            String classesElemento = controle.Attributes[&quot;class&quot;];

            //Separa as Classes do Elemento
            String[] listaClassesElemento = controle.Attributes[&quot;class&quot;].Split(' ');

            //Verifica se o elemento já possui a Classe
            foreach (String itemClasse in listaClassesElemento)
            {
                if (itemClasse.Trim() == classe)
                {
                    jaExiste = true;
                    break;
                }
            }

            return jaExiste;
        }
        #endregion

    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/12/28/utilcs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Empresa baiana sai na frente da Microsoft</title>
		<link>http://www.caiquedourado.com.br/2007/12/27/empresa-baiana-sai-na-frente-da-microsoft/</link>
		<comments>http://www.caiquedourado.com.br/2007/12/27/empresa-baiana-sai-na-frente-da-microsoft/#comments</comments>
		<pubDate>Fri, 28 Dec 2007 01:12:30 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Mercado]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[freire informática]]></category>
		<category><![CDATA[maker]]></category>
		<category><![CDATA[softwell]]></category>

		<guid isPermaLink="false">http://caiquedourado.com/2007/12/27/empresa-baiana-sai-na-frente-da-microsoft/</guid>
		<description><![CDATA[Confesso que dei muitas risadas ao me deparar com uma notícia publicada no site da PRODEB abordando o lançamento de um tal revolucionário Software bahiano.
O título dizia o seguinte: &#8220;Empresa baiana sai na frente da Microsoft&#8221;. Como legítimo bahiano que sou, e também fazendo parte do universo do desenvolvimento não pude deixar de dar prosseguimento [...]]]></description>
			<content:encoded><![CDATA[<p>Confesso que dei muitas risadas ao me deparar com uma <a href="http://www.prodeb.gov.br/exibe_noticia.asp?cod_noticia=1622" title="Empresa baiana sai na frente de Microsoft" target="_blank">notícia</a> publicada no site da <a href="http://www.prodeb.gov.br" title="PRODEB" target="_blank">PRODEB</a> abordando o lançamento de um tal revolucionário Software bahiano.</p>
<p>O título dizia o seguinte: <em>&#8220;Empresa baiana sai na frente da Microsoft&#8221;.</em> Como legítimo bahiano que sou, e também fazendo parte do universo do desenvolvimento não pude deixar de dar prosseguimento com a leitura da matéria.</p>
<p>Lançado pela Freire Informática (<a href="http://www.softwell.com.br" title="SOFTWELL" target="_blank">Softwell</a>), o <a href="http://www.softwell.com.br/maker/" title="MAKER" target="_blank">Maker</a> foi anunciado como uma ferramenta que visa aumentar a produtividade no desenvolvimento de sistemas através da geração automática de código.  O usuário acessa o sistema, define a lógica do negócio usando  alguns fluxogramas, o Maker gera o código, e algum tempo depois temos um sistema inteiramente pronto, sem ter conhecimento algum em nenhuma linguagem de programação. Mágico!!!</p>
<p>A idéia é até boa, apesar de não ser nova, nem tampouco revolucionária. A divulgação do Maker é um pouco pretensiosa, uma passada rápida pelo texto e qualquer desenvolvedor saberia que não é sequer uma revolução em  matéria de desenvolvimento de sistemas. Veja algumas pérolas:</p>
<p><em>&#8220;Uma técnica completamente nova de desenvolvimento.&#8221;</em></p>
<p><span id="more-26"></span></p>
<p><em>Assim como Windows substituiu o DOS, como sistema operacional, e hoje é usado por bilhões de internautas, o Maker terá impacto semelhante na área de programação.</em></p>
<p>Pensando desa forma, as faculdades de informática já poderiam começar a pensar em reformular suas grades curriculares.  Poderíamos  abolir quem sabe algumas matérias como  JAVA e .NET por exemplo, quem sabe o Pascal? Bastaria cria a matéria  &#8220;Desenvolvimento Orientado ao Maker&#8221;. Nada de lógica nem algorítimos. Uma piada!!!</p>
<p>Existem Softwares semelhantes no mercado, como exemplo o  <a href="http://pt.wikipedia.org/wiki/GeneXus" title="GeneXus" target="_blank">GeneXus</a>, a descrição é a mesma.</p>
<p><em>O </em><a href="http://pt.wikipedia.org/wiki/GeneXus" title="GeneXus" target="_blank">GeneXus</a><em> é mais que um simples gerador de código, ele segue a idéia de descrever todos os objetos em uma base de conhecimento e, através dela, gerar todos os programas necessários para a aplicação, desde a própria aplicação e os objetos no banco de dados. Tudo isso é feito de forma automática.</em></p>
<ul>
<li><em>O </em><a href="http://pt.wikipedia.org/wiki/GeneXus" title="GeneXus" target="_blank">GeneXus</a><em> trabalha com uma grande variedade de plataformas, linguagens e bancos de dados.</em></li>
</ul>
<ul>
<li><em> Simplifica e automatiza a criação de aplicações corporativas .</em></li>
</ul>
<ul>
<li><em> Permite um ganho alto de produtividade em pequenas, médias e grandes aplicações.</em></li>
</ul>
<ul>
<li><em>Dá ao programador uma visão ampla de todo o negócio.</em></li>
</ul>
<ul>
<li><em> Relaciona todas as informações da aplicação tornando muito facil a manutenção.</em></li>
</ul>
<ul>
<li><em>Permite reutilização do código.</em></li>
</ul>
<ul>
<li><em> Cria e reorganiza automaticamente o banco de dados.</em></li>
</ul>
<ul>
<li><em> Permite fácil desenvolvimento de aplicações WEB.</em></li>
</ul>
<ul>
<li><em> Permite reutilização de regras de negócio com a utilização componentes de negócio.</em></li>
</ul>
<ul>
<li><em>Incorpora novas funcionalidades como AJAX(apenas para pequenas funcionalidades), EJBs sem custo adicional para a ferrramenta.</em></li>
</ul>
<ul>
<li><em> Facilita a conversão entre linguagens e plataformas quando as mesmas se tornam defasadas ou são descontinuadas.</em></li>
</ul>
<ul>
<li>Bla, Bla, Bla&#8230;.</li>
</ul>
<p>Segundo a empresa já foram desenvolvidos N aplicativos com o Maker, entre eles folha de pagamento, controle de almoxarifado arrecadação de tributos e até mesmo uma ERP.</p>
<p>Sistemas proprietários se saem muito bem dentro do escopo em que que foram definidos. E se de repente eu precisar de alterações mais bruscas? Só resta lamentar&#8230;</p>
<p>Vale lembrar que não tenho nada contra a softwell e ao maker, nunca  cheguei a testar a ferramenta. Esponho apenas minha opinião como um desenvolvedor hávido por qualidade de código e boas práticas de desenvolvimento.</p>
<p>Como já dizia o <a href="http://fernandofranzini.wordpress.com/" title="Fernando Franzini -  É Java na Galera!" target="_blank">Fernando Franzini</a>: &#8220;O uso de ferramentas RAD aonde o foco é arrastar e soltar, resulta em muitos desenvolvedores folgados, burros e com uma serie de vícios&#8221;.</p>
<p>Leia a matéria na íntegra:<br />
<a href="http://www.prodeb.gov.br/exibe_noticia.asp?cod_noticia=1622" title="PRODEB" target="_blank">http://www.prodeb.gov.br/exibe_noticia.asp?cod_noticia=1622</a></p>
<p>Abraço a todos!</p>
<p>Caique Dourado</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/12/27/empresa-baiana-sai-na-frente-da-microsoft/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>O limão também usa Google Apps</title>
		<link>http://www.caiquedourado.com.br/2007/12/12/o-limao-tambem-usa-google-apps/</link>
		<comments>http://www.caiquedourado.com.br/2007/12/12/o-limao-tambem-usa-google-apps/#comments</comments>
		<pubDate>Wed, 12 Dec 2007 22:31:16 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Mercado]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[limao]]></category>
		<category><![CDATA[Web2.0]]></category>

		<guid isPermaLink="false">http://caiquedourado.com/2007/12/12/o-limao-tambem-usa-google-apps/</guid>
		<description><![CDATA[
Fuçando o site do limao.com.br descobri que eles usam o Google Apps para o webmail. Não sei se recordam, mas tempos atrás escrevi um artigo demonstrando minhas impressões sobre a ferramenta em alguns testes que pude realizar. As vantagens são imensas. O limão se livrou da responsabilidade de desenvolver um sistema de webmail robusto o [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://teste.caiquedourado.com.br/wp-content/uploads/2007/12/webmail_limao.jpg"><img src="http://teste.caiquedourado.com.br/wp-content/uploads/2007/12/webmail_limao.jpg" alt="webmail_limao" title="webmail_limao" width="560" height="251" class="alignnone size-full wp-image-101" /></a></p>
<p>Fuçando o site do <a title="Limão" href="http://www.limao.com.br" target="_blank">limao.com.br</a> descobri que eles usam o Google Apps para o webmail. Não sei se recordam, mas tempos atrás escrevi um <a title="Experimentando o Google Apps" href="http://caiquedourado.com/2007/10/18/experimentando-o-google-apps/" target="_blank">artigo</a> demonstrando minhas impressões sobre a ferramenta em alguns testes que pude realizar. As vantagens são imensas. O limão se livrou da responsabilidade de desenvolver um sistema de webmail robusto o suficiente para aguentar  seus milhares de usuários. Alguém duvida? acessem <a title="Webmail limão" href="http://webmail.limao.com.br/" target="_blank">http://webmail.limao.com.br/</a></p>
<p>Segundo <a title="Comentários" href="http://www.colmeia.tv/blog/2007/10/29/limaocombr/" target="_blank">comentários</a> publicados em posts no blog da Colméia, o limão está implantando APIs e frameworks para que os desenvolvedores possam  criar gadgets para o limão e para o comlimão. Infelizmente ainda não há data prevista para o lançamento.</p>
<p>Veja mais&#8230;<br />
<a title="limão.com.br" href="http://www.limao.com.br" target="_blank">www.limao.com.br</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/12/12/o-limao-tambem-usa-google-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Orientação a Objetos com JavaScript</title>
		<link>http://www.caiquedourado.com.br/2007/12/11/orientacao-a-obejetos-com-javascript/</link>
		<comments>http://www.caiquedourado.com.br/2007/12/11/orientacao-a-obejetos-com-javascript/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 14:11:43 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Orientação a Objetos]]></category>

		<guid isPermaLink="false">http://caiquedourado.com/2007/12/11/orientacao-a-obejetos-com-javascript/</guid>
		<description><![CDATA[O Henrrique publicou um tutorial em português com os conceitos básicos sobre orientação a objetos em JavaScript.
http://www.heap.com.br/docs/JavaScript-OOP.txt
Seguindo a linha, vai o link do MSDN &#8220;Crie aplicativos Web avançados com técnicas orientadas a objetos&#8221;
http://msdn.microsoft.com/msdnmag/issues/07/05/JavaScript/Default.aspx?loc=pt
Vale a pena comferir!
]]></description>
			<content:encoded><![CDATA[<p>O Henrrique publicou um tutorial em português com os conceitos básicos sobre orientação a objetos em JavaScript.</p>
<p><a href="http://www.heap.com.br/docs/JavaScript-OOP.txt" title="OOP com JavaScript" target="_blank">http://www.heap.com.br/docs/JavaScript-OOP.txt</a></p>
<p>Seguindo a linha, vai o link do MSDN &#8220;Crie aplicativos Web avançados com técnicas orientadas a objetos&#8221;</p>
<p><a href="http://msdn.microsoft.com/msdnmag/issues/07/05/JavaScript/Default.aspx?loc=pt" title="OOP em JavaScript" target="_blank">http://msdn.microsoft.com/msdnmag/issues/07/05/JavaScript/Default.aspx?loc=pt</a></p>
<p>Vale a pena comferir!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/12/11/orientacao-a-obejetos-com-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vagas no Meebo</title>
		<link>http://www.caiquedourado.com.br/2007/12/11/vagas-no-meebo/</link>
		<comments>http://www.caiquedourado.com.br/2007/12/11/vagas-no-meebo/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 15:04:12 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mercado]]></category>
		<category><![CDATA[meebo]]></category>
		<category><![CDATA[Web2.0]]></category>

		<guid isPermaLink="false">http://caiquedourado.com/2007/12/11/vagas-no-meebo/</guid>
		<description><![CDATA[O Meebo, conhecido cliente de mensagens instantâneas que roda na Web, está disponilbizando já a algum tempo algumas vagas para seu time de deselvolvimento.
As vagas são pelo menos inusitadas! caso deseje se candidatar para alguma delas você deve ser no mínimo um monstro em JavaScript, Action Script, C++ ou no designer de interfaces.
Confira as opotunidades:
JavaScript [...]]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://www.meebo.com" title="Meebo" target="_blank">Meebo</a>, conhecido cliente de mensagens instantâneas que roda na Web, está disponilbizando já a algum tempo algumas vagas para seu time de deselvolvimento.<br />
As vagas são pelo menos inusitadas! caso deseje se candidatar para alguma delas você deve ser no mínimo um monstro em JavaScript, Action Script, C++ ou no designer de interfaces.</p>
<p>Confira as opotunidades:</p>
<p><a href="http://blog.meebo.com/?page_id=254" title="JavaScript Ninja" target="_blank">JavaScript Ninja</a><br />
<a href="http://blog.meebo.com/?page_id=377" title="ActionScript Assassin" target="_blank">ActionScript Assassin</a><br />
<a href="http://blog.meebo.com/?page_id=255" title="Server Samurai (C/C++)" target="_blank"> Server Samurai (C/C++)</a><br />
<a href="http://blog.meebo.com/?page_id=380" title="Interaction Designer" target="_blank"> Interaction Designer</a></p>
<p><span id="more-19"></span></p>
<p>Desculpem o egoísmo mas vou descrever somente minha área de interesse:</p>
<p><strong>JavaScript Ninja</strong></p>
<p>Domínio total e absoluto do JavaScript rs&#8230; Ser graduado em Ciência da Computação ou um curso equivalente é excencial, ter no mínimo 2 anos de experiência como desenvolvedor de Software. Ter facilidade de comunicação e de trabalhar em equipe, acrescente aí as normas da w3c o IE Box Model, usar o Firebug para depuração de Scripts, conhecer DHTML, CGI, CSS, e AJAX e ter familiaridade com alguns frameworks JavaScript disponíveis no mercado, como Dojo, Prototype,  e Rico.</p>
<p>As responsabilidades são trabalhar junto com a equipe para avaliar a viabilidade/prioridade de  novos recursos para os produtos, desenvolver ferramentas de debug (se necessário). Colaborar com os programadores do lado server para otimização dos recursos. Manter-se atualizado com as novas tecnologias. Sugerir novas práticas e acompanhar os releases.</p>
<p>Só isso? Claro que não&#8230; Responda o teste abaixo e envie para <a href="mailto:jobs@meebo.com" title="jobs@meebo.com" target="_blank">jobs@meebo.com</a>. Se você for bom e der sorte certamente estará contratado:</p>
<p>1.  When does div.setAttribute(”###”) not equal div.###?</p>
<p>2.  What’s the difference between these two statements:</p>
<blockquote><p>        a.  var x = 3;<br />
b.  x = 3;</p></blockquote>
<p>3.  What’s the difference between:</p>
<blockquote><p>        a.  !!(obj1 &amp;&amp; obj2)<br />
b.  (obj1 &amp;&amp; obj2)</p></blockquote>
<p>4.  Write a one-line piece of JavaScript code that concatenates all strings passed into a function:</p>
<blockquote><p>       function concatenate(/*any number of strings*/) {</p>
<p>var string = /*your one line here*/<br />
return string;<br />
}</p></blockquote>
<p>5.  What do these two examples have in common?</p>
<p>Example 1:</p>
<blockquote><p>         var obj = document.getElementById(’adiv’);<br />
document.getElementById(’adiv’).ptr = obj;</p></blockquote>
<p>Example 2:</p>
<blockquote><p>          function assignClick() {<br />
var el = document.createElement(’div’);</p>
<p>function handleClick() {<br />
el.innerHTML = ‘clicked!’;<br />
}</p>
<p>el.attachEvent(”onclick”, handleClick);<br />
}</p></blockquote>
<p><strong>O ambiente de trabalho</strong></p>
<p><img src="http://farm1.static.flickr.com/99/285469606_9fd789b91f.jpg" alt="Meebo" height="281" width="500" /></p>
<p><img src="http://farm1.static.flickr.com/106/285468722_fd8d201fc3.jpg?v=0" alt="Meebo" height="281" width="500" /></p>
<p>Saiba mais em <a href="http://jobs.meebo.com/" title="Meebo Jobs" target="_blank">http://jobs.meebo.com </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/12/11/vagas-no-meebo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conversão de Tipos &#8211; Convert x Parse</title>
		<link>http://www.caiquedourado.com.br/2007/12/09/net-convert-x-parse/</link>
		<comments>http://www.caiquedourado.com.br/2007/12/09/net-convert-x-parse/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 00:43:09 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Artigos]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://caiquedourado.com/2007/12/09/net-convert-x-parse/</guid>
		<description><![CDATA[Esse artigo tem o objetivo de comparar a utilização dos métodos Convert e Parse, comuns aos tipos do .NET Framework.  A maioria dos desenvolvedores costuma utilizar o Convert. Eu também não fujo a regra.
Utilizaremos um utilitário para realizar a reflexão nos  métodos e comparar as diferenças entre os dois. Segue como  dica [...]]]></description>
			<content:encoded><![CDATA[<p>Esse artigo tem o objetivo de comparar a utilização dos métodos Convert e Parse, comuns aos tipos do .NET Framework.  A maioria dos desenvolvedores costuma utilizar o Convert. Eu também não fujo a regra.</p>
<p>Utilizaremos um utilitário para realizar a reflexão nos  métodos e comparar as diferenças entre os dois. Segue como  dica o <a title="Reflector.NET" href="http://www.aisto.com/roeder/dotnet/" target="_blank">Reflector.NET</a> indicado pelo Eduardo Miranda na 5° edição da revista Mundo.net</p>
<p><span id="more-18"></span></p>
<p>Vamos tomar como exemplo a conversão de uma String em um  objeto do tipo Int32. Para realizar a conversão poderemos utilizar <span style="color: #000000;">Convert.ToInt32 ou </span><span style="color: #000000;">Int32.Parse. </span>Confira as imagens abaixo:</p>
<p><strong><span style="color: #000000;">Convert.ToInt32</span></strong></p>
<p><a title="convert_x_parse_1" href="http://caiquedourado.com/wp-content/uploads/2007/12/2099375866_a1325e95ff_o.jpg"><img src="http://caiquedourado.com/wp-content/uploads/2007/12/2099375866_a1325e95ff_o.jpg" alt="convert_x_parse_1" /></a></p>
<pre class="brush: csharp;">
public static int ToInt32(string value)
{
if (value == null)
{
return 0;
}
return int.Parse(value, CultureInfo.CurrentCulture);
}
</pre>
<p><span style="color: #000000;"><strong>Int32.Parse</strong></span></p>
<p><a title="convert_x_parse_2" href="http://caiquedourado.com/wp-content/uploads/2007/12/2098596421_636df0ae89.jpg"><img src="http://caiquedourado.com/wp-content/uploads/2007/12/2098596421_636df0ae89.jpg" alt="convert_x_parse_2" /></a></p>
<pre class="brush: csharp;">
public static int Parse(string s)
{
return Number.ParseInt32(s, NumberStyles.Integer, NumberFormatInfo.CurrentInfo);
}
</pre>
<p>Repare que ao utilizar o &#8220;<span style="color: #000000;">Convert&#8221; o valor é testado e logo após é passado para o método &#8220;Parse&#8221;. </span></p>
<pre class="brush: csharp;">
if (value == null)
{
return 0;
}
return int.Parse(value, CultureInfo.CurrentCulture);
</pre>
<p><span style="color: #000000;">O teste acontece para assegurar que o parâmetro não receba null e uma exceção seja disparada.  Se o parâmetro for nulo a função retorna 0 (zero)  se não, passa o parâmetro para o  método Parse.</span></p>
<p>Você deve estar se perguntando; &#8220;Se ao utilizar o Convert o método Parse também é chamado, seria melhor utilizar logo o Parse, não?&#8221; O Parse de fato é mais rápido, pois não testa antes se o valor é nulo. É claro que se assegurarmos que o parâmetro nunca receba null será desnecessário utilizar o Convert pois um if a mais estará sendo executado.</p>
<p>A mesma regra vale para a conversão de outros tipos do .NET como Char, String, bool&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/12/09/net-convert-x-parse/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SETRE &#8211; Portal do Trabalho Decente</title>
		<link>http://www.caiquedourado.com.br/2007/12/06/setre-portal-do-trabalho-decente/</link>
		<comments>http://www.caiquedourado.com.br/2007/12/06/setre-portal-do-trabalho-decente/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 06:01:49 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[VERSiTE]]></category>

		<guid isPermaLink="false">http://caiquedourado.com/2007/12/06/projeto-finalizado-setre-portal-do-trabalho-decente/</guid>
		<description><![CDATA[
A VERSiTE acaba de finalizar o Portal do Trabalho Decente.  Projeto desenvolvido pela SETRE (Secretaria do Trabalho, Emprego, Renda e Esporte do Estado da Bahia) para divulgação do tema.
Fiquei impressionado!!!  O Site foi publicado às 18:30 e agora (01:46) , 4 horas depois o site já aparece como o 1° da lista ao [...]]]></description>
			<content:encoded><![CDATA[<p><a class="tt-flickr" href="http://www.flickr.com/photos/caiquedourado/2089886307/"><img src="http://farm3.static.flickr.com/2350/2089886307_a296af1e46.jpg" border="0" alt="SETRE - Portal do Trabalho Decente" width="500" height="352" /></a></p>
<p>A <a title="VERSiTE" href="http://www.versite.com.br" target="_blank">VERSiTE</a> acaba de finalizar o Portal do Trabalho Decente.  Projeto desenvolvido pela SETRE (Secretaria do Trabalho, Emprego, Renda e Esporte do Estado da Bahia) para divulgação do tema.</p>
<p>Fiquei impressionado!!!  O Site foi publicado às 18:30 e agora (01:46) , 4 horas depois o site já aparece como o 1° da lista ao realizar uma busca no Google pela palavra SETRE. O fato vem demonstrar a importância de se escrever um HTML limpo e bem estruturado, respeitando a semântica para facilitar o acesso dos robôs de busca ao conteúdo da página.</p>
<p><strong>Tecnologias:</strong></p>
<p>Client-Side:<br />
HTML, CSS, JavaScript e as Biblioteca Prototype e Scriptaculous</p>
<p>Server-Side:<br />
ASP (Active Server Pages) + Sistema Gerenciador de Conteúdo</p>
<p>Link:<br />
<a title="SETRE - Portal do Trabalho Decente" href="http://www.setre.ba.gov.br/trabalhodecente/" target="_blank">http://www.setre.ba.gov.br/trabalhodecente/ </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/12/06/setre-portal-do-trabalho-decente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Radar Comunicação</title>
		<link>http://www.caiquedourado.com.br/2007/11/28/radar-comunicacao/</link>
		<comments>http://www.caiquedourado.com.br/2007/11/28/radar-comunicacao/#comments</comments>
		<pubDate>Wed, 28 Nov 2007 13:20:34 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[2Pontos]]></category>

		<guid isPermaLink="false">http://www.caiquedourado.com.br/?p=337</guid>
		<description><![CDATA[
Implantação do Sistema Gerenciador de Conteúdo &#8211; Manager Point
Server-Side:
ASP.NET, SQL Server
Link:
 www.radarcomunicacao.com.br 
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-338" title="radar comunicação" src="http://www.caiquedourado.com.br/wp-content/uploads/2009/05/1415184586_5cebb84119_o.jpg" alt="radar comunicação" width="560" height="450" /></p>
<p>Implantação do Sistema Gerenciador de Conteúdo &#8211; Manager Point</p>
<p>Server-Side:<br />
ASP.NET, SQL Server</p>
<p>Link:<br />
<a title="Ramarajara" href="http://www.radarcomunicacao.com.br" target="_blank"> www.radarcomunicacao.com.br </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/11/28/radar-comunicacao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criando Aplicativos para o Orkut</title>
		<link>http://www.caiquedourado.com.br/2007/11/17/criando-aplicativos-para-o-orkut/</link>
		<comments>http://www.caiquedourado.com.br/2007/11/17/criando-aplicativos-para-o-orkut/#comments</comments>
		<pubDate>Sat, 17 Nov 2007 23:43:20 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Artigos]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[aplicativos]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[opensocial]]></category>
		<category><![CDATA[orkut]]></category>

		<guid isPermaLink="false">http://caiquedourado.com/2007/11/17/criando-aplicativos-para-o-orkut/</guid>
		<description><![CDATA[O Google lançou no final de outubro a API Open Social. A  OpenSocial permite que se desenvolva aplicações para o MySpace, o Orkut ou LinkeIn, e ou outras redes sociais.
Para desenvolver e testar os aplicativos no Orkut é necessário solicitar um convite na página http://code.google.com/support/opensocialsignup. O Orkut passa a ser acessado pelo endereço:  [...]]]></description>
			<content:encoded><![CDATA[<p>O Google lançou no final de outubro a API Open Social. A  <span id="ctl00_bcr_ThisContent">OpenSocial permite que se desenvolva </span><span id="ctl00_bcr_ThisContent">aplicações para o MySpace, o Orkut ou LinkeIn, e ou </span><span id="ctl00_bcr_ThisContent">outras redes sociais.</span></p>
<p>Para desenvolver e testar os aplicativos no Orkut é necessário solicitar um convite na página <a title="Solicitar Convite" href="http://code.google.com/support/opensocialsignup" target="_blank">http://code.google.com/support/opensocialsignup</a>. O Orkut passa a ser acessado pelo endereço:  <a title="Sandbox Orkut" href="http://sandbox.orkut.com/" target="_blank">http://sandbox.orkut.com/</a></p>
<p>O Tutorial que acompanha este artigo mostra passo a passo como criar um aplicativo simples para o Orkut. O aplicativo irá ler um XML com notícias e exibirá os links na página principal do Orkut.</p>
<p>Repare na imagem abaixo que algumas alterações foram realizadas na página inicial, que agora além de mostrar os aplicativos mostra também seus videos e fotos.</p>
<p><a class="tt-flickr" href="http://www.flickr.com/photos/caiquedourado/2039632287/"><img src="http://farm3.static.flickr.com/2112/2039632287_88a9e8ba6a_o.jpg" border="0" alt="Aplicativo na Página Inicial" width="500" height="715" /></a></p>
<p><span id="more-15"></span></p>
<p>Iremos mostrar as últimas notícias de minha cidade natal  rs&#8230; Os dados serão resgatados do  site <a title="N@Midia" href="http://www.jdnamidia.com.br">www.jdnamidia.com.br<br />
</a><br />
<a class="tt-flickr" href="http://www.flickr.com/photos/caiquedourado/2039577247/"><img src="http://farm3.static.flickr.com/2320/2039577247_618844f3ef.jpg" border="0" alt="Notícias do N@Midia no Orkut" width="500" height="236" /></a></p>
<p>Configurações:</p>
<p><a class="tt-flickr" href="http://www.flickr.com/photos/caiquedourado/2039577375/"><img src="http://farm3.static.flickr.com/2231/2039577375_3b653ae335.jpg" border="0" alt="Notícias do N@Midia no Orkut" width="500" height="234" /></a></p>
<p>Criaremos um Handler para gerar o XML</p>
<p><strong>Gerando o XML</strong><br />
Precisamos gerar o XML com a lista de Notícias. Se eu não estivesse usando o .Net essa tarefa seria um pouco mais trabalhosa, pois teria que gerar o XML na mão fazendo um Loop nos registros do banco.<br />
O DataSet possui uma propriedade chamada WriteXml, essa propriedade varre o DataSet e gera o XML com ou sem o Schema, podendo salvá-lo em um arquivo físico ou em um Stream.</p>
<pre class="brush: csharp;">
ds.WriteXml(context.Response.Output, XmlWriteMode.IgnoreSchema);
</pre>
<p>O primeiro parâmetro informa ao DataSet para enviar o  XML para o context.Response.Output, que é a saída do nosso Httphandler. O segundo parâmetro &#8216;XmlWriteMode.IgnoreSchema&#8217; faz com que sejam gerados somente os dados, ignorando as definições de campos.</p>
<pre class="brush: csharp;">
&lt;%@ WebHandler Language=&quot;C#&quot; Class=&quot;gadget_noticias&quot; %&gt;

using System;
using System.Web;
using System.Configuration;
using System.Data;
using System.IO;
using MySql.Data.MySqlClient;

public class gadget_noticias : IHttpHandler {

public void ProcessRequest (HttpContext context) {

Int32 qntNoticias;

//Quantidade de Notícias, passado via QueryString
if (!Int32.TryParse(context.Request.QueryString[&quot;q&quot;], out qntNoticias))
{
//Se não for passado um número válido assume valor 5
qntNoticias = 5;
}

try
{

using (MySqlConnection conn = new MySqlConnection(ConfigurationManager.AppSettings[&quot;conexaoMySql&quot;]))
{

//Resgata as últimas notícias do Site
String sqlStr = String.Format(&quot;SELECT id, titulo, data FROM noticias_dinamicas ORDER BY id DESC Limit 0, {0}&quot;, qntNoticias);

DataSet ds = new DataSet(&quot;dsNoticias&quot;);
MySqlDataAdapter AptNoticias = new MySqlDataAdapter(sqlStr, conn);
AptNoticias.Fill(ds, &quot;noticias&quot;);

//Formato de Saída
context.Response.ContentType = &quot;text/xml&quot;;

//Transforma o DataSet em XML e envia para o Cliente
ds.WriteXml(context.Response.Output, XmlWriteMode.IgnoreSchema);

}

}
catch
{
//Exibe uma Mensagem de erro
context.Response.ContentType = &quot;text/plain&quot;;
context.Response.Write(&quot;Ocorreu um erro ao exibir notícias!&quot;);
}

}
</pre>
<p>Confira o resultado:<br />
<a title="Notícias N@Midia" href="http://projetos.atualizador.com/gadget_noticias.ashx" target="_blank">http://projetos.atualizador.com/gadget_noticias.ashx</a></p>
<p><strong>Configurando o Aplicativo </strong><br />
As propriedades abaixo controlam a exibição do aplicativo na página.  Título, Url, Autor, Descrição e Thumbnail. O Thumb pode ser um PNG transparente.</p>
<pre class="brush: xml;">

title=&quot;N@Midia&quot;
title_url=&quot;http://projetos.atualizador.com/gadget_noticias.ashx&quot;
author=&quot;Caique Dourado&quot;
author_email=&quot;kellowdourado@gmail.com&quot;
description=&quot;Notcias recentes do N@Midia.&quot;
thumbnail=&quot;http://www.jdnamidia.com.br/imagens/logo_transparente.png&quot;
&gt;
</pre>
<p>Informamos que o aplicativo deve ter altura variável.</p>
<pre class="brush: xml;">
</pre>
<p>Iremos criar uma propriedade do tipo &#8216;enum&#8217; para armazenar a quantidade de notícias que devem ser exibidas pelo aplicativo. O usuário pode selecionar valores de 1 a 10. O Valor padrão é 5.</p>
<pre class="brush: xml;">
</pre>
<p>Criamos a função montaLinks() que montará os links varrrendo o XML.</p>
<pre class="brush: jscript;">
function montaLinks()
</pre>
<p>Resgatamos a propriedade quantidade</p>
<pre class="brush: jscript;">
var prefs = new _IG_Prefs(__MODULE_ID__);
var quantidade = prefs.getString(&quot;quantidade&quot;);
</pre>
<p>URL do arquivo XML que contém as notícias</p>
<pre class="brush: jscript;">
var url = &quot;http://projetos.atualizador.com/gadget_noticias.ashx?q=&quot; + quantidade;
</pre>
<p>A função _IG_FetchXmlContent se resgata os dados do XML. Se não houver retorno é exibido o texto &#8216;Dados inválidos&#8217;.</p>
<pre class="brush: jscript;">
_IG_FetchXmlContent(url, function (response) {

if (response == null || typeof(response) != &quot;object&quot; || response.firstChild == null)
{
_gel(&quot;conteudo&quot;).innerHTML = &quot;&lt;em&gt;Dados inválidos.&lt;/em&gt;&quot;;
return;
}
</pre>
<p>Varremos todos os nós do XML que contém a tag &#8216;noticias&#8217; e montamos os links usando o id, data e título. Ao terminar o laço inserimos os links na Div &#8216;conteúdo&#8217;</p>
<pre class="brush: jscript;">
var html = &quot;&quot;;
var itemList = response.getElementsByTagName(&quot;noticias&quot;);

for (var i = 0; i &lt; itemList.length ; i++)
{
var nodeList = itemList.item(i).childNodes;

for (var j = 0; j &lt; nodeList.length ; j++) {

var node = nodeList.item(j);

if (node.nodeName == &quot;id&quot;)
{
var idNoticia = node.firstChild.nodeValue;
}

if (node.nodeName == &quot;data&quot;)
{
var data = node.firstChild.nodeValue;
}

if (node.nodeName == &quot;titulo&quot;)
{
var titulo = node.firstChild.nodeValue;
}

}

html += &quot;
&quot;; html += &quot;&lt;a style=&quot;\&quot; href=&quot;\&quot; target=&quot;\'_blank\'&quot;&gt;&quot; + data + &quot; - &quot; + titulo + &quot;&lt;/a&gt;&quot;; html += &quot;

&quot;;
}

_gel(\'conteudo\').innerHTML = html;
</pre>
<p>Ajusta o tamanho do Frame utilizado pelo aplicativo</p>
<pre class="brush: jscript;">
_IG_AdjustIFrameHeight();
</pre>
<p>Registramos a função montaLinks no evento OnLoad</p>
<pre class="brush: jscript;">
_IG_RegisterOnloadHandler(montaLinks);
</pre>
<p>Arquivo Completo:</p>
<pre class="brush: xml;">

title=&quot;N@Midia&quot;
title_url=&quot;http://projetos.atualizador.com/gadget_noticias.ashx&quot;
author=&quot;Caique Dourado&quot;
author_email=&quot;kellowdourado@gmail.com&quot;
description=&quot;Notcias recentes do N@Midia.&quot;
thumbnail=&quot;http://www.jdnamidia.com.br/imagens/logo_transparente.png&quot;
&gt;

&lt;!--[CDATA[
&lt;div id=&quot;conteudo&quot;&gt;&lt;/div&gt;
&lt;mce:script type=&quot;text/javascript&quot;&gt;&lt;!

function montaLinks() {

var prefs = new _IG_Prefs(__MODULE_ID__);  var quantidade = prefs.getString(&quot;quantidade&quot;); var url = &amp;quot;http://projetos.atualizador.com/gadget_noticias.ashx?q=&amp;quot; + quantidade;

_IG_FetchXmlContent(url, function (response) {

if (response == null || typeof(response) != &quot;object&quot; || response.firstChild == null)  	{  		_gel(&quot;conteudo&quot;).innerHTML = &quot;&lt;i&gt;Dados inválidos.&lt;/i&gt;&quot;; 		return;  	}

var html = &quot;&quot;; 	var itemList = response.getElementsByTagName(&quot;noticias&quot;);

for (var i = 0; i &lt; itemList.length ; i++)  	{

var nodeList = itemList.item(i).childNodes;

for (var j = 0; j &lt; nodeList.length ; j++) {

var node = nodeList.item(j);

if (node.nodeName == &quot;id&quot;) 			{  				var idNoticia = node.firstChild.nodeValue; 			}

if (node.nodeName == &quot;data&quot;) 			{ 				 var data = node.firstChild.nodeValue;  			}

if (node.nodeName == &quot;titulo&quot;) 			{ 				var titulo = node.firstChild.nodeValue; 			}

}

html += &quot;

&quot;; html += &quot;&lt;a href=&quot;\\\&quot; mce_href=&quot;\\\&quot;'http://www.jdnamidia.com.br/ver_noticia_novo.php?id=&quot; + idNoticia + &quot;\\\' target=\\\'_blank\\\' style=&quot;\\\&quot; mce_style=&quot;\\\&quot;'font-size:12px; color:#02679C;\\\'&gt;&quot; + data + &quot; - &quot; + titulo + &quot;&lt;/a&gt;&quot;; html += &quot;

&quot;; 	}

_gel(\\\'conteudo\\\').innerHTML = html; 	_IG_AdjustIFrameHeight();

}); }

_IG_RegisterOnloadHandler(montaLinks);

// --&gt;

]]--&gt;
</pre>
<p>Confira o resultado:<br />
<a title="Arquivo de Configuração do Aplicativo" href="http://projetos.atualizador.com/gadget_noticias_namidia.xml" target="_blank">http://projetos.atualizador.com/gadget_noticias_namidia.xml</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/11/17/criando-aplicativos-para-o-orkut/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ASP.NET ViewState Helper</title>
		<link>http://www.caiquedourado.com.br/2007/11/11/aspnet-viewstate-helper/</link>
		<comments>http://www.caiquedourado.com.br/2007/11/11/aspnet-viewstate-helper/#comments</comments>
		<pubDate>Sun, 11 Nov 2007 05:52:26 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[viewstate]]></category>

		<guid isPermaLink="false">http://caiquedourado.com/2007/11/11/aspnet-viewstate-helper/</guid>
		<description><![CDATA[O ASP.NET ViewState Helper destina-se a ajudar os desenvolvedores web a otimizar o uso do ViewState em suas páginas.
Ao diminuir o tamanho do ViewState, você estará diminuindo a quantidade de dados trafegados entre o servidor e o cliente,  melhorando o desempenho geral das páginas de sua aplicação.
A ferramenta permite que você analise as páginas [...]]]></description>
			<content:encoded><![CDATA[<p>O ASP.NET ViewState Helper destina-se a ajudar os desenvolvedores web a otimizar o uso do ViewState em suas páginas.</p>
<p>Ao diminuir o tamanho do ViewState, você estará diminuindo a quantidade de dados trafegados entre o servidor e o cliente,  melhorando o desempenho geral das páginas de sua aplicação.</p>
<p>A ferramenta permite que você analise as páginas em tempo real enquanto navega. São exibidas informações detalhadas para ajudá-lo a identificar gargalos de desempenho que estejam sendo causados pelo tamanho do ViewState.</p>
<p><a href="http://www.flickr.com/photos/caiquedourado/1959996818/" class="tt-flickr"><img src="http://farm3.static.flickr.com/2303/1959996818_634e423970.jpg" alt="ASP.NET ViewState Helper" border="0" height="254" width="500" /></a></p>
<p><span id="more-13"></span></p>
<p>São exibidos os seguintes detalhes sobre cada página:</p>
<ul>
<li>Page Size: Tamanho total da página selecionada</li>
<li>ViewState size: Tamanho do campo ViewState</li>
<li>ViewState %: Percentual ocupado pelo ViewState no tamanho total da página</li>
<li>Markup size: Tamanho das marcações HTML (textos não visíveis) na página</li>
<li>Markup %: Percentual de marcações HTML no tamanho total da página</li>
</ul>
<p><strong>Decodificando o ViewState</strong><br />
Ao dar um duplo clique em uma página da lista, é aberta a  janela ViewState Decoder. Essa funcionalidade permite decodificar o ViewState da página e transformá-lo em texto plano. O resultado da decodificação é exibido em uma estrutura de árvore.</p>
<p><a href="http://www.flickr.com/photos/caiquedourado/1959136393/" class="tt-flickr"><img src="http://farm3.static.flickr.com/2262/1959136393_edd877c0f5.jpg" alt="viewstate decoder" border="0" height="375" width="500" /></a></p>
<p><strong>Download</strong></p>
<p>O Software está disponível em versões 32 e 64 bits.</p>
<p><a href="http://www.binaryfortress.com/Files/ASPNETViewStateHelper/ASP.NET_ViewState_Helper_v0.6_x86.exe" target="_blank">ASP.NET ViewState Helper v0.6 for x86</a> (310 KB)<br />
<a href="http://www.binaryfortress.com/Files/ASPNETViewStateHelper/ASP.NET_ViewState_Helper_v0.6_x64.exe" target="_blank">ASP.NET ViewState Helper v0.6 for x64</a> (310 KB)</p>
<p>Artigo original: <a href="http://www.binaryfortress.com/aspnet-viewstate-helper/" title="http://www.binaryfortress.com/aspnet-viewstate-helper/ " target="_blank">http://www.binaryfortress.com/aspnet-viewstate-helper/ </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/11/11/aspnet-viewstate-helper/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ramarajara</title>
		<link>http://www.caiquedourado.com.br/2007/10/28/ramarajara/</link>
		<comments>http://www.caiquedourado.com.br/2007/10/28/ramarajara/#comments</comments>
		<pubDate>Sun, 28 Oct 2007 13:11:39 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[2Pontos]]></category>

		<guid isPermaLink="false">http://www.caiquedourado.com.br/?p=334</guid>
		<description><![CDATA[
Chat On-Line:
Sistema de Chat para atendimento ao cliente
Client-Side:
HTML, CSS, JavaScript
Server-Side:
ASP, MS Acess
Link:
www.ramarajara.com
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-333" title="Ramarajara" src="http://www.caiquedourado.com.br/wp-content/uploads/2009/05/1414303889_8d896d623c_o.jpg" alt="Ramarajara" width="560" height="600" /></p>
<p><strong>Chat On-Line:</strong></p>
<p>Sistema de Chat para atendimento ao cliente</p>
<p>Client-Side:<br />
HTML, CSS, JavaScript</p>
<p>Server-Side:<br />
ASP, MS Acess</p>
<p>Link:<br />
<a title="Ramarajara" href="http://www.ramarajara.com/" target="_blank">www.ramarajara.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/10/28/ramarajara/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Colégio Cândido Portinari</title>
		<link>http://www.caiquedourado.com.br/2007/10/25/colegio-candido-portinari/</link>
		<comments>http://www.caiquedourado.com.br/2007/10/25/colegio-candido-portinari/#comments</comments>
		<pubDate>Thu, 25 Oct 2007 12:55:37 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[2Pontos]]></category>

		<guid isPermaLink="false">http://www.caiquedourado.com.br/?p=319</guid>
		<description><![CDATA[
Professor On-Line:
Migração do sistema Professor On-Line para ASP.NET e SQL Server
Link:
 www.portinari-ba.com.br 
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-318" title="colegio_candido_portinari" src="http://www.caiquedourado.com.br/wp-content/uploads/2009/05/1414301731_ae5e84dbe5_o.jpg" alt="colegio_candido_portinari" width="560" height="768" /></p>
<p><strong>Professor On-Line:</strong></p>
<p>Migração do sistema Professor On-Line para ASP.NET e SQL Server</p>
<p>Link:<br />
<a title="Colégio Cândido Portinari" href="http://www.portinari-ba.com.br" target="_blank"> www.portinari-ba.com.br </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/10/25/colegio-candido-portinari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Presente da Microsoft Digital Adversiting Solutions</title>
		<link>http://www.caiquedourado.com.br/2007/10/24/presente-da-microsoft-digital-adversiting-solutions/</link>
		<comments>http://www.caiquedourado.com.br/2007/10/24/presente-da-microsoft-digital-adversiting-solutions/#comments</comments>
		<pubDate>Wed, 24 Oct 2007 02:34:26 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Mercado]]></category>
		<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://caiquedourado.com/2007/10/24/presente-da-microsoft-digital-adversiting-solutions/</guid>
		<description><![CDATA[Parece que a Microsoft anda distribuindo brindes ao pessoal da Web. Hoje, aqui na VERSiTE fomos surpreendidos com uma misteriosa encomenda vinda da Microsft.
Ao abrir os pacotes uma bela suspresa, canetas e camisetas da Microsoft Digital Adversiting Solutions. A estratégia é vinda da divisão de negócios da empresa responsável pelo conjunto de produtos com foco no mercado [...]]]></description>
			<content:encoded><![CDATA[<p>Parece que a Microsoft anda distribuindo brindes ao pessoal da Web. Hoje, aqui na <a target="_blank" href="http://www.versite.com.br" title="VERSiTE">VERSiTE</a> fomos surpreendidos com uma misteriosa encomenda vinda da Microsft.</p>
<p>Ao abrir os pacotes uma bela suspresa, canetas e camisetas da <a target="_blank" href="http://advertising.microsoft.com/" title="http://advertising.microsoft.com/">Microsoft Digital Adversiting Solutions</a>. A estratégia é vinda da divisão de negócios da empresa responsável pelo conjunto de produtos com foco no mercado publicitário. O objetivo é oferecer soluções de comunicação para os anunciantes unificando as múltiplas plataformas de publicidade da empresa: MSN, Windows Live, Xbox e Office.</p>
<p> Recebemos um pacote contendo caneta e camiseta. As camisetas vem em branco, prontas para serem customizadas na mão grande. Helderlei não perdeu tempo para aplicar sua habilidade. Já estou com a minha&#8230;</p>
<p><a href="http://www.flickr.com/photos/caiquedourado/1719462848/" class="tt-flickr"><img border="0" width="500" src="http://farm3.static.flickr.com/2120/1719462848_9b5d70536d.jpg" alt="Pack" height="375" /></a></p>
<p><span id="more-10"></span></p>
<p><a href="http://www.flickr.com/photos/caiquedourado/1719465432/" class="tt-flickr"></a></p>
<p><a href="http://www.flickr.com/photos/caiquedourado/1718624125/" class="tt-flickr"></a> <a href="http://www.flickr.com/photos/caiquedourado/1718624125/" class="tt-flickr"><img border="0" width="375" src="http://farm3.static.flickr.com/2075/1718624125_9d7628f4d9.jpg" alt="Ainda em branco..." height="500" /></a></p>
<p><a href="http://www.flickr.com/photos/caiquedourado/1719468486/" class="tt-flickr"><img border="0" width="500" src="http://farm3.static.flickr.com/2010/1719468486_63f8605644.jpg" alt="Helderlei em aÃ§Ã£o..." height="375" /></a> </p>
<p><a href="http://www.flickr.com/photos/caiquedourado/1718600675/" class="tt-flickr"><img border="0" width="500" src="http://farm3.static.flickr.com/2389/1718600675_cbefade86a.jpg" alt="Depois de Customizada 02" height="375" /></a> </p>
<p><a href="http://www.flickr.com/photos/caiquedourado/1719455862/" class="tt-flickr"></a> <a href="http://www.flickr.com/photos/caiquedourado/1719455862/" class="tt-flickr"><img border="0" width="500" src="http://farm3.static.flickr.com/2294/1719455862_68b4faf5e7.jpg" alt="faltou o " height="375" /></a></p>
<p><a href="http://www.flickr.com/photos/caiquedourado/1719460214/" class="tt-flickr"><img border="0" width="500" src="http://farm3.static.flickr.com/2026/1719460214_31040180c6.jpg" alt="By Helderlei" height="375" /></a> </p>
<p><a href="http://www.flickr.com/photos/caiquedourado/1718593225/" class="tt-flickr"><img border="0" width="500" src="http://farm3.static.flickr.com/2138/1718593225_217e212cfd.jpg" alt="Apple?" height="375" /></a> </p>
<p><a href="http://www.flickr.com/photos/caiquedourado/1719465432/" class="tt-flickr"><img border="0" width="500" src="http://farm3.static.flickr.com/2140/1719465432_c13cc3e315.jpg" alt="Pack. Camiseta + Caneta" height="375" /></a></p>
<p><a href="http://www.flickr.com/photos/caiquedourado/1719437678/" class="tt-flickr"><img border="0" width="500" src="http://farm3.static.flickr.com/2139/1719437678_1b376a4074.jpg" alt="Microsoft Digital Adversiting Solutions" height="375" /></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/10/24/presente-da-microsoft-digital-adversiting-solutions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O Aranha &#8211; Política e Sacanagem</title>
		<link>http://www.caiquedourado.com.br/2007/10/19/o-aranha-politica-e-sacanagem/</link>
		<comments>http://www.caiquedourado.com.br/2007/10/19/o-aranha-politica-e-sacanagem/#comments</comments>
		<pubDate>Fri, 19 Oct 2007 22:48:09 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://caiquedourado.com/2007/10/19/projeto-finalizado-o-aranha-politica-e-sacanagem/</guid>
		<description><![CDATA[A VERSiTE acaba de finalizar seu primeiro projeto em ASP.NET.
O site foi o www.oaranha.com.br; já existia uma versão do Aranha, o desafio era o de desenvolver um novo site totalmente gerenciável.


A primeira versão foi escrita em PHP com banco de dados MySQL. Optamos por desenvolvê-lo em ASP.NET  com Banco de Dados SQl Server. Foi [...]]]></description>
			<content:encoded><![CDATA[<p>A <a title="www.versite.com.br" href="http://www.versite.com.br" target="_blank">VERSiTE</a> acaba de finalizar seu primeiro projeto em ASP.NET.</p>
<p>O site foi o <a title="www.oaranha.com.br" href="http://www.oaranha.com.br" target="_blank">www.oaranha.com.br</a>; já existia uma versão do Aranha, o desafio era o de desenvolver um novo site totalmente gerenciável.</p>
<p><a class="tt-flickr" href="http://www.flickr.com/photos/caiquedourado/1601666266/"><img src="http://farm3.static.flickr.com/2109/1601666266_00b9305f4f.jpg" border="0" alt="www.oaranha.com.br" width="500" height="333" /></a></p>
<p><span id="more-9"></span></p>
<p>A primeira versão foi escrita em PHP com banco de dados MySQL. Optamos por desenvolvê-lo em ASP.NET  com Banco de Dados SQl Server. Foi feito um redesign do site inteiro, ganhando uma aparência bem mais limpa e profissional.</p>
<p>O Aranha é atualizado constantemente, como as matérias vem de diversas fontes, o gerenciador de conteúdo teria a missão de ser bastante prático para facilitar a inclusão de matérias pelos editores.  O Conteúdo do site é totalmente gerenciável, com apenas alguns cliques é possível publicar as matérias, videos e fotos&#8230;</p>
<p>Foi utilizado o <a title="http://www.telerik.com/products/aspnet/controls/editor/overview.aspx" href="http://http://www.telerik.com/products/aspnet/controls/editor/overview.aspx">RadEditor</a> da Telerik como editor para as matérias&#8230; Além das funções básicas, comuns a maioria dos editores WYSIWYG ele oferece facilidade na edição de imagens. Sem contar que é totalmente integrado com aplicaçõs ASP.NET.</p>
<p><a class="tt-flickr" href="http://www.flickr.com/photos/caiquedourado/1603629041/"><img src="http://farm3.static.flickr.com/2309/1603629041_658564c0e9.jpg" border="0" alt="RadEditor" width="500" height="343" /></a></p>
<p>Optei por encapsular a camada de acesso a dados em uma Class Library para centralizar o código e facilitar a manutenção e reutilização.</p>
<p><a class="tt-flickr" href="http://www.flickr.com/photos/caiquedourado/1637058758/"><img src="http://farm3.static.flickr.com/2045/1637058758_4223703117_o.jpg" border="0" alt="Framework O Aranha" width="196" height="267" /></a></p>
<p>Na paginação das matérias foi utilizada a biblioteca MagicAjax para eliminar os PostBacks.</p>
<p>Link <a title="O Aranha - Política e Sacanagem" href="http://www.oaranha.com.br/" target="_blank">www.oaranha.com.br </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/10/19/o-aranha-politica-e-sacanagem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Experimentando o Google Apps</title>
		<link>http://www.caiquedourado.com.br/2007/10/18/experimentando-o-google-apps/</link>
		<comments>http://www.caiquedourado.com.br/2007/10/18/experimentando-o-google-apps/#comments</comments>
		<pubDate>Thu, 18 Oct 2007 23:42:42 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Mercado]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://caiquedourado.com/2007/10/18/experimentando-o-google-apps/</guid>
		<description><![CDATA[Já pensou em utilizar a plataforma do gmail em seu domínio? È o que promete o Google Apps. A ferramenta oferece não sómente o Gmail, mas o Google Docs, Google Calendar, e o GoogleTalk além da página inicial personalizada.
Resolvi experimentar o serviço em meu domínio, até agora obtive boas impressões. O serviço é oferecido gratuitamente [...]]]></description>
			<content:encoded><![CDATA[<p>Já pensou em utilizar a plataforma do gmail em seu domínio? È o que promete o Google Apps. A ferramenta oferece não sómente o Gmail, mas o Google Docs, Google Calendar, e o GoogleTalk além da página inicial personalizada.</p>
<p>Resolvi experimentar o serviço em meu domínio, até agora obtive boas impressões. O serviço é oferecido gratuitamente por 30 dias. O melhor de tudo é a personalização; você pode remover a logo do Google e incluir a sua.</p>
<p>Os endereços são os mesmos utilizados pelo google, acrecentando-se um &#8220;/a/seudominio.com&#8221;</p>
<p>Página inicial personalizada:<br />
<a href="http://partnerpage.google.com/seudominio.com" class="greenlink" target="_blank">http://partnerpage.google.com/seudominio.com</a></p>
<p>E-mail<br />
<a href="http://mail.google.com/a/seudominio.com" class="greenlink" target="_blank">http://mail.google.com/a/seudominio.com</a></p>
<p>Agenda:<br />
<a href="http://www.google.com/calendar/a/seudominio.com" class="greenlink" target="_blank">http://www.google.com/calendar/a/seudominio.com</a></p>
<p>Docs &amp; SpreadShets<br />
<a href="http://docs.google.com/a/seudominio.com" class="greenlink" target="_blank">http://docs.google.com/a/seudominio.com</a></p>
<p><span id="more-8"></span></p>
<p><strong>Ativando o Serviço </strong></p>
<p>Para receber e-mails em suas contas de e-mail do Google Apps, é necessário alterar os registros MX em suas configurações de DNS. Essa operação roteia as mensagens de entrada para o Google. As mensagens só serão entregues depois de configurar os registros MX para os servidores do Google.</p>
<p>Altere os registros MX conforme a tabela abaixo:</p>
<table class="mx">
<tr>
<th>Endereço do servidor MX</th>
<th>Prioridade</th>
</tr>
<tr>
<td>ASPMX.L.GOOGLE.COM.</td>
<td>1</td>
</tr>
<tr>
<td>ALT1.ASPMX.L.GOOGLE.COM.</td>
<td>5</td>
</tr>
<tr>
<td>ALT2.ASPMX.L.GOOGLE.COM.</td>
<td>5</td>
</tr>
<tr>
<td>ASPMX2.GOOGLEMAIL.COM.</td>
<td>10</td>
</tr>
<tr>
<td>ASPMX3.GOOGLEMAIL.COM.</td>
<td>10</td>
</tr>
<tr>
<td>ASPMX4.GOOGLEMAIL.COM.</td>
<td>10</td>
</tr>
<tr>
<td>ASPMX5.GOOGLEMAIL.COM.</td>
<td>10</td>
</tr>
</table>
<p><strong><br />
</strong></p>
<p><a href="http://www.flickr.com/photos/caiquedourado/1622523913/" class="tt-flickr"><img src="http://farm3.static.flickr.com/2351/1622523913_59866e4d96_o.png" alt="Google Apps - Login" border="0" height="299" width="500" /></a></p>
<p><a href="http://www.flickr.com/photos/caiquedourado/1622250667/" class="tt-flickr"><img src="http://farm3.static.flickr.com/2037/1622250667_ade526a9f3.jpg" alt="Google Apps - Email" border="0" height="185" width="500" /></a></p>
<p><a href="http://www.flickr.com/photos/caiquedourado/1622249299/" class="tt-flickr"><img src="http://farm3.static.flickr.com/2310/1622249299_bf1865c33f_o.png" alt="Google Apps - Docs" border="0" height="307" width="450" /></a></p>
<p><a href="http://www.flickr.com/photos/caiquedourado/1623138310/" class="tt-flickr"><img src="http://farm3.static.flickr.com/2247/1623138310_bade496a90.jpg" alt="Google Apps - Agenda" border="0" height="242" width="500" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/10/18/experimentando-o-google-apps/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>2Pontos WebExperts</title>
		<link>http://www.caiquedourado.com.br/2007/10/18/2pontos/</link>
		<comments>http://www.caiquedourado.com.br/2007/10/18/2pontos/#comments</comments>
		<pubDate>Thu, 18 Oct 2007 17:21:03 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[2Pontos]]></category>

		<guid isPermaLink="false">http://caiquedourado.com.br/?p=3</guid>
		<description><![CDATA[
Implantação de captcha para maior segurança no envio do formulário de contato.
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" src="http://farm2.static.flickr.com/1334/1415182632_f43dd136bf.jpg" alt="Formulário de Contato - 2Pontos Web Experts" /></p>
<p>Implantação de captcha para maior segurança no envio do formulário de contato.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/10/18/2pontos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tradução do Telerik RadEditor para português</title>
		<link>http://www.caiquedourado.com.br/2007/10/17/traducao-do-telerik-radeditor-para-portugues/</link>
		<comments>http://www.caiquedourado.com.br/2007/10/17/traducao-do-telerik-radeditor-para-portugues/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 21:17:02 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Componentes]]></category>
		<category><![CDATA[radeditor]]></category>
		<category><![CDATA[telerik]]></category>

		<guid isPermaLink="false">http://caiquedourado.com/2007/10/17/traducao-do-telerik-radeditor-para-portugues/</guid>
		<description><![CDATA[A Telerik só disponibiliza o RadEditor em Inglês, Alemão  e Francês. Como o RadEditor é pouco usado no Brazil ainda não encontrei traduções dele para nosso idioma.
Comecei a traduzí-lo, a maioria das funções já etão prontas (cerca de 70%) .
Clique aqui bara baixar



]]></description>
			<content:encoded><![CDATA[<p>A Telerik só disponibiliza o RadEditor em Inglês, Alemão  e Francês. Como o RadEditor é pouco usado no Brazil ainda não encontrei traduções dele para nosso idioma.</p>
<p>Comecei a traduzí-lo, a maioria das funções já etão prontas (cerca de 70%) .</p>
<p><a title="Tradução RadEditor" href="http://caiquedourado.com.br/wp-content/uploads/2007/10/radeditor_pt-br.rar">Clique aqui bara baixar</a></p>
<p><a class="tt-flickr" href="http://www.flickr.com/photos/caiquedourado/1604001749/"><br />
</a></p>
<p><a class="tt-flickr" href="http://www.flickr.com/photos/caiquedourado/1603629041/"><img src="http://farm3.static.flickr.com/2309/1603629041_658564c0e9.jpg" border="0" alt="RadEditor" width="500" height="343" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/10/17/traducao-do-telerik-radeditor-para-portugues/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Selecionando uma área da Imagem com JavaScript</title>
		<link>http://www.caiquedourado.com.br/2007/10/17/selecionando-uma-area-da-imagem-com-javascript/</link>
		<comments>http://www.caiquedourado.com.br/2007/10/17/selecionando-uma-area-da-imagem-com-javascript/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 20:14:45 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web2.0]]></category>

		<guid isPermaLink="false">http://caiquedourado.com/2007/10/17/selecionando-uma-area-da-imagem-com-javascript/</guid>
		<description><![CDATA[A algum tempo precisei de algumas soluções para fornecer uma interface amigavel para que os usuários pudessem recortar e redimensionar imagens diretamente na página, selecionado uma área de corte no cliente e enviando ao servidor para que seja tratada. Algumas soluções que encontrei:
Prototype JavaScript Image Cropper UI &#8211; Demo
Bastante completo. Permite múltiplas instâncias na mesma [...]]]></description>
			<content:encoded><![CDATA[<p>A algum tempo precisei de algumas soluções para fornecer uma interface amigavel para que os usuários pudessem recortar e redimensionar imagens diretamente na página, selecionado uma área de corte no cliente e enviando ao servidor para que seja tratada. Algumas soluções que encontrei:</p>
<p><strong>Prototype JavaScript Image Cropper UI &#8211; Demo</strong></p>
<p>Bastante completo. Permite múltiplas instâncias na mesma página e oferece suporte ao teclado. Possui métodos para definir a área de corte em tempo de execução. Limitar altura x largura. Escala&#8230;</p>
<p><img src="http://farm3.static.flickr.com/2089/1603848020_bec5334e3c_o.jpg" alt="" width="450" height="232" /></p>
<p><span id="more-4"></span></p>
<p>Permite ainda prever o resultado do corte em tempo real sem necessidade de um post ao servidor.</p>
<p><img src="http://farm3.static.flickr.com/2273/1603032275_fe5576fd16_o.jpg" alt="" width="450" height="236" /></p>
<p><a href="http://www.defusion.org.uk/code/javascript-image-cropper-ui-using-prototype-scriptaculous/ " target="_blank">Prototype JavaScript Image Cropper UI</a><br />
<a href="http://www.defusion.org.uk/code/javascript-image-cropper-ui-using-prototype-scriptaculous/ " target="_blank"><br />
Prototype JavaScript Image Cropper UI &#8211; Demo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2007/10/17/selecionando-uma-area-da-imagem-com-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Envio de e-mails independente do componente no servidor</title>
		<link>http://www.caiquedourado.com.br/2000/04/22/envio-de-e-mails-independente-do-componente-no-servidor/</link>
		<comments>http://www.caiquedourado.com.br/2000/04/22/envio-de-e-mails-independente-do-componente-no-servidor/#comments</comments>
		<pubDate>Sat, 22 Apr 2000 19:59:56 +0000</pubDate>
		<dc:creator>Caique Dourado</dc:creator>
				<category><![CDATA[Artigos]]></category>

		<guid isPermaLink="false">http://caiquedourado.esparta.kinghost.net/?p=218</guid>
		<description><![CDATA[Envio de e-mails independente do componente no servidor
]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2009/04/envia_email.txt">Envio de e-mails independente do componente no servidor</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiquedourado.com.br/2000/04/22/envio-de-e-mails-independente-do-componente-no-servidor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

