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

<channel>
	<title>Raphael Monroe.com &#187; java</title>
	<atom:link href="http://www.raphaelmonroe.com/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.raphaelmonroe.com</link>
	<description>Blog de novidades em tecnologia, web, games e muito mais!</description>
	<lastBuildDate>Sat, 27 Feb 2010 12:47:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Cobertura: The Developer&#8217;s Conference (TDC) 2009 &#8211; Dia 1</title>
		<link>http://www.raphaelmonroe.com/tecnologia/cobertura-the-developers-conference-tdc-2009-dia-1/</link>
		<comments>http://www.raphaelmonroe.com/tecnologia/cobertura-the-developers-conference-tdc-2009-dia-1/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 20:51:36 +0000</pubDate>
		<dc:creator>Raphael Monroe</dc:creator>
				<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[developer's]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[tdc2009]]></category>

		<guid isPermaLink="false">http://www.raphaelmonroe.com/?p=764</guid>
		<description><![CDATA[A abertura do evento contou com uma tentativa (segundo os organizadores) de enquadrar a conferência em um nível internacional. Para tanto, apresentou agradecimentos, divulgação de produtos, dentre outras ações. Foi apresentanda uma dança de robôs, os quais faziam coreografias conforme a música se desenrolava. Música esta, uma paródia chamada “Novo Bug”.]]></description>
			<content:encoded><![CDATA[<p><img src='http://www.raphaelmonroe.com/wp-content/plugins/simple-post-thumbnails/timthumb.php?src=/wp-content/thumbnails/764.jpg&amp;w=200&amp;h=150&amp;zc=1&amp;ft=jpg' alt='post thumbnail' /></p>
<p>Fala pessoal, </p>
<p>Então, o tempo realmente está curto e só agora pude começar os posts sobre o <a href="http://www.raphaelmonroe.com/tag/tdc2009/">TDC 2009</a>, evento realizado no último final de semana (06 e 07 de novembro).</p>
<p>Pois bem, hoje irei postar os temas abordados no primeiro dia da conferência.</p>
<p><span id="more-764"></span></p>
<p><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-abertura.png" alt="tdc2009-abertura" title="tdc2009-abertura" width="590" height="70" class="alignleft size-full wp-image-767" style="border:1px solid #ccc;"/></p>
<p><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-foto-abertura.jpg" alt="tdc2009-foto-abertura" title="tdc2009-foto-abertura" width="590" height="434" class="alignleft size-full wp-image-800" style="border:1px solid #ccc;"/></p>
<p>A abertura do evento contou com uma tentativa (segundo os organizadores) de enquadrar a conferência em um nível internacional. Para tanto, apresentou agradecimentos, divulgação de produtos, dentre outras ações. </p>
<p>Foi apresentanda uma dança de robôs, os quais faziam coreografias conforme a música se desenrolava. Música esta, uma paródia chamada “Novo Bug”, bem engraçada e de acordo com os enfrentamentos diários de todos desenvolvedores.</p>
<p><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-tendenciasEE.png" alt="tdc2009-tendenciasEE" title="tdc2009-tendenciasEE" width="590" height="70" class="alignleft size-full wp-image-769" style="border:1px solid #ccc;"/></p>
<p><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-foto-2.jpg" alt="tdc2009-foto-2" title="tdc2009-foto-2" width="590" height="434" class="alignleft size-full wp-image-803" style="border:1px solid #ccc;" /></p>
<p>O palestrante foi Rod Johson da <a href="http://www.springsource.com/">Spring Source</a>. Durante uma hora (aproximadamente), ele discutiu o futuro de aplicações corporativas em <a href="http://www.raphaelmonroe.com/tag/java/">Java</a>, apresentando alguns dados estatísticos comparando a queda do uso do java ao aumento do uso de linguagens como C, <a href="http://www.raphaelmonroe.com/tag/php/">PHP</a> e C#.</p>
<p>O importante foi a discussão gerada a respeito da mudança de paradigma. Antigamente mudanças na <a href="http://www.raphaelmonroe.com/tag/tecnologia/">tecnologia</a> levavam muito tempo enquanto nos dias atuais, um profissional pode ficar desatualizado em questão de poucos anos. O palestrante também destacou a dificuldade de se escolher tecnologias em meio às várias opções existentes. </p>
<p>Na hora do <em>coffe-break</em> aproveitei para tirar uma foto com o Rod Johnson:<br />
<img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/TDC2009-FOTO-3.jpg" alt="TDC2009-FOTO-3" title="TDC2009-FOTO-3" width="590" height="434" class="alignleft size-full wp-image-804" style="border:1px solid #ccc;"/></p>
<p><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-carreira.png" alt="tdc2009-carreira" title="tdc2009-carreira" width="590" height="70" class="alignleft size-full wp-image-771" style="border:1px solid #ccc;"/></p>
<p><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-foto-4.jpg" alt="tdc2009-foto-4" title="tdc2009-foto-4" width="590" height="434" class="alignleft size-full wp-image-806" style="border:1px solid #ccc;"/><br />
Os participantes do evento tiveram a oportunidade de se envolver em uma mesa redonda de discussão sobre carreira e fatores que proporcionam o sucesso para quem trabalha com desenvolvimento de software. Os três palestrantes internacionais (Rod Johson – Spring Source, Ed Burn – Sun, Mike Keith – Oracle) comentaram como foi o caminho que percorreram para chegar no status que se encontram atualmente. Falaram sobre a não obrigação de certificações no ato da contratação de colaboradores e a necessidade de se especializar em determinada área, evitando o conceito de saber de tudo um pouco. No final, o público pode participar através de perguntas direcionadas aos palestrantes.</p>
<p><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-gwt-guice.png" alt="tdc2009-gwt-guice" title="tdc2009-gwt-guice" width="590" height="70" class="alignleft size-full wp-image-773" style="border:1px solid #ccc;"/><br />
<img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-foto-5.jpg" alt="tdc2009-foto-5" title="tdc2009-foto-5" width="590" height="434" class="alignleft size-full wp-image-808" style="border:1px solid #ccc;"/></p>
<p>Este foi o primeiro Lightning Talk (apresentação rápida e objetiva de 15 minutos) do evento. Éder Magalhães da Globalcode destacou as principais funcionalidades das ferramentas GWT e Guice (lê-se Juice) do <a href="http://www.raphaelmonroe.com/tag/google/">Google</a>. O importante aqui foi tomar conhecimento das possibilidades existentes no mercado.</p>
<p><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-agile.png" alt="tdc2009-agile" title="tdc2009-agile" width="590" height="70" class="alignleft size-full wp-image-775" style="border:1px solid #ccc;"/><br />
<img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-foto-6.jpg" alt="tdc2009-foto-6" title="tdc2009-foto-6" width="590" height="434" class="alignleft size-full wp-image-809" style="border:1px solid #ccc;"/><br />
O Segundo L.T. do evento contou com a participação de Felipe Almeida da Fratech. O palestrante comentou sobre o papel da arquitetura em times agéis e sobre a importância de se modelar todo o escopo da uma aplicação antes de começar a codificar, propriamente falando. Este fato, possibilita a identificação de pontos críticos que, geralmente são mais focados e apresentam prazos menores.</p>
<p><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-EE6evolucao.png" alt="tdc2009-EE6evolucao" title="tdc2009-EE6evolucao" width="590" height="70" class="alignleft size-full wp-image-777" style="border:1px solid #ccc;"/></p>
<p>A primeira apresentação de Mike Keith destacou “O que há de novo e excitante no JAVA EE 6”. Discutiu sobre: EJB Assíncrono, JNDI global, EJB lite, Anotações, Simplicidade.</p>
<p>Também aproveitei para tirar uma foto com o Mike Keith, simpático pra caramba!!<br />
<img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-foto-7.jpg" alt="tdc2009-foto-7" title="tdc2009-foto-7" width="590" height="434" class="alignleft size-full wp-image-811" style="border:1px solid #ccc;"/></p>
<p><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-ejb31.png" alt="tdc2009-ejb31" title="tdc2009-ejb31" width="590" height="70" class="alignleft size-full wp-image-778" style="border:1px solid #ccc;"/></p>
<p><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-foto-8.jpg" alt="tdc2009-foto-8" title="tdc2009-foto-8" width="590" height="434" class="alignleft size-full wp-image-813" style="border:1px solid #ccc;"/><br />
O terceiro L.T. comentou um trabalho brasileiro que vem sendo feito. No caso, o <a href="http://kenai.com/projects/ejb31codesamples">EJB3.1 Code Samples</a> é uma biblioteca contendo exemplos que exploram os novos conceitos do JAVA EE 6. os exemplos são 100% executáveis. O palestrante apresentou algumas melhorias que devem ser realizadas no projeto, “chamando” a comunidade brasileira para ajudar. Uma das melhorias sugeridas no Code Samples foi a possibilidade de fornecer uma melhor integração com o uso do Maven. </p>
<p><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-compositejsf.png" alt="tdc2009-compositejsf" title="tdc2009-compositejsf" width="590" height="70" class="alignleft size-full wp-image-779" style="border:1px solid #ccc;"/> </p>
<p><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-foto-9.jpg" alt="tdc2009-foto-9" title="tdc2009-foto-9" width="590" height="434" class="alignleft size-full wp-image-814" style="border:1px solid #ccc;"/><br />
A primeira palestra de Ed Burns da <a href="http://www.sun.com/">Sun</a>, apresentou as especificações do JSF 2.0. Burns, discutiu as possibilidades que a nova versão traz ao desenvolvedor, principalmente no que diz respeito &#8216;a criação de componentes customizados. Atualmente, trabalho com o Wicket e, após a palestra e todas as novidades apresentadas, buscarei aprender mais sobre o JSF e, talvez, mudar para esta tecnologia, pois além de apresentar uma comunidade de assíduos desenvolvedores, o JSF possui vasta documentação e, a partir de dezembro, a versão 2.0 já contará com uma integração com o RichFaces. Este, possibilita a criação de interfaces WEB ricas e interativas.</p>
<p><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-jsf20scrumtoys.png" alt="tdc2009-jsf20scrumtoys" title="tdc2009-jsf20scrumtoys" width="590" height="70" class="alignleft size-full wp-image-780" style="border:1px solid #ccc;"/></p>
<p>O quarto L.T. foi uma apresentação do Scrum Toys, biblioteca que possibilita a criação de interfaces que exploram as novas funcionalidade do JSF 2.0.</p>
<p><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/tdc2009-futurojava.png" alt="tdc2009-futurojava" title="tdc2009-futurojava" width="590" height="70" class="alignleft size-full wp-image-781" style="border:1px solid #ccc;"/><br />
O último acontecimento do dia foi uma discussão sobre o futuro do Java. Os integrantes da mesa apresentaram opiniões sobre os rumos da linguagem Java e foram perguntados sobre o que mais a linguagem Java poderá oferecer à comunidade. Comentaram sobre as linguagens “derivadas” do Java, destacando a importância das mesmas na busca por linguagens personalizadas, ao gosto de cada desenvolvedor. O fato da Oracle ter comprado a Sun também foi destaque, evidenciando o medo sobre uma possível extinção da linguagem Java. Entretanto, Mike Keith, na posição de representante da <a href="http://www.oracle.com/index.html">Oracle</a>, citou que é o próprio Java que possibilita a expansão cada vez maior das tecnologias da Empresa e, por isso, o fim da linguagem Java seria, para a própria Oracle, um desastre.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.raphaelmonroe.com/tecnologia/cobertura-the-developers-conference-tdc-2009-dia-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dica: Linguagem Java para entrevistas de emprego e provas de seleção [1]</title>
		<link>http://www.raphaelmonroe.com/dicas/dica-linguagem-java-para-entrevistas-de-emprego-e-provas-de-selecao-1/</link>
		<comments>http://www.raphaelmonroe.com/dicas/dica-linguagem-java-para-entrevistas-de-emprego-e-provas-de-selecao-1/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 17:44:31 +0000</pubDate>
		<dc:creator>Raphael Monroe</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Emprego]]></category>
		<category><![CDATA[emprego]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programação]]></category>

		<guid isPermaLink="false">http://www.raphaelmonroe.com/?p=734</guid>
		<description><![CDATA[
Boa tarde pessoal, 
Iniciarei uma série de posts sobre perguntas que podem ser feitas em entrevistas de emprego. Mais especificamente, as perguntas são relacionadas à programação com a linguagem Java.

Se você está buscando emprego na área e gostaria de obter mais conhecimento para não fazer feio durante um processo de seleção, tente responder às 7 [...]]]></description>
			<content:encoded><![CDATA[<p>
Boa tarde pessoal, </p>
<p>Iniciarei uma série de posts sobre perguntas que podem ser feitas em entrevistas de <a href="http://www.raphaelmonroe.com/tag/emprego/">emprego.</a> Mais especificamente, as perguntas são relacionadas à <a href="http://www.raphaelmonroe.com/tag/programacao/">programação</a> com a linguagem <a href="http://www.raphaelmonroe.com/tag/java/">Java.</a><br />
<br />
Se você está buscando emprego na área e gostaria de obter mais conhecimento para não fazer feio durante um processo de seleção, tente responder às 7 perguntas que farei semanalmente.</p>
<p><span id="more-734"></span></p>
<p><center><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/11/javaJobs.jpg" alt="javaJobs" title="javaJobs" width="400" height="320" class="aligncenter size-full wp-image-748" style="border:1px solid #ccc;" /></center></p>
<p>Tente pensar em umna questão por dia, da seguinte forma:</p>
<ul>
<li>&#8220;Eu realmente entendi a pergunta?&#8221;</li>
<li>&#8220;Bom, entendi. Conheço todos os conceitos envolvidos na pergunta?&#8221;</li>
<li>&#8220;Estou sendo objetivo na resposta?&#8221;</li>
<li>&#8220;A resposta realmente responde a pergunta? Ou foi uma tentativa de &#8220;enrolar&#8221;?&#8221;</li>
<li>&#8220;A resposta final demonstra meus conhecimentos na linguagem? Ficou evidenciada a minha naturalidade para tratar do assunto?&#8221;</li>
</ul>
<p>
Logicamente você não precisa seguir todos esses passos. Mais ainda,  através dos estudos, esse &#8220;modelo&#8221; de resposta será utilizado naturalmente. A dica é estudar e se empenhar, buscando o verdadeiro conhecimento e conforto com a linguagem. Deixe de lado a idéia do decoreba.<br />
<strong><br />
Confira, então, as sete primeiras perguntas:<br />
<em>1 &#8211; Qual a diferença entre uma classe abstrata e uma <a href="http://www.raphaelmonroe.com/tag/interface/">Interface</a>?<br />
2 &#8211; O que você sabe sobre Garbagge Collector ?<br />
3 &#8211; Quais as principais diferenças entre C++ e Java ?<br />
4 &#8211; Discuta a arquitetura RMI.<br />
5 &#8211; Quais as diferenças entre Threads e Processos ?<br />
6 &#8211; Porque usar Servlets? Explique comentando as principais aplicações.<br />
7 &#8211; O que é JDBC? Como ocorre a conexão com o Banco de Dados ?</em><br />
</strong><br />
Sinta-se livre para deixar suas respostas através de comentários. Desta forma, todos os leitores poderão discutir as idéias mais questionáveis, gerando grandes benefícios à comunidade.<br />
<br />
E ae? Já começou a estudar?</p>
<p>[]s</p>
]]></content:encoded>
			<wfw:commentRss>http://www.raphaelmonroe.com/dicas/dica-linguagem-java-para-entrevistas-de-emprego-e-provas-de-selecao-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cobertura: The Developer&#8217;s Conference 2009 (TDC 2009)</title>
		<link>http://www.raphaelmonroe.com/tecnologia/cobertura-the-developers-conference-2009-tdc-2009/</link>
		<comments>http://www.raphaelmonroe.com/tecnologia/cobertura-the-developers-conference-2009-tdc-2009/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 23:18:43 +0000</pubDate>
		<dc:creator>Raphael Monroe</dc:creator>
				<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[developer's]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[tdc2009]]></category>

		<guid isPermaLink="false">http://www.raphaelmonroe.com/?p=683</guid>
		<description><![CDATA[A 3ª edição contará com a participação de Chris Schalk do Google, que trabalha atualmente no time de Google App Engine, e também de Alejandro Guizar, Engenheiro de Software da JBoss, que trabalha nos projetos jBPM, Web Services e Riftsaw, além dos principais nomes da comunidade Java mundial: Ed Burns, Rod Johnson e Mike Keith. ]]></description>
			<content:encoded><![CDATA[<p><img src='http://www.raphaelmonroe.com/wp-content/plugins/simple-post-thumbnails/timthumb.php?src=/wp-content/thumbnails/683.jpg&amp;w=200&amp;h=150&amp;zc=1&amp;ft=jpg' alt='post thumbnail' /></p>
<p>Boa Noite Leitores,</p>
<p>Amanhã (06/11) estarei presente no evento &#8220;<a href="http://www.thedevelopersconference.com.br">The Developer&#8217;s Conference 2009</a>&#8220;, maior evento <a href="http://www.raphaelmonroe.com/tag/java/">Java</a> do país, em São Paulo/SP. </p>
<p>Pela <a href="http://www.thedevelopersconference.com.br/tdc/2009/sp/programacao.seam">programação</a> do evento, podemos perceber a qualidade das palestras e quanta informação útil será compartilhada.</p>
<p><span id="more-683"></span></p>
<p><center><img src="http://www.thedevelopersconference.com.br/banners/banner_tdc2009_468x60_gifAnimado.gif" alt="TDC 2009" /></center></p>
<p>Cofira abaixo o texto de divulgação oficial do TDC 2009.</p>
<blockquote><p>A 3ª edição do The Developer’s Conference 2009, maior evento Java do país, contará com a participação de  Chris Schalk,Developer Advocate do Google, que trabalha atualmente no time de Google App Engine, plataforma de Computação em Nuvem do Google, e também de  Alejandro Guizar, Engenheiro de Software da JBoss, que trabalha nos projetos jBPM, Web Services e Riftsaw, além dos principais nomes da comunidade Java mundial:  Ed Burns,  Rod Johnson e  Mike Keith. </p></blockquote>
<p>Como serão dois dias de palestras e <em>networking</em>, pretendo, ao final de cada dia, postar aqui no blog minha impressões sobre o conteúdo apresentado, visando compartilhar informação com todos que não puderam comparecer.</p>
<p>Tentarei tirar algumas fotos legais do ambiente do evento e junto com os principais palestrantes.</p>
<p>Portanto, acompanhem o <a href="http://www.raphaelmonroe.com">RaphaelMonroe.com</a> nos próximos dias e confira todas as novidades sobre o TDC 2009.</p>
<p>Você pode <a href="http://feeds2.feedburner.com/raphaelmonroe">receber nossas atualizações gratuitas</a> através do Feed.</p>
<p>Um abraço!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.raphaelmonroe.com/tecnologia/cobertura-the-developers-conference-2009-tdc-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bem-vindo(a) ao Wicket: Framework JAVA Web.</title>
		<link>http://www.raphaelmonroe.com/tutoriais/bem-vindoa-ao-wicket-framework-java-web/</link>
		<comments>http://www.raphaelmonroe.com/tutoriais/bem-vindoa-ao-wicket-framework-java-web/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 22:08:19 +0000</pubDate>
		<dc:creator>Raphael Monroe</dc:creator>
				<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Wicket]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.raphaelmonroe.com/?p=440</guid>
		<description><![CDATA[Inicio aqui, uma série de tutoriais sobre o Wicket, este maravilhoso framework com o qual venho tendo enorme prazer em trabalhar. Fornecendo incríveis facilidades para o desenvolvimento Web em JAVA, o Wicket vem se tornando um dos melhores da categoria.
Minha idéia é seguir a linha de raciocínio que utilizei durante a minha aprendizagem. Entretanto, isso [...]]]></description>
			<content:encoded><![CDATA[<p>Inicio aqui, uma série de <a href="http://www.raphaelmonroe.com/tag/tutorial/">tutoriais</a> sobre o <a href="http://wicket.apache.org/">Wicket</a>, este maravilhoso framework com o qual venho tendo enorme prazer em trabalhar. Fornecendo incríveis facilidades para o desenvolvimento Web em JAVA, o Wicket vem se tornando um dos melhores da categoria.</p>
<p>Minha idéia é seguir a linha de raciocínio que utilizei durante a minha aprendizagem. Entretanto, isso não significa que sou um expert, intocável e mestre Wicket. Ainda estudo e aprendo dia após dia. Portanto, ao constatarem erros, fiquem à vontade para comentar sobre eles. Assim, juntos buscaremos sempre as melhores soluções.</p>
<p><span id="more-440"></span></p>
<p><a href="http://www.raphaelmonroe.com/tutoriais/bem-vindoa-ao-wicket-framework-java-web/attachment/apache-wicket/" rel="attachment wp-att-513"><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/10/apache-wicket.png" alt="apache-wicket" title="apache-wicket" width="590" height="70" class="alignleft size-full wp-image-513" style="border:1px solid #ccc;" /></a></p>
<p>A motivação inicial pra a série de tutoriais foi a falta de documentação, pois o Wicket é relativamente novo e, portanto, ainda carece de tutoriais, exemplos e discussões. Espero, com os artigos, difundir um pouco mais as informações sobre o <a href="http://www.raphaelmonroe.com/tag/framework/">framework</a> porque <cia do pagode> &#8220;tudo que é bonito é pra se mostrar&#8221; </cia do pagode>.</p>
<p>Pois bem, antes de fazermos uma breve introdução sobre o Wicket, gostaria de citar as referências mais utilizadas por desenvolvedores que utilizam o framework atualmente.</p>
<p><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/10/wicket-reference.png" alt="wicket-reference" title="wicket-reference" width="590" height="70" class="alignleft size-full wp-image-498" style="border:1px solid #ccc;"/></p>
<p><strong><a href="http://wicket.apache.org/">Apache Wicket</a></strong>: Site oficial do projeto. Apresenta introdução, documentação sobre alguns componentes e exemplos de utilização.</p>
<p><strong><a href="http://cwiki.apache.org/WICKET/reference-library.html">Reference Library</a></strong>: Pertence ao site oficial. Explica como fazer várias coisas com o Wicket. Uma boa pedida para os iniciantes. Vale a pena conferir.</p>
<p><strong><a href="http://wicketinaction.com/">Wicket in Action</a></strong>: Ótimo livro para quem deseja inicar os estudos. Apresenta uma boa didática. com vários exemplos. O autor vai, durante o livro, construindo um aplicativo para venda de queijos online. Com este exemplo, os leitores aprendem fácil e rapidamente os conceitos importantes do framework.</p>
<p><strong><a href="http://wicketstuff.org/confluence/display/STUFFWIKI/Wiki">Wicket Stuff</a></strong>: Possui exemplos e vários projetos relacionados ao Wicket. Podemos encontrar alguns bons componentes para utilizarmos em conjunto com o framework.</p>
<p><a href="http://www.raphaelmonroe.com/wp-content/uploads/2009/10/introduction-wicket.png"><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/10/introduction-wicket.png" alt="introduction-wicket" title="introduction-wicket" width="590" height="70" class="alignleft size-full wp-image-500" style="border:1px solid #ccc;"/></a></p>
<p>Atualmente, existem diversos frameworks para programação <a href="http://www.raphaelmonroe.com/tag/java/">JAVA</a> Web, cada qual possuindo prós e contras. Assim, no princípio de um novo projeto, vários programadores chegam a ficar um tanto quanto preocupados no momento da escolha do melhor framework, dadas as inúmeras alternativas, conforme podemos ver na figura a seguir:</p>
<p><center><div id="attachment_459" class="wp-caption aligncenter" style="width: 578px"><a href="http://www.raphaelmonroe.com/wp-content/uploads/2009/10/lista-frameworks.png"><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/10/lista-frameworks.png" alt="Figura 1: Frameworks Web" title="lista-frameworks" width="568" height="307" class="size-full wp-image-459" style="border:1px solid #ccc;" /></a><p class="wp-caption-text">Figura 1: Frameworks Web</p></div></center></p>
<p>Uma possível pergunta pode surgir: &#8220;Bom Raphael, se existem tantas opções, porque escolher o <a href="http://www.raphaelmonroe.com/tag/wicket/">Wicket</a>?&#8221;</p>
<p>Peço a permissão de responder essa pergunta explicando alguns termos como <em>stateful</em>, <em>stateless</em> e também sobre clareza de código e separação coerente entre os &#8220;dois mundos&#8221;, no caso, <a href="http://www.raphaelmonroe.com/tag/html/">HTML</a> e JAVA.</p>
<p><a href="http://www.raphaelmonroe.com/tutoriais/bem-vindoa-ao-wicket-framework-java-web/attachment/statefulprogamming/" rel="attachment wp-att-514"><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/10/statefulprogamming.png" alt="statefulprogamming" title="statefulprogamming" width="590" height="70" class="alignleft size-full wp-image-514" style="border:1px solid #ccc;"/></a></p>
<p>Creio que todos os interessados em programação já pararam pra pensar em como é fácil (leia-se menos difícil) se programar em Java, visando o desenvolvimento de aplicativos Desktop. A facilidade a que me refiro diz respeito ao controle de componentes/variáveis existentes no projeto. Podemos criar vários painéis/frames/modais sem a necessidade de controlar requisições entre elas. Isso porque, todo esse controle do estado da conexão é &#8220;automático&#8221;, ou seja, o estado da conexão é sempre mantido. Tal fato, caracteriza Statefull Programming.</p>
<p><a href="http://www.raphaelmonroe.com/wp-content/uploads/2009/10/statelessprotocol1.png"><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/10/statelessprotocol1.png" alt="statelessprotocol" title="statelessprotocol" width="590" height="70" class="alignleft size-full wp-image-509" style="border:1px solid #ccc;"/></a></p>
<p>Muitas vezes ao utilizarmos aplicações web, imaginamos que a programação é feita igualmente à Desktop. Ao contrário, o protocolo <a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol">HTTP</a> não fornece nenhuma facilidade &#8220;embutida&#8221; para continuar interações entre as páginas, ou seja, ele não possui nenhuma informação sobre o estado da aplicação (stateless). Tal tarefa fica a cargo do desenvolvedor. </p>
<p>A técnica comumente utilizada para controlar o estado é passar informações diretamente pela URL, por exemplo:<br />
<em><code></p>
<p>http://www.raphaelmonroe.com/index.php?page_id=3&#038;opentab=5</p>
<p></code></em><br />
O simples código acima ilustra a passagem de parâmetros visando um controle da aplicação. No caso, foi solicitada a página com ID=3 e nela, deve-se abrir a aba 5.</p>
<p>Mas como tudo apresenta falhas, passar informações pela URL possui vários questionamentos à respeito de segurança/autenticação e, nos dias de hoje, é difícil imaginar uma aplicação web, na qual todos os estados são controlados por parâmetros no endereço.</p>
<p><a href="http://www.raphaelmonroe.com/wp-content/uploads/2009/10/jsfjavahtml.png"><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/10/jsfjavahtml.png" alt="jsfjavahtml" title="jsfjavahtml" width="590" height="70" class="alignleft size-full wp-image-493" style="border:1px solid #ccc;"/></a><br />
Creio que quase todos os desenvolvedores JAVA Web, iniciaram seus estudos e projetos (e ainda continuam) seguindo o caminho : Servlets, JSP, JSF, Facelets, RichFaces e por ae vai. Um dos motivos que levam os desenvolvedores para essa estrada, é a quantidade de informações/documentação/exemplos existentes na web. Evidencia-se aqui, um grande problema para os desenvolvedores : a falta de conhecimento teórico.</p>
<p>Em muitos fóruns que frequento, me deparo com inúmeras dúvidas que poderiam ser respondidas com um mínimo de conhecimento teórico. Assim, desenvolvedores vêm utilizando exemplos da net para &#8220;aplicações sérias&#8221; no âmbito corporativo, sem ao menos se preocuparem com o que estão fazendo,  &#8220;remendando&#8221; e &#8220;arresorvendo na gambiarra&#8221;, literalmente. Não estou aqui crucificando frameworks e/ou programadores, só estou alertando para o fato de que &#8220;teoria é preciso&#8221;.</p>
<p>Como falei em JSF, gostaria de indicar um dos melhores posts que já vi à respeito: &#8220;<a href="http://www.rponte.com.br/2009/01/19/o-que-todo-bom-desenvolvedor-jsf-deveria-saber/">O que todo bom desenvolvedor JSF deveria saber</a>&#8221;</p>
<p>Bom, mas porque falar em clareza de código? No site oficial do Wicket, encontramos a seguinte frase à respeito do desenvolvimento em JSP, tendo em vista a presença de código JAVA + HTML :</p>
<blockquote><p>JSP is by far the worst offender, allowing the embedding of Java code directly in web pages, but to some degree almost all of the frameworks from the list (except Tapestry) above introduce some kind of special syntax to your HTML code.</p></blockquote>
<p>A evolução das empresas de TI contribui para maiores &#8220;divisões&#8221; em projetos. A idéia de Webmasters, os quais faziam design, código, etc já está ultrapassada. Hoje, encontramos designers, coders, testers, dentre outros. Aqui, evidencia-se um importante requisito: organização e clareza em todas as partes do projeto, visto que muitas empresas até mesmo terceirizam serviços de design. Portanto, quanto maior a separação entre HTML + CSS e JAVA, maior o rendimento e sucesso de um projeto.</p>
<p><a href="http://www.raphaelmonroe.com/wp-content/uploads/2009/10/escolha-wicket.png"><img src="http://www.raphaelmonroe.com/wp-content/uploads/2009/10/escolha-wicket.png" alt="escolha-wicket" title="escolha-wicket" width="590" height="70" class="alignleft size-full wp-image-495" style="border:1px solid #ccc;"/></a></p>
<p>Ao se programar com o Wicket, você esquece que está desenvolvendo um aplicativo web. Isso porque o desenvolvedor está livre para programar em JAVA com todos os conceitos de orientação a objeto, o qual é stateful. Ou seja, você estará desenvolvendo componentes stateful para um ambiente stateless!! WTF!!!<br />
Essa é a grande &#8220;sacada&#8221; do Wicket. O controle do estado da aplicação é automático.</p>
<p>Um outro aspecto importantíssimo que me ajudou muito, é possibilidade de herança, tanto no JAVA quanto no HTML!!! Basta utilizarmos <a href="http://en.wikipedia.org/wiki/Namespace">namespaces</a> pré-definidos e compatíveis com xhtml. </p>
<p>Com o Wicket o controle é feito orientado à componentes e não à páginas. Tal fato visa facilitar os programadores desktop acostumados com o Swing e awt. Vale ressaltar também o fato de que você nunca verá &#8220;códigos lógicos&#8221; em páginas HTML, as quais apresentarão somente códigos estáticos, sendo a lógica totalmente desenvolvida em JAVA. Por exemplo, se você deseja imprimir na tela uma lista de clientes, basta o seguinte código HTML, ficando a definição do <em>dataview</em> para o código JAVA:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table&gt;
   &lt;tr wicket:id=&quot;clientsList&quot;&gt;
      &lt;td&gt;
         &lt;span wicket:id=”client_name” /&gt;
      &lt;/td&gt;
   &lt;/tr&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<p>Para terminar e não deixar o post muito extenso, uma frase que resume bem os conceitos do Wicket, retirada do site oficial:</p>
<blockquote class="blockquote"><p>Wicket is all about simplicity. There are no configuration files to learn in Wicket. Wicket is a simple class library with a consistent approach to component structure. In Wicket, your web applications will more closely resemble a Swing application than a JSP application. If you know Java (and especially if you know Swing), you already know a lot about Wicket.</p></blockquote>
<p><em>&#8220;Wicket é simplicidade. Não é necessário aprender a criar arquivos de configuração (como aqueles imensos xml&#8217;s de outros frameworks, pois com o wicket é tudo automático). Wicket é uma biblioteca que permite uma programação muito próxima á programação por componentes, pois com este framework, sua aplicação será mais parecida com uma aplicação Swing do que uma mesma JSP. Se você conhece Java (especificamente o Swing), você já possui grande conhecimento sobre o Wicket.&#8221;</em></p>
<p>Em próximos posts, iniciaremos nossos estudos através de exemplos práticos, abordando desde a configuração da IDE até a criação de suas primeiras aplicações utilizando o Wicket. </p>
<p>Até Mais,</p>
<p>[]&#8217;s </p>
]]></content:encoded>
			<wfw:commentRss>http://www.raphaelmonroe.com/tutoriais/bem-vindoa-ao-wicket-framework-java-web/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
