<?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/"
	>

<channel>
	<title>DevFranca</title>
	<atom:link href="http://www.devfranca.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.devfranca.com.br</link>
	<description>Tecnologia no Interior</description>
	<pubDate>Thu, 11 Mar 2010 01:30:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Programador &#233; Programador, Hype &#233; Hype e Tradi&#231;&#227;o &#233; Tradi&#231;&#227;o.</title>
		<link>http://www.devfranca.com.br/2010/03/10/programador-programador-hype-hype-e-tradio-tradio/</link>
		<comments>http://www.devfranca.com.br/2010/03/10/programador-programador-hype-hype-e-tradio-tradio/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 01:30:45 +0000</pubDate>
		<dc:creator>Mateus Martins</dc:creator>
		
		<category><![CDATA[Artigos]]></category>

		<guid isPermaLink="false">http://www.devfranca.com.br/2010/03/10/programador-programador-hype-hype-e-tradio-tradio/</guid>
		<description><![CDATA[Qual é o ultimo grito da moda? o que aconteceu no &#34;SPFashionWeekDeTecnologia&#34; da semana passada que deixamos escapar? com qual tecnologia/produto novo fomos bombardeados e não percebemos? qual o último telefone lançado? o último tablet? a última linguagem que surgiu? Quantas perguntas, quantas respostas?     
Talvez o número de respostas para estas [...]]]></description>
			<content:encoded><![CDATA[<p>Qual é o ultimo grito da moda? o que aconteceu no <b>&quot;SPFashionWeekDeTecnologia&quot;</b> da semana passada que deixamos escapar? com qual tecnologia/produto novo fomos bombardeados e não percebemos? qual o último telefone lançado? o último tablet? a última linguagem que surgiu? Quantas perguntas, quantas respostas?     </p>
<p>Talvez o número de respostas para estas perguntas seja tão grande que não caiba neste post, e talvez amanhã precisemos de um post novo para respondê-las novamente. É isso que chamamos de &quot;hype&quot;, o último grito da moda, segundo o <a href="http://www.google.com.br/search?hl=pt-BR&amp;client=firefox-a&amp;hs=r5P&amp;rls=org.mozilla:en-US:official&amp;ei=9NOXS96kDIXYNfKWqHo&amp;sa=X&amp;oi=spell&amp;resnum=0&amp;ct=result&amp;cd=1&amp;ved=0CAUQBSgA&amp;q=Define+Hype&amp;spell=1">google</a>, e tecnologia é isso, moda, disputa pelo novo, o grande engolindo o pequeno, a todo momento surge uma nova comunidade de relacionamento, um novo tipo de tecnologia que vai mudar o planeta e salvar as baleias, e ser conservador neste mercado é praticamente um crime digno de pena de morte, queima de processador e esvaziamento de pilha!     </p>
<p>Ser conservador o suficiente para poder olhar para traz e prever o futuro.     <br />No final de 54 surgiu uma linguagem chamada FORTRAN e, a partir daí, uma infinidade de novas linguagens foram surgindo: ALGOL(1958), COBOL(1959), BASIC(1964), Simula(1964), PASCAL(1970), SmallTalk(1971), C(1971), PostScript(1982), Perl(1987), Python(1991), Ruby(1993), PHP(1995), Java(1995), JavaScript(1995), entre dezenas de outras que não citei aqui.     </p>
<p><strong>E o que isto nos diz?</strong>     </p>
<p>Uma das leituras que podemos fazer de nossa história é que a FORTRAN não trouxe grandes inovações, mas deixou o mundo mais simples de ser compreendido do que na época do ASSEMBLY. Depois, na década de 60, as linguagens mudaram, inovaram e trouxeram um novo conceito, o de linguagem estruturada, aos moldes de C, Pascal e Basic, e o mundo continuou a evoluir. Em 1967, foi apresentada a Simula67, primeira linguagem a implementar o novo conceito de orientação a objetos (OOP). Em 1980, foi lançada a versão SmallTalk80, inovando o conceito de OOP e dando força para esse novo paradigma. Já na década de 90, surgem as linguagens com suporte WEB. O mundo dá uma regredida, PHP/ASP nascem procedurais mas logo evoluem para o conceito OOP, assim como JAVA e outras. Hoje em dia, é altamente desaconselhável aprendermos uma linguagem que não seja OOP, a não ser por questões muito específicas, em casos muito raros.     </p>
<p>Eu vi surgirem varios Hypes, puxados por pessoas atrás de fama; linguagens mortas renascerem para morrerem sem o menor sentido de ser, e creio que um programador ou um futuro programador deva fazer algumas reflexões sobre em qual tecnologia investir:     </p>
<p>Qual é a história da linguagem que eu quero aprender?     </p>
<p>Com qual frequência ela é atualizada?     </p>
<p>Ela é OOP?     </p>
<p>Qual a produtividade?     </p>
<p>Existem Frameworks para ela?     </p>
<p>Existe uma comunidade ou há uma empresa&#160; mantendo essa linguagem?     </p>
<p>Como é a documentação dela?     </p>
<p>Como o mercado remunera os programadores?     </p>
<p>Quais softwares foram desenvolvidos usando essa linguagem?     </p>
<p>O que estou falando aqui neste artigo tem mais a ver com mercado e investimento do seu valioso tempo. Apenas algumas dicas para avaliar e definir qual caminho você quer que sua carreira percorra. Cuidado com as armadilhas do mercado! Os hypes que surgem simplesmente desaparecem em pouco tempo ou, quando vingam, demoram anos para ganhar força no mercado.&#160; </p>
<p>Um exemplo simples e específico de uma linguagem que está em transformação hoje é o HTML5. Ele não é um milagre, mas vai melhorar muito a maneira como programamos hoje. No entanto, não teremos suporte a ele da forma como gostaríamos até o final do ano e talvez nem no próximo, porque dependemos das novas versões de navegadores e também dos usuários, que precisam atualizar seus navegadores.&#160; Quem quer entrar no mercado agora, tem que dominar XHTML, sem tirar os olhos do HTML5, claro! Mas vejam o I6, quase imortal. A inovação é lenta e isso não é ser conservador; é ser realista e antenado ao futuro próximo.</p>
<p>Não existe milagre, não vai surgir uma nova linguagem, um framework, uma tecnologia mágica que fará o mercado gastar bilhões migrando os seus sistemas em um curto espaço de tempo. Olhe para o passado para prever o futuro e duvide dos milagres.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devfranca.com.br/2010/03/10/programador-programador-hype-hype-e-tradio-tradio/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Microsoft oferece capacitação gratuita em tecnologia para estudantes de 27 cidades brasileiras</title>
		<link>http://www.devfranca.com.br/2010/03/09/microsoft-oferece-capacitacao-gratuita-em-tecnologia-para-estudantes-de-27-cidades-brasileiras/</link>
		<comments>http://www.devfranca.com.br/2010/03/09/microsoft-oferece-capacitacao-gratuita-em-tecnologia-para-estudantes-de-27-cidades-brasileiras/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 15:53:16 +0000</pubDate>
		<dc:creator>Nelson Borges</dc:creator>
		
		<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.devfranca.com.br/?p=406</guid>
		<description><![CDATA[Em 2009, o programa de treinamento gratuito Students to Business – S2B  beneficiou 25 mil jovens brasileiros
São Paulo, 02 de março de 2010 – A Microsoft Brasil, em parceria com instituições de ensino, governos e empresas de 13 estados, as inscrições estão abertas desde o dia 01/03  para a sexta edição do programa de capacitação para [...]]]></description>
			<content:encoded><![CDATA[<p>Em 2009, o programa de treinamento gratuito Students to Business – S2B  beneficiou 25 mil jovens brasileiros<br />
São Paulo, 02 de março de 2010 – A Microsoft Brasil, em parceria com instituições de ensino, governos e empresas de 13 estados, as inscrições estão abertas desde o dia 01/03  para a sexta edição do programa de capacitação para o mercado de tecnologia – Students to Business – S2B. O objetivo do programa é auxiliar jovens  interessados em seguir carreira na área de tecnologia a conquistar boas oportunidades no mercado. Ao todo, os inscritos poderão receber de 4 a 84 horas de treinamento gratuito em três etapas de aulas, num aumento gradativo de complexidade.</p>
<p>“O setor de tecnologia da informação e comunicação cresce quatro vezes acima do PIB no Brasil. Esse é um dos segmentos que mais emprega no País e essa oferta só deve crescer nos próximos anos”, comenta Amintas Neto, gerente de plataformas acadêmicas da Microsoft. “Encontrar profissionais capacitados para atuar na área ainda é um desafio para as empresas. Por isso a Microsoft investe em preparar jovens apaixonados por tecnologia para ingressar nesse mercado. Nosso objetivo não é treinar os próximos funcionários da Microsoft, mas, sim, os próximos colegas que vão atuar em todo o segmento”, destaca o executivo.</p>
<p>O Students to Business faz parte das iniciativas de Cidadania Corporativa da empresa no país. Os participantes recebem licenças para download gratuito dos softwares utilizados nos treinamentos para dar continuidade prática do conteúdo aprendido utilizando o computador pessoal. A iniciativa também conta com o apoio de empresas que demandam mão de obra especializada e que oferecem oportunidades de emprego ou estágio ao final da capacitação.</p>
<p>Desta vez, o Students to Business vai abranger 27 localidades em 13 estados do Brasil – Amazonas, Bahia, Ceará, Distrito Federal, Espírito Santo, Minas Gerais, Pará, Paraná, Pernambuco, Rio de Janeiro, Rio Grande do Sul, Santa Catarina, São Paulo e Sergipe, e tem como meta capacitar os alunos participantes no uso da tecnologia Microsoft nas áreas de desenvolvimento, infra-estrutura e, em algumas localidades, também em banco de dados (DBAs) e Criação de Web-sites. As inscrições são feitas pelo site: <a title="www.programaS2B.com.br" href="http://proform.msdnbrasil.com.br/PortalS2B/Default.aspx">http://proform.msdnbrasil.com.br/PortalS2B/Default.aspx</a>.</p>
<p>As aulas acontecem nas unidades dos Centros de Inovação mantidos pela Microsoft em várias cidades do país e em instituições parceiras.</p>
<p>“Basta ser estudante para participar do Students to Business”, conta Amintas Neto, gerente geral de programas acadêmicos da Microsoft Brasil “Além de capacitar quem já escolheu seguir carreira em tecnologia, essa é uma oportunidade para jovens que têm  interesse pela área, mas ainda não atuaram nesse segmento”.</p>
<p>Realizado no Brasil desde 2007, o Students to Business já capacitou somente em 2009, 25 mil estudantes para o mercado.  “Conseguimos incluir no Students to Business um processo efetivo de geração de empregos. Sempre que finalizamos uma onda de treinamentos, recebemos retorno de diversos estudantes que foram inseridos no mercado” destaca o executivo.</p>
<p><strong>Agenda:<br />
Inscrições para a 6ª onda do Students to Business</strong><br />
<strong>Especializações:</strong> Infra-estrutura / Desenvolvimento de Sistemas / Banco de dados / Criação de websites<br />
<strong>Período:</strong> até 16 de março<br />
<strong>Inscrições:</strong> pelo <a href="http://www.programaS2B.com.br">site www.programaS2B.com.br</a></p>
<p>Fonte: <a href="http://blogs.msdn.com/itnews/archive/2010/03/03/microsoft-oferece-capacita-o-gratuita-em-tecnologia-para-estudantes-de-27-cidades-brasileiras.aspx">ITNews</a></p>
<p>Abraço,</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devfranca.com.br/2010/03/09/microsoft-oferece-capacitacao-gratuita-em-tecnologia-para-estudantes-de-27-cidades-brasileiras/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Encontrando dom&#237;nio do email AS3</title>
		<link>http://www.devfranca.com.br/2010/03/07/encontrando-domnio-do-email-as3/</link>
		<comments>http://www.devfranca.com.br/2010/03/07/encontrando-domnio-do-email-as3/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 16:45:00 +0000</pubDate>
		<dc:creator>Cristian Klauss</dc:creator>
		
		<category><![CDATA[Dicas]]></category>

		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.devfranca.com.br/2010/03/07/encontrando-domnio-do-email-as3/</guid>
		<description><![CDATA[Olá a todos!&#160; Por estes dias estive trabalhando com servidores de email, e surgiu a necessidade de buscar o domínio do email, então desenvolvi uma função para realizar este trabalho. Achei interessante postar aqui como uma breve dica espero que seja útil.
private function buscaDominio(email:String):String{
  var array:Array = email.split(&#34;@&#34;);
  
  if(array[1] != null){
 [...]]]></description>
			<content:encoded><![CDATA[<p>Olá a todos!&#160; Por estes dias estive trabalhando com servidores de email, e surgiu a necessidade de buscar o domínio do email, então desenvolvi uma função para realizar este trabalho. Achei interessante postar aqui como uma breve dica espero que seja útil.</p>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px"><span style="color: #0000ff">private</span> <span style="color: #0000ff">function</span> buscaDominio(email:<span style="color: #0000ff">String</span>):<span style="color: #0000ff">String</span>{</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">  <span style="color: #0000ff">var</span> array:<span style="color: #0000ff">Array</span> = email.split(&quot;<span style="color: #8b0000">@</span>&quot;);</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">  </pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">  <span style="color: #0000ff">if</span>(array[1] != <span style="color: #0000ff">null</span>){</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">    <span style="color: #0000ff">return</span> array[1]</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">  }</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">  <span style="color: #0000ff">else</span>{</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">    <span style="color: #0000ff">return</span> &quot;<span style="color: #8b0000"></span>&quot;;</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">  }</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">}</pre>
<p>Abraços, e até a próxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devfranca.com.br/2010/03/07/encontrando-domnio-do-email-as3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Web Services com Flex</title>
		<link>http://www.devfranca.com.br/2010/02/13/web-services-com-flex/</link>
		<comments>http://www.devfranca.com.br/2010/02/13/web-services-com-flex/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 14:14:00 +0000</pubDate>
		<dc:creator>Cristian Klauss</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.devfranca.com.br/2010/02/13/web-services-com-flex/</guid>
		<description><![CDATA[Olá a todos. Neste post vou fala um pouco sobre umas das formas que o flex usa para comunicação com outras linguagens de programação, os web services. Irei mostrar somente como e feita a chamada pelo flex, usando o objeto WebService para realizar esta operação. Segue o codigo para análise: 
&#60;?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34;?&#62;
&#60;mx:Application xmlns:mx=&#34;http://www.adobe.com/2006/mxml&#34; layout=&#34;absolute&#34;&#62;
 [...]]]></description>
			<content:encoded><![CDATA[<p>Olá a todos. Neste post vou fala um pouco sobre umas das formas que o flex usa para comunicação com outras linguagens de programação, os web services. Irei mostrar somente como e feita a chamada pelo flex, usando o objeto WebService para realizar esta operação. Segue o codigo para análise: </p>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px"><span style="color: #0000ff">&lt;?</span>xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;<span style="color: #0000ff">?&gt;</span></pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px"><span style="color: #0000ff">&lt;</span><span style="color: #c71585">mx</span>:<span style="color: #800000">Application</span> <span style="color: #ff0000">xmlns</span>:<span style="color: #ff0000">mx</span>=<span style="color: #0000ff">&quot;http://www.adobe.com/2006/mxml&quot;</span> <span style="color: #ff0000">layout</span>=<span style="color: #0000ff">&quot;absolute&quot;</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">  <span style="color: #0000ff">&lt;</span><span style="color: #c71585">mx</span>:<span style="color: #800000">Script</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">    &lt;![CDATA[</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">      <span style="color: #0000ff">import</span> mx.controls.Alert;</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">      <span style="color: #0000ff">import</span> mx.rpc.events.FaultEvent;</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">      <span style="color: #0000ff">import</span> mx.rpc.events.ResultEvent;</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">      </pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">      <span style="color: #0000ff">private</span> <span style="color: #0000ff">function</span> clickBotao():<span style="color: #0000ff">void</span>{</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">        <span style="color: #008000">//chamada da operação do web service</span></pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">        webService.getOperation(&quot;<span style="color: #8b0000">OperacaoWebService</span>&quot;).send();</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">      }</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">      </pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">      <span style="color: #0000ff">private</span> <span style="color: #0000ff">function</span> retornaWebService(evt:ResultEvent):<span style="color: #0000ff">void</span>{</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">        <span style="color: #008000">//O retorno do seu web service deve ser tratado aqui</span></pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">        trace(evt.result);  </pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">      }</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">      </pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">      <span style="color: #0000ff">private</span> <span style="color: #0000ff">function</span> erroWebService(erro:FaultEvent):<span style="color: #0000ff">void</span>{</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">        Alert.show(&quot;<span style="color: #8b0000">Ocorreu um erro!</span>&quot;);</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">      }</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">      </pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">    ]]&gt;</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">  <span style="color: #0000ff">&lt;/</span><span style="color: #c71585">mx</span>:<span style="color: #800000">Script</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">  <span style="color: #0000ff">&lt;</span><span style="color: #c71585">mx</span>:<span style="color: #800000">Button</span> <span style="color: #ff0000">x</span>=<span style="color: #0000ff">&quot;430&quot;</span> <span style="color: #ff0000">y</span>=<span style="color: #0000ff">&quot;66&quot;</span> <span style="color: #ff0000">label</span>=<span style="color: #0000ff">&quot;Botão&quot;</span> <span style="color: #ff0000">click</span>=<span style="color: #0000ff">&quot;clickBotao();&quot;</span><span style="color: #0000ff">/&gt;</span></pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">  <span style="color: #0000ff">&lt;</span><span style="color: #c71585">mx</span>:<span style="color: #800000">WebService</span> <span style="color: #ff0000">id</span>=<span style="color: #0000ff">&quot;webService&quot;</span> <span style="color: #ff0000">wsdl</span>=<span style="color: #0000ff">&quot;http://meudominio.com.br/MeuWebService.asmx?wsdl&quot;</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">    <span style="color: #0000ff">&lt;</span><span style="color: #c71585">mx</span>:<span style="color: #800000">operation</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">&quot;OperacaoWebService&quot;</span> <span style="color: #ff0000">result</span>=<span style="color: #0000ff">&quot;retornaWebService(event)&quot;</span> <span style="color: #ff0000">fault</span>=<span style="color: #0000ff">&quot;erroWebService(event)&quot;</span><span style="color: #0000ff">/&gt;</span> </pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">  <span style="color: #0000ff">&lt;/</span><span style="color: #c71585">mx</span>:<span style="color: #800000">WebService</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px"><span style="color: #0000ff">&lt;/</span><span style="color: #c71585">mx</span>:<span style="color: #800000">Application</span><span style="color: #0000ff">&gt;</span></pre>
<p>Logo a cima temos a classe WebService com uma operação chamada de “OperacaoWebService”, este nome será substituido pelo nome do web service desenvolvido. No exemplo não existe passagem de parâmetros, e o mesmo pode existir retorno ou não.</p>
<p>Neste exemplo é usado um web service asp net mas poderia ser usado um em php, jsp e outros. A implementação do web service não aparece no exemplo, ficando livre para futuras implementações.</p>
<p>Na prática ele servirá para buscar uma lista de objetos, retonar uma string ou mesmo chamar um procedimento simples sem parâmetros.</p>
<p>Tanto o erro quanto o retorno são tratados no objeto operation, e neste objeto também que podemos passar parâmetros caso necessário. Na hora da chamada do web service&#160; basta colocar os dados no send. Segue o exemplo:</p>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 11px">webService.getOperation(&quot;<span style="color: #8b0000">OperacaoWebService</span>&quot;).send(“Nome”, “Endereco”, “CEP”);</pre>
<p>Por hoje e só. Ate++ </p>
]]></content:encoded>
			<wfw:commentRss>http://www.devfranca.com.br/2010/02/13/web-services-com-flex/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Utilizando C# com MongoDB</title>
		<link>http://www.devfranca.com.br/2010/02/01/utilizando-csharp-com-mongodb/</link>
		<comments>http://www.devfranca.com.br/2010/02/01/utilizando-csharp-com-mongodb/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 03:16:56 +0000</pubDate>
		<dc:creator>Bruno Bemfica</dc:creator>
		
		<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.devfranca.com.br/?p=387</guid>
		<description><![CDATA[Criando uma aplicação em C# com o MongoDB

Nós desenvolvedores de software estamos acostumados a escrever além do código da nossa linguagem de programação preferida e/ou de trabalho, escrever também código SQL para procedures, views, criação de tabelas, etc. Mas&#8230; E se o seu banco não precisasse de código SQL? Se ele não tivesse procedures, views, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><strong>Criando uma aplicação em C# com o MongoDB</strong></p>
<p style="text-align: center;">
<p style="text-align: center;">Nós desenvolvedores de software estamos acostumados a escrever além do código da nossa linguagem de programação preferida e/ou de trabalho, escrever também código SQL para procedures, views, criação de tabelas, etc. Mas&#8230; E se o seu banco não precisasse de código SQL? Se ele não tivesse procedures, views, triggers ou quaisquer outros comandos SQL? Difícil de imaginar, não? Pois é o que veremos na prática neste artigo.<span id="more-387"></span></p>
<p style="text-align: center;">É aí que entra o MongoDB (não riam do nome). Ele é um banco de dados diferente, pois não é um banco relacional como o SQL Server, muito menos um banco “orientado a tabelas” como o Google Bigtable. Ele é orientado a documentos, é um banco de dados do modelo chamado “Binary JSON”, ou simplesmente BSON.</p>
<p style="text-align: center;">O BSON é uma serialização binária de documentos baseados em JSON, e assim como o JSON, suporta a inclusão de objetos e vetores dentro de outros objetos e vetores.</p>
<p style="text-align: center;">Apesar de BSON significar “Binary JSON”, o formato contém extensões para representar tipos de dados não inclusos na especificação do JSON. Por instância, o BSON suporta formatos como BinData e Date(data). Comparado com o JSON, o BSON é igualmente eficiente em armazenamento e velocidade de busca. Isso ocorre em virtude de os documentos grandes deste formato possuírem um prefixo com o tamanho do campo para facilitar a busca.</p>
<p style="text-align: center;">De início, o BSON parece com o BLOB (<em><strong>B</strong></em>inary <em><strong>L</strong></em>arge<strong> </strong><em><strong>OB</strong></em>jects), mas existe uma importante diferença: O MongoDB pode “adentrar” objetos BSON, mesmo se estiverem aninhados. Dentre outras coisas, isto permite que uma base de dados MongoDB crie índices e busque objetos através de query expression tanto nos objetos de nível maior, quanto nas chaves aninhadas BSON.</p>
<p style="text-align: center;">Quem já trabalhou com camadas de mapeamento objeto-relacional (ORM, Object-Relational Mapping – na sigla em inglês) não terá grandes dificuldades em utilizar o MongoDB.</p>
<p style="text-align: center;">
<p style="text-align: center;">Os SGBDs BSON ainda são uma novidade para a maioria dos desenvolvedores, mas como na internet nada fica anônimo por muito tempo, já temos drivers para conexão com o MongoDB em várias linguagens, inclusive em C#.</p>
<p style="text-align: center;">
<p style="text-align: center;">Instalação</p>
<p style="text-align: center;">A instalação do MongoDB é extremamente simples: Inicialmente, baixe a versão Windows dele em <a href="http://www.mongodb.org/display/DOCS/Downloads">http://www.mongodb.org/display/DOCS/Downloads</a> (além de Windows x32/x64 existem também versões para outros sistemas operacionais). Crie um diretório C:\data\db e extraia os arquivos para dentro deste diretório, que é o padrão do MongoDB (mas que pode ser alterado).</p>
<p style="text-align: center;">Feito isso, abra uma janela de prompt e navegue até a pasta C:\data\db\bin e execute o mongo<strong><span style="text-decoration: underline;">d</span></strong>.exe, após isso abra outro prompt, navegue até a mesma pasta e execute o mongo.exe (repare na diferença dos nomes dos executáveis, para não errar).</p>
<div class="mceTemp mceIEcenter" style="text-align: center;">
<dl>
<dt><a href="http://brunobemfica.net/wp-content/uploads/2010/01/MongodEXE.jpg"><img class="size-full wp-image-31 " src="http://brunobemfica.net/wp-content/uploads/2010/01/MongodEXE.jpg" alt="MongodEXE" width="457" height="232" /></a></dt>
<dd><span style="color: #000000;">Tela após a execução do primeiro executável – mongod.exe</span></dd>
</dl>
</div>
<p style="text-align: center;">
<p style="text-align: center;">Agora, na segunda janela aberta (aonde você executou o mongo.exe), execute os seguintes comandos:</p>
<p style="text-align: center;">db.foo.save( { a : 1 } ) e pressione enter;</p>
<p style="text-align: center;">db.foo.findOne() e pressione enter;</p>
<p><a href="http://brunobemfica.net/wp-content/uploads/2010/01/mongoEXE.jpg"><img class="size-full wp-image-32" src="http://brunobemfica.net/wp-content/uploads/2010/01/mongoEXE.jpg" alt="Tela após a execução dos comandos acima." width="447" height="156" /></a></p>
<p style="text-align: center;">O que acabamos de fazer foi salvar o índice chave-valor a: 1 no banco de dados foo, e em seguida mandamos fazer uma busca de um único elemento, mas sem parâmetros (o equivalente a um SELECT TOP 1 * FROM FOO, em SQL). Pronto, seu MongoDB está configurado e pronto para usar!</p>
<p style="text-align: center;">Agora, precisamos baixar o driver de conexão do .NET com o MongoDB, disponível em <a href="http://github.com/samus/mongodb-csharp">http://github.com/samus/mongodb-csharp</a> . Salve onde achar melhor, extraia e pronto, podemos começar!</p>
<p style="text-align: center;">Abra o Visual Studio 2008 e crie uma aplicação web (File&gt;&gt;New&gt;&gt;Project&gt;&gt;Visual C#&gt;&gt; ASP.NET Web Application) e dê a ela o nome de MongoApp. Esta aplicação simples nada mais fará do que um CRUD básico em uma tela de cadastro de produtos.</p>
<p style="text-align: center;">
<p style="text-align: center;">
<p style="text-align: center;">
<p style="text-align: center;">Adicione ao projeto uma referência ao driver. Para isso, clique em com o botão direito em References&gt;&gt;Add reference, clique na aba Browse, navegue até a pasta onde você extraiu o projeto samus mongodb, vá até a pasta \MongoDBDriver\bin\Release e adicione a DLL do driver de conexão ao seu projeto. Podemos começar a tela, que ficará mais ou menos assim:</p>
<p style="text-align: center;">
<p><a href="http://brunobemfica.net/wp-content/uploads/2010/01/tela1.jpg"><img class="size-full wp-image-33" src="http://brunobemfica.net/wp-content/uploads/2010/01/tela1.jpg" alt="Tela de CRUD da aplicação" width="457" height="273" /></a></p>
<p style="text-align: center;">Feito isso, é a hora de irmos ao código C# que irá executar as operações de CRUD quando clicarmos nos botões da nossa página ASP.NET:</p>
<pre style="text-align: center;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MongoDB.Driver;
using MongoDB.Driver.Bson;
using MongoDB.Driver.IO;
namespace MongoApp
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            txtNome.Text = "";
            txtQtdd.Text = "";
            txtDataValidade.Text = "";
            txtValor.Text = "";
        }

        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            //Objeto de conexão com o banco
            var mongo = new Mongo();

            /*Esse é o principal objeto da aplicação,
             * seria o "objeto de negócio",
             * do tipo par-valor(dicionário)
             */
            var produto = new Document();

            mongo.Connect();

            /*Variável do tipo Database,
             * executa funções de conexão
             */
            var db = mongo.getDB("BancoDeDados");

            /*Pegando a coleção, que seria o equivalente
             *a uma tabela em SQL
             */
            var produtosColecao = db.GetCollection("Produtos");

            //Definindo os valores das propriedades.
            produto["valor"] = txtValor.Text;
            produto["nome"] = txtNome.Text;
            produto["validade"] = txtDataValidade.Text;
            produto["quantidade"] = txtQtdd.Text;

            try
            {
                produtosColecao.Insert(produto);
            }
            catch (Exception ex)
            {

                Response.Write("

 Data:" + ex.Data + "
Message: " +
                    ex.Message + "
InnerException:" + ex.InnerException +
                               "
 Stacktrace:" + ex.StackTrace +"

");
            }
        }

        protected void btnExcluir_Click(object sender, EventArgs e)
        {
            //Objeto de conexão com o banco
            var mongo = new Mongo();

            /*Esse é o principal objeto da aplicação,
             * seria o "objeto de negócio",
             * do tipo par-valor(dicionário)
             */
            var produto = new Document();

            mongo.Connect();

            /*Variável do tipo Database,
             * executa funções de conexão
             */
            var db = mongo.getDB("BancoDeDados");

            /*Pegando a coleção, que seria o equivalente
             *a uma tabela em SQL
             */
            var produtosColecao = db.GetCollection("Produtos");

            //Definindo os valores das propriedades.
            produto["valor"] = txtValor.Text;
            produto["nome"] = txtNome.Text;
            produto["validade"] = txtDataValidade.Text;
            produto["quantidade"] = txtQtdd.Text;

            try
            {
                produtosColecao.Delete(produto);
            }
            catch (Exception ex)
            {
                 Response.Write("

 Data:" + ex.Data + "
Message: " +
                    ex.Message + "
InnerException:" + ex.InnerException +
                               "
 Stacktrace:" + ex.StackTrace + "

");
            }

        }</pre>
<pre style="text-align: center;">        protected void btnAlterar_Click(object sender, EventArgs e)
        {
            //Objeto de conexão com o banco
            var mongo = new Mongo();

            /*Esse é o principal objeto da aplicação,
             * seria o "objeto de negócio",
             * do tipo par-valor(dicionário)
             */
            var produto = new Document();

            mongo.Connect();

            /*Variável do tipo Database,
             * executa funções de conexão
             */
            var db = mongo.getDB("BancoDeDados");

            /*Pegando a coleção, que seria o equivalente
             *a uma tabela em SQL
             */
            var produtosColecao = db.GetCollection("Produtos");

            //Definindo os valores das propriedades.
            produto["valor"] = txtValor.Text;
            produto["nome"] = txtNome.Text;
            produto["validade"] = txtDataValidade.Text;
            produto["quantidade"] = txtQtdd.Text;

            try
            {
                produtosColecao.Update(produto);
            }
            catch (Exception ex)
            {

                Response.Write("

 Data:" + ex.Data + "
Message: " +
                    ex.Message + "
InnerException:" + ex.InnerException +
                               "
 Stacktrace:" + ex.StackTrace + "

");
            }
        }

        protected void btnProcurar_Click(object sender, EventArgs e)
        {
            //Objeto de conexão com o banco
            var mongo = new Mongo();

            /*Esse é o principal objeto da aplicação,
             * seria o "objeto de negócio",
             * do tipo par-valor(dicionário)
             */
            var produto = new Document();

            mongo.Connect();

            /*Variável do tipo Database,
             * executa funções de conexão
             */
            var db = mongo.getDB("BancoDeDados");

            /*Pegando a coleção, que seria o equivalente
             *a uma tabela em SQL
             */
            var produtosColecao = db.GetCollection("Produtos");

            if (!txtValor.Text.Equals(""))
            produto["valor"] = txtValor.Text;
            if (!txtNome.Text.Equals(""))
            produto["nome"] = txtNome.Text ;
            if (!txtDataValidade.Text.Equals(""))
            produto["validade"] = txtDataValidade.Text;
            if (!txtQtdd.Text.Equals(""))
            produto["quantidade"] = txtQtdd.Text;
            try
            {
                Cursor cr = (Cursor)produtosColecao.Find(produto);
                List&lt; Produto &gt; lista = new List &lt; Produto &gt; ();

                foreach (var item in cr.Documents)
                {
                    Produto p = new Produto();
                    p.Nome = item["nome"].ToString();
                    p.Quantidade = Convert.ToInt32(item["quantidade"]);
                    p.Validade = Convert.ToDateTime(item["validade"]);
                    p.Valor = Convert.ToDouble(item["valor"]);
                    lista.Add(p);

                }

                grdBusca.DataSource = lista;
                grdBusca.DataBind();
                grdBusca.Visible = true;
            }
            catch (Exception ex)
            {
               Response.Write("

 Data:" + ex.Data + "
Message: " +
                    ex.Message + "
InnerException:" + ex.InnerException +
                               "
 Stacktrace:" + ex.StackTrace + "

");
            }
        }
    }
}</pre>
<p style="text-align: center;">Note que coloquei uma checagem simples para que apenas campos com valores definidos( diferentes &#8220;&#8221; ou <em>null</em>) sejam atribuídos  às propriedades do objeto que será pesquisado no banco. Isso ocorre por que cada propriedade do objeto é utilizada como se fosse um AND em linguagem SQL, ou seja: À partir do momento que eu incluo essas propriedades no objeto da busca com valor de &#8220;&#8221; ou <em>null, </em> eles serão parâmetro obrigatórios na busca.</p>
<p style="text-align: center;">E por fim, nossa classe produto, da qual criamos uma lista para popular o GridView no método de busca da página:</p>
<pre style="text-align: center;">   public class Produto
    {
        public Double Valor { get; set; }
        public string Nome { get; set; }
        public int Quantidade { get; set; }
        public DateTime Validade { get; set; }
    }</pre>
<p style="text-align: center;">Bem, é isso. Os comentários estão abertos para as dúvidas, sugestões e críticas. Espero que o artigo tenha sido útil. Abraços e keep coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devfranca.com.br/2010/02/01/utilizando-csharp-com-mongodb/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Upload de arquivos em Flex</title>
		<link>http://www.devfranca.com.br/2010/01/30/upload-de-arquivos-em-flex/</link>
		<comments>http://www.devfranca.com.br/2010/01/30/upload-de-arquivos-em-flex/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 14:44:38 +0000</pubDate>
		<dc:creator>Cristian Klauss</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.devfranca.com.br/2010/01/30/upload-de-arquivos-em-flex/</guid>
		<description><![CDATA[Olá a todos, hoje venho falar um pouco sobre upload de arquivos no flex. O exemplo trata da primeira parte do trabalho, que e a captura do arquivo na maquina do cliente e o envio do arquivo através de uma requisição GET. No flex e necessário que uma outra página capture este arquivo e trate [...]]]></description>
			<content:encoded><![CDATA[<p>Olá a todos, hoje venho falar um pouco sobre upload de arquivos no flex. O exemplo trata da primeira parte do trabalho, que e a captura do arquivo na maquina do cliente e o envio do arquivo através de uma requisição GET. No flex e necessário que uma outra página capture este arquivo e trate o mesmo, ela pode ser um pagina, jsp, php, aspx, ou alguma outra tecnologia que trabalhe com gerenciamento de arquivos WEB. Então vamos o código</p>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">&lt;?xml version="<span style="color: #8b0000">1.0</span>" encoding="<span style="color: #8b0000">utf-8</span>"?&gt;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">&lt;mx:Application xmlns:mx="<span style="color: #8b0000">http://www.adobe.com/2006/mxml</span>" layout="<span style="color: #8b0000">absolute</span>"&gt;
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">&lt;mx:Script&gt;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">&lt;![CDATA[
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">  <span style="color: #0000ff">private</span> <span style="color: #0000ff">var</span> arquivo:FileReference = <span style="color: #0000ff">new</span> FileReference();
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"></pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">  <span style="color: #0000ff">private</span> <span style="color: #0000ff">function</span> onSelect(evt:Event):<span style="color: #0000ff">void</span> {
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">    txtNomeArquivo.text = arquivo.<span style="color: #0000ff">name</span>;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">  }
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">  <span style="color: #0000ff">private</span> <span style="color: #0000ff">function</span> onUploadIoError(evt:IOErrorEvent):<span style="color: #0000ff">void</span> {
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">    <span style="color: #008000">//Para erros no upload do arquivo tratar aqui.</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">  }
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">  <span style="color: #0000ff">private</span> <span style="color: #0000ff">function</span> onUploadSecurityError(evt:SecurityErrorEvent):<span style="color: #0000ff">void</span> {
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">    <span style="color: #008000">//Para erros de segurança tratar aqui.</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">  }
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">]]&gt;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">&lt;/mx:Script&gt;
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">&lt;mx:Label x="<span style="color: #8b0000">337</span>" y="<span style="color: #8b0000">136</span>" text="<span style="color: #8b0000">Arquivo</span>"/&gt;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">&lt;mx:TextInput id="<span style="color: #8b0000">txtNomeArquivo</span>" x="<span style="color: #8b0000">391</span>" y="<span style="color: #8b0000">134</span>" width="<span style="color: #8b0000">322</span>"/&gt;
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">&lt;mx:Button x="<span style="color: #8b0000">391</span>" y="<span style="color: #8b0000">164</span>" label="<span style="color: #8b0000">Browser</span>"&gt;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">  &lt;mx:click&gt;
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">    &lt;![CDATA[
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      <span style="color: #008000">//Abre o browser para seleção do arquivo desejado.</span>
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      arquivo.addEventListener(Event.SELECT, onSelect);
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      arquivo.addEventListener(IOErrorEvent.IO_ERROR, onUploadIoError);
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      arquivo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onUploadSecurityError);
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      <span style="color: #0000ff">var</span> filtros:FileFilter = <span style="color: #0000ff">new</span> FileFilter("<span style="color: #8b0000">Arquivos de Retorno *.txt; *.doc; *.docx; *.xls; *.xlsx</span>",
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">                                              "<span style="color: #8b0000">*.txt; *.doc; *.docx; *.xls; *.xlsx</span>");
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      <span style="color: #0000ff">var</span> array:<span style="color: #0000ff">Array</span> = <span style="color: #0000ff">new</span> <span style="color: #0000ff">Array</span>(filtros);
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      arquivo.browse(array);
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">    ]]&gt;
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">  &lt;/mx:click&gt;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">&lt;/mx:Button&gt;
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">&lt;mx:Button x="<span style="color: #8b0000">472</span>" y="<span style="color: #8b0000">164</span>" label="<span style="color: #8b0000">Enviar</span>"&gt;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">  &lt;mx:click&gt;
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">    &lt;![CDATA[
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      <span style="color: #008000">//Envia o arquivo para Upload</span>
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">       <span style="color: #0000ff">var</span> sendVars:URLVariables = <span style="color: #0000ff">new</span> URLVariables();
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      sendVars.action = "<span style="color: #8b0000">upload</span>";
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      <span style="color: #008000">//aqui no sendVars poder ser passado mais de um variavel. </span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      <span style="color: #008000">//Ex: sendVars.minhavariavel = "teste";</span>
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      <span style="color: #008000">//objeto usado para setar a pagina que receberá o arquivo</span>
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      <span style="color: #0000ff">var</span> request:URLRequest = <span style="color: #0000ff">new</span> URLRequest();
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      request.data = sendVars;
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      <span style="color: #008000">//e necessario uma pagina para receber o arquivo, ex: .php; .jsp; .aspx.</span>
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      <span style="color: #008000">//No caso foi usado um pagina de aspx .net.</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      <span style="color: #008000">//A pagina deve receber o arquivo e tratá-lo.</span>
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      request.url = "<span style="color: #8b0000">http://meudominio.com.br/PaginaUpload.ashx</span>";
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      request.method = URLRequestMethod.GET; <span style="color: #008000">//requisição do tipo get</span>
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      <span style="color: #008000">//Aqui o objeto FileReference "arquivo" envia o arquivo que foi carregado </span>
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">                <span style="color: #008000">//com o nome de "NomeArquivo"</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      <span style="color: #008000">//A pagina que reberá o arquivo deve este mesmo nome para manipula-lo</span>
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">      arquivo.upload(request, "<span style="color: #8b0000">NomeArquivo</span>");
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">    ]]&gt;
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">  &lt;/mx:click&gt;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">&lt;/mx:Button&gt;
</pre>
<pre style="background-color: #eeeeee; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px">&lt;/mx:Application&gt;
</pre>
<p>No caso o trabalho de tramento do arquivo pode ser feito em uma tecnlogia de sua escolha, mas isto e tema para um outro post, por enquanto é só. </p>
<p>Ate++. Abraço a todos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devfranca.com.br/2010/01/30/upload-de-arquivos-em-flex/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Customizando o HttpModule no Asp.Net</title>
		<link>http://www.devfranca.com.br/2010/01/21/customizando-o-httpmodule-no-aspnet/</link>
		<comments>http://www.devfranca.com.br/2010/01/21/customizando-o-httpmodule-no-aspnet/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 16:11:27 +0000</pubDate>
		<dc:creator>Nelson Borges</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.devfranca.com.br/?p=380</guid>
		<description><![CDATA[Olá, neste artigo iremos ver como criar um módulo HTTP (httpmodule) customizado no asp.net. O pipeline HTTP é uma série de extensões de objetos que são iniciados pelo Asp.Net runtime no momento de processar uma solicitação o HTTP Handlers e o HTTP Modules são componentes .Net que servem como pontos principais de extensibilidade dos pipelines.
Bom [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="text-indent: 35.4pt; margin: 0cm 0cm 10pt;"><span style="font-family: Calibri; font-size: small;">Olá, neste artigo iremos ver como criar um módulo HTTP (httpmodule) customizado no asp.net. O pipeline HTTP é uma série de extensões de objetos que são iniciados pelo Asp.Net runtime no momento de processar uma solicitação o HTTP Handlers e o HTTP Modules são componentes .Net que servem como pontos principais de extensibilidade dos pipelines.</span></p>
<p class="MsoNormal" style="text-indent: 35.4pt; margin: 0cm 0cm 10pt;"><span style="font-family: Calibri; font-size: small;">Bom todo módulo deve herdar da Interface IHttpModule que se encontra no namespace System.Web, por isso iremos seguir os seguintes passos:</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt 35.4pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong style="mso-bidi-font-weight: normal;">1-)</strong> Crie um projeto do tipo ClassLibrary chamado <strong style="mso-bidi-font-weight: normal;">Module</strong>.<br />
<strong style="mso-bidi-font-weight: normal;">2-)</strong> Adicione a referência System.Web.<br />
<strong style="mso-bidi-font-weight: normal;">3-)</strong> Exclua o arquivo class1.cs do seu projeto Module e crie uma nova classe com o nome de ModuleCustom, nesta classe peça para herdar da interface IHttModule.</span></span></p>
<table class="MsoTableGrid" style="border-collapse: collapse; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;">
<td style="padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 432.2pt; padding-right: 5.4pt; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; border: black 1pt solid;" width="576" valign="top">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; color: blue; font-size: 9.5pt;">public</span><span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">class</span> <span style="color: #2b91af;">ModuleCustom</span> : <span style="color: #2b91af;">IHttpModule</span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri; font-size: small;"> </span></p>
<p class="MsoNormal" style="text-indent: 35.4pt; margin: 0cm 0cm 10pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong style="mso-bidi-font-weight: normal;">4-)</strong> Clique na interface e peça para implementar os métodos da mesma, repare que ele irá implementar o método Init e Dispose. Perceba que no método Init estamos recebendo como parâmetro um objeto do tipo <strong style="mso-bidi-font-weight: normal;">HttpApplication</strong>, este objeto é passado automaticamente pelo runtime para o Module HTTP e é nele que iremos personalizar as ações (eventos) .</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri; font-size: small;">Quais eventos são e o que fazem os eventos do <strong style="mso-bidi-font-weight: normal;">HttpApplication</strong> ?</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri; font-size: small;">Segue abaixo uma lista dos eventos e a respectiva descrição:</span></p>
<table class="MsoTableGrid" style="border-collapse: collapse; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;">
<td style="padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 432.2pt; padding-right: 5.4pt; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; border: black 1pt solid;" width="576" valign="top">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">AcquireRequestState</span></strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">: chame este evento para permitir que o módulo obtenha ou crie o estado (por exemplo, a sessão) da solicitação.</span></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">AuthenticateRequest</span></strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">: chame este evento quando um módulo de segurança precisar autenticar o usuário antes que ele processe a solicitação.</span></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">AuthorizeRequest</span></strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">: chame este evento através de um módulo de segurança quando a solicitação precisar ser autorizada. Chamado após autenticação.</span></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">BeginRequest</span></strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">: chame este evento para notificar um módulo de que a nova solicitação está começando.</span></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Disposed</span></strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">: chame este evento para notificar o módulo de que o aplicativo está sendo encerrado por algum motivo. Permite que o módulo execute uma limpeza interna.</span></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">EndRequest</span></strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">: chame este evento para notificar o módulo de que a solicitação está terminando.</span></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Error</span></strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">: chame este evento para notificar o módulo de que ocorreu um erro durante o processamento da solicitação.</span></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">PostRequestHandlerExecute</span></strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">: chame este evento para notificar o módulo de que o identificador terminou o processamento da solicitação.</span></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">PreRequestHandlerExecute</span></strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">: chame este evento para notificar o módulo de que identificador da solicitação está prestes a ser chamado.</span></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">PreSendRequestContent</span></strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">: chame este evento para notificar o módulo de que o conteúdo está prestes a ser enviado ao cliente.</span></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">PreSendRequestHeaders</span></strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">: chame este evento para notificar o módulo de que os cabeçalhos HTTP estão prestes a serem enviados ao cliente.</span></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">ReleaseRequestState</span></strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">: chame este evento para permitir que o módulo libere o estado, pois o identificador terminou o processamento da solicitação.</span></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">ResolveRequestCache</span></strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">: chame este evento após a autenticação. Os módulos de cache usam este evento para determinar se a solicitação deve ser processada pelo cache ou por um identificador.</span></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-spacerun: yes;"> </span>UpdateRequestCache</span></strong><span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">: chame este evento após receber uma resposta do identificador. Os módulos de cache devem atualizar o cache com a resposta</span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri; font-size: small;"> </span></p>
<p class="MsoNormal" style="text-indent: 35.4pt; margin: 0cm 0cm 10pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong style="mso-bidi-font-weight: normal;">5-)</strong> Para nosso exemplo iremos utilizar o evento BeginRequest, por isso iremos criar um evento dentro de nossa classe e posteriormente associaremos este evento ao evento do <strong style="mso-bidi-font-weight: normal;">HttpApplication</strong>.</span></span></p>
<table class="MsoTableGrid" style="border-collapse: collapse; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;">
<td style="padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 432.2pt; padding-right: 5.4pt; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; border: black 1pt solid;" width="576" valign="top">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; color: blue; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US">namespace</span><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"> Module</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US">{</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">    </span><span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">ModuleCustom</span> : <span style="color: #2b91af;">IHttpModule</span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>{</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">        </span><span style="color: blue;">private</span> <span style="color: blue;">string</span> Inicio;</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; color: blue; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>#region</span><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"> IHttpModule Members</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">        </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> Dispose()</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>{</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">            </span><span style="color: blue;">throw</span> <span style="color: blue;">new</span> <span style="color: #2b91af;">NotImplementedException</span>();</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>}</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">        </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> Init(<span style="color: #2b91af;">HttpApplication</span> context)</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>{</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">            </span>context.BeginRequest += <span style="color: blue;">new</span> <span style="color: #2b91af;">EventHandler</span>(OnBeginRequestCustom);</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>}</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">        </span><span style="color: blue;">protected</span> <span style="color: blue;">void</span> OnBeginRequestCustom(<span style="color: blue;">object</span> o, <span style="color: #2b91af;">EventArgs</span> args)</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>{</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">            </span><span style="color: #2b91af;">HttpApplication</span> app = o <span style="color: blue;">as</span> <span style="color: #2b91af;">HttpApplication</span>;</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">            </span></span><span style="font-family: Consolas; font-size: 9.5pt;">Inicio = <span style="color: blue;">string</span>.Format(<span style="color: #a31515;">&#8220;Hello: O BeginRequest começou a ser executado em {0}&#8221;</span>, <span style="color: #2b91af;">DateTime</span>.Now);</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;">            </span>app.Context.Response.Write(Inicio);</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;">        </span>}</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt;"> </span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; color: blue; font-size: 9.5pt;"><span style="mso-spacerun: yes;">        </span>#endregion</span><span style="font-family: Consolas; font-size: 9.5pt;"></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;">    </span>}</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt;"> </span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt;">}</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-family: Calibri; font-size: small;"> </span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri; font-size: small;"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri; font-size: small;">Note que no exemplo acima, criamos um evento customizado chamado <strong style="mso-bidi-font-weight: normal;">OnBeginRequestCustom</strong> e este evento foi associado ao HttpApplication através do EventHandler. Dentro do nosso BeginRequest customizando, estamos pegando o valor de inicio da requisição.</span></p>
<p class="MsoNormal" style="text-indent: 35.4pt; margin: 0cm 0cm 10pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong style="mso-bidi-font-weight: normal;">6-)</strong> Compile o projeto, copie a DLL para o Bin do seu projeto Web ou para o Gac do Servidor.</span></span></p>
<p class="MsoNormal" style="text-indent: 35.4pt; margin: 0cm 0cm 10pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong style="mso-bidi-font-weight: normal;">7-)</strong> Para finalizar no web.config da sua aplicação altere a referência do httpmodule, neste momento iremos fazer referência a nossa dll.</span></span></p>
<table class="MsoTableGrid" style="border-collapse: collapse; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;">
<td style="padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 432.2pt; padding-right: 5.4pt; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; border: black 1pt solid;" width="576" valign="top">
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; color: blue; font-size: 9.5pt;"><span style="mso-spacerun: yes;">    </span></span><span style="font-family: Consolas; color: blue; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US">&lt;</span><span style="font-family: Consolas; color: #a31515; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US">configuration</span><span style="font-family: Consolas; color: blue; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US">&gt;</span><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; color: blue; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">      </span>&lt;</span><span style="font-family: Consolas; color: #a31515; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US">system.web</span><span style="font-family: Consolas; color: blue; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US">&gt;</span><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; color: blue; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>&lt;</span><span style="font-family: Consolas; color: #a31515; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US">httpModules</span><span style="font-family: Consolas; color: blue; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US">&gt;</span><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; color: blue; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">          </span>&lt;</span><span style="font-family: Consolas; color: #a31515; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US">add</span><span style="font-family: Consolas; color: blue; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"> </span><span style="font-family: Consolas; color: red; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US">name</span><span style="font-family: Consolas; color: blue; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US">=</span><span style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US">&#8220;<span style="color: blue;">Module</span>&#8220;<span style="color: blue;"> </span><span style="color: red;">type</span><span style="color: blue;">=</span>&#8220;<span style="color: blue;">Module.ModuleCustom, Module</span>&#8220;<span style="color: blue;"> /&gt;</span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; color: blue; font-size: 9.5pt; mso-ansi-language: EN-US;" lang="EN-US"><span style="mso-spacerun: yes;">        </span></span><span style="font-family: Consolas; color: blue; font-size: 9.5pt;">&lt;/</span><span style="font-family: Consolas; color: #a31515; font-size: 9.5pt;">httpModules</span><span style="font-family: Consolas; color: blue; font-size: 9.5pt;">&gt;</span><span style="font-family: Consolas; font-size: 9.5pt;"></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; color: blue; font-size: 9.5pt;"><span style="mso-spacerun: yes;">      </span>&lt;/</span><span style="font-family: Consolas; color: #a31515; font-size: 9.5pt;">system.web</span><span style="font-family: Consolas; color: blue; font-size: 9.5pt;">&gt;</span><span style="font-family: Consolas; font-size: 9.5pt;"></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; color: blue; font-size: 9.5pt;"><span style="mso-spacerun: yes;">    </span>&lt;/</span><span style="font-family: Consolas; color: #a31515; font-size: 9.5pt;">configuration</span><span style="font-family: Consolas; color: blue; font-size: 9.5pt;">&gt;</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-family: Calibri; font-size: small;"> </span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri; font-size: small;"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong style="mso-bidi-font-weight: normal;">Nota</strong>: No caso da dll estar no gac é necessário referenciar no type o public key token.</span></span></p>
<p class="MsoNormal" style="text-indent: 35.4pt; margin: 0cm 0cm 10pt;"><span style="font-size: small;"><span style="font-family: Calibri;"><strong style="mso-bidi-font-weight: normal;">8-)</strong> Agora basta testar o seu projeto.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri; font-size: small;"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri; font-size: small;">Espero que este post seja útil.</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri; font-size: small;"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri; font-size: small;">Abraço,</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri; font-size: small;">Nelson Borges</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.devfranca.com.br/2010/01/21/customizando-o-httpmodule-no-aspnet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Novo projeto do CodePlex facilita desenvolvimentos PHP</title>
		<link>http://www.devfranca.com.br/2010/01/19/novo-projeto-do-codeplex-facilita-desenvolvimentos-php/</link>
		<comments>http://www.devfranca.com.br/2010/01/19/novo-projeto-do-codeplex-facilita-desenvolvimentos-php/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 21:43:57 +0000</pubDate>
		<dc:creator>Nelson Borges</dc:creator>
		
		<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.devfranca.com.br/?p=378</guid>
		<description><![CDATA[php]]></description>
			<content:encoded><![CDATA[<p>Você faz desenvolvimentos em PHP e mantém dados no Microsoft SQL Server? Então esse novo aplicativo seguramente vai facilitar a sua vida. Trata-se de um projeto de código aberto e hospedado no CodePlex, que ajudará desenvolvedores PHP a criarem um aplicativo CRUD (Create, Read, Update, Delete) simples, capaz de rodar tanto no Microsoft SQL Server, quanto no SQL Azure e no Windows Azure Storage.</p>
<p>O aplicativo pode ser facilmente instalado no Windows e suporta navegação, paginação, busca e customização de dados através de um simples CSS.</p>
<p>E o melhor, tudo o que você precisa é de um servidor PHP, uma conexão à internet e o SQL Server 2005 ou superior. Para saber mais detalhes sobre o novo aplicativo e sobre como utilizá-lo em seus desenvolvimentos PHP, visite o blog <a href="mailto:Interoperability@Microsoft.">Interoperability@Microsoft.</a></p>
<p> </p>
<p>Fonte: <a title="IT News" href="http://blogs.msdn.com/itnews/archive/2010/01/07/novo-projeto-do-codeplex-facilita-desenvolvimentos-php.aspx">IT News</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.devfranca.com.br/2010/01/19/novo-projeto-do-codeplex-facilita-desenvolvimentos-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Feliz Natal e um feliz 2010.</title>
		<link>http://www.devfranca.com.br/2009/12/23/feliz-natal-e-um-feliz-2010/</link>
		<comments>http://www.devfranca.com.br/2009/12/23/feliz-natal-e-um-feliz-2010/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 15:21:35 +0000</pubDate>
		<dc:creator>Nelson Borges</dc:creator>
		
		<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.devfranca.com.br/?p=376</guid>
		<description><![CDATA[Bom pessoal, para quem acompanha o DevFranca nesta semana e na próxima estamos dedicados a familia e amigos, por isso creio que não haverá novos artigos neste período .Desejo a todos um feliz Natal e um feliz 2010, para finalizar deixo este texto que encontrei no Arnaldo Jabor, um abraço a todos:
 
O grande barato da [...]]]></description>
			<content:encoded><![CDATA[<div>Bom pessoal, para quem acompanha o DevFranca nesta semana e na próxima estamos dedicados a familia e amigos, por isso creio que não haverá novos artigos neste período .<strong>Desejo a todos um feliz Natal e um feliz 2010, </strong>para finalizar deixo este texto que encontrei no Arnaldo Jabor, um abraço a todos:</div>
<div> </div>
<div><span style="COLOR: red; FONT-SIZE: 16pt"><span style="color: #000000; font-size: x-small;">O grande barato da vida é olhar para trás e sentir orgulho. É viver cada momento e construir a felicidade aqui e agora. Claro que a vida prega peças. O bolo não cresce, o pneu fura, chove demais, perdemos pessoas que amamos&#8230; Mas, pensa só:<br />
Tem graça viver sem rir de gargalhar, pelo menos uma vez ao dia? Tem sentido estragar o dia por causa de uma discussão na ida pro trabalho?<br />
Eu quero viver bem&#8230;E você? 2009 foi um ano cheio de coisas boas, mas também de problemas e desilusões, tristezas e perdas, reencontros&#8230;<br />
Normal&#8230;<br />
2010 não vai ser diferente. Muda o século, o milênio muda, mas o Homem é cheio de imperfeições, a natureza tem sua personalidade que nem sempre é a que a gente deseja, mas, e aí? Fazer o quê? Acabar com seu dia? Com seu bom humor? Com sua esperança?<br />
O que eu desejo pra todos nós é sabedoria. E que todos nós saibamos transformar tudo em uma boa experiência. O nosso desejo não se realizou?  Beleza&#8230;Não estava na hora, não deveria ser a melhor coisa para esse momento (me lembro sempre de uma frase que ouvi e adoro: &#8216;cuidado com seus sonhos, desejos, eles podem se tornar realidade&#8217;).<br />
Chorar de dor, de solidão, de tristeza, faz parte do ser humano&#8230;Mas,se a gente se entender e permitir olhar o outro e o mundo com generosidade,as coisas ficam diferentes. Desejo para todo mundo esse olhar especial!<br />
2010 pode ser um ano especial, se nosso olhar for diferente.<br />
Pode ser muito legal, se entendermos nossas fragilidades e egoísmos e dermos a volta nisso. Somos fracos, mas podemos melhorar. Somos egoístas, mas podemos entender o outro.<br />
2010 pode ser o máximo, maravilhoso, lindo, especial!<br />
Depende de mim&#8230;</span></span></div>
<div><span style="COLOR: red; FONT-SIZE: 16pt"><span style="color: #000000; font-size: x-small;">De você. Pode ser&#8230;E que seja!&#8217; </span></span><span style="COLOR: red; FONT-SIZE: 16pt"><span style="color: #000000; font-size: x-small;"><br />
(Arnaldo Jabor)</span></span>Abraço,</p>
<p><a href="http://nelsonborgesjr.spaces.live.com/default.aspx">Nelson Borges</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.devfranca.com.br/2009/12/23/feliz-natal-e-um-feliz-2010/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Publicação de Artigos - Nelson Borges</title>
		<link>http://www.devfranca.com.br/2009/12/12/publicacao-de-artigos-nelson-borges/</link>
		<comments>http://www.devfranca.com.br/2009/12/12/publicacao-de-artigos-nelson-borges/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 13:44:16 +0000</pubDate>
		<dc:creator>Nelson Borges</dc:creator>
		
		<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.devfranca.com.br/?p=374</guid>
		<description><![CDATA[Olá, ALL.
 
Um tempo atrás recebi o convite do Patrick/Mirko para escrever alguns artigos técnicos na seção de matérias do site SuperDownloads, fiquei muito feliz pelo convite e agradeço a ambos e espero poder estar a altura do site, ontem recebi o e-mail confirmando que meu primeiro artigo no site  foi publicado. O artigo trata-se uma ferramenta chamada [...]]]></description>
			<content:encoded><![CDATA[<div>Olá, ALL.</div>
<div> </div>
<div>Um tempo atrás recebi o convite do Patrick/Mirko para escrever alguns artigos técnicos na seção de matérias do site <strong><a href="http://www.superdownloads.com.br/">SuperDownloads</a></strong>, fiquei muito feliz pelo convite e agradeço a ambos e espero poder estar a altura do site, ontem recebi o e-mail confirmando que meu primeiro artigo no site  foi publicado. O artigo trata-se uma ferramenta chamada IEAK 8, o IEAK auxilia a personalizar de versões do Internet Explorer, como as versões que vinham com cd de provedores de internet anteriormente, para saber mais e ler meu primeiro artigo no Superdownloads, <a title="clique aqui." href="http://superdownloads.uol.com.br/materias/personalizando-internet-explorer-8.html">clique aqui</a>.</div>
<div> </div>
<div>Atualmente tenho participação com artigos nos seguintes sites:</div>
<div> </div>
<div><strong>DevFranca </strong>(xodó) -&gt; Comunidade dedicada aos desenvolvedores de Franca -&gt; <a href="http://www.devfranca.com.br/">www.devfranca.com.br</a> ou <a href="http://devfranca.ning.com/">http://devfranca.ning.com</a></div>
<div><strong>Blog </strong>-&gt; Blog pessoal -&gt; <a href="http://nelsonborgesjr.spaces.live.com">http://nelsonborgesjr.spaces.live.com</a></div>
<div><strong>DevMedia </strong>-&gt; Site de artigos/videos técnicos: <a href="http://www.devmedia.com.br/nelsonborges">http://www.devmedia.com.br/nelsonborges</a></div>
<div><strong>VSTS </strong>-&gt; Comunidade fundada pelo MVP Ramon Durães com foco no Visual Studio Team System : <a href="http://www.vstsbrasil.net/">http://www.vstsbrasil.net/</a></div>
<div> E alguns outros que não são com tanta frequência..</div>
<div> </div>
<div>Abs,</div>
<div>Nelson Borges.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.devfranca.com.br/2009/12/12/publicacao-de-artigos-nelson-borges/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
