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

<channel>
	<title>Blog de desenvolvimento da Milfont Consulting, Client e Server-side &#187; Ajax</title>
	<atom:link href="http://www.milfont.org/tech/tag/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.milfont.org/tech</link>
	<description>Blog da Comunidade Milfont Consulting, uma empresa especializada em desenvolvimento Web, principalmente Javascript, node.js e muito Javascript.</description>
	<lastBuildDate>Thu, 26 Jan 2012 11:30:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>DWR 3 Release Candidate 1</title>
		<link>http://www.milfont.org/tech/2008/12/24/dwr-3-release-candidate-1/</link>
		<comments>http://www.milfont.org/tech/2008/12/24/dwr-3-release-candidate-1/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 15:33:43 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[DWR]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Joe Walker]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/?p=481</guid>
		<description><![CDATA[Joe Walker anunciou que saiu a RC1 do DWR3 com pequeno atraso com novidades interessantes como suporte a Varargs, Method Overloading, entre outras coisas. Mas destaco algo que deveria ter há tempos e sentíamos falta para construções repetitivas como CRUD (principalmente) que é o que chamou de &#8220;Lightweight typed parameters&#8220;. Até a versão 2 temos [...]]]></description>
			<content:encoded><![CDATA[<p>Joe Walker <a href="http://directwebremoting.org/blog/joe/2008/12/16/dwr_version_3_0_release_candidate_1.html">anunciou</a> que saiu a <a href="http://directwebremoting.org/dwr/download">RC1</a> do <a href="http://directwebremoting.org/dwr">DWR3</a> com <a href="http://www.milfont.org/tech/2008/03/11/dwr-3-em-junho/">pequeno atraso</a> com novidades interessantes como suporte a Varargs, Method Overloading, entre outras coisas. Mas destaco algo que deveria ter há tempos e sentíamos falta para construções repetitivas como CRUD (principalmente) que é o que chamou de &#8220;<strong>Lightweight typed parameters</strong>&#8220;.</p>
<p>Até a versão 2 temos que construir métodos no <a href="http://directwebremoting.org/dwr/server/dwrxml/creators">Creator</a> com implementação nos argumentos devido ao DWR não ter como fazer o binding entre o Javascript e o Java sem saber quem é o objeto. Algo assim:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> AjaxFacade <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> User teste<span style="color: #009900;">&#40;</span>User param<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		param.<span style="color: #006633;">setDescription</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Teste funcionou&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span> param<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>No javascript:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">AjaxFacade.<span style="color: #660066;">teste</span><span style="color: #009900;">&#40;</span>
	<span style="color: #009900;">&#123;</span>
		id<span style="color: #339933;">:</span><span style="color: #CC0000;">42</span> <span style="color: #006600; font-style: italic;">//JSON que representa o objeto User</span>
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> 
	<span style="color: #009900;">&#123;</span>
		callback<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>retorno<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>retorno.<span style="color: #660066;">toSource</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
		errorHandler<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>error<span style="color: #339933;">,</span> message<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>message<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> 
		timeout<span style="color: #339933;">:</span><span style="color: #CC0000;">5000</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Agora foi adicionado a propriedade <strong><em>$dwrClassName</em></strong> no <a href="http://directwebremoting.org/dwr/server/dwrxml/converters">Converter</a> onde você pode trabalhar com a interface ao invés da implementação. Vejamos com o Object como argumento no mesmo método:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> AjaxFacade <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">Object</span> teste<span style="color: #009900;">&#40;</span><span style="color: #003399;">Object</span> param<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">//puramente ilustrativo não peça fundamentação lógica :)</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>param <span style="color: #000000; font-weight: bold;">instanceof</span> User<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
			<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>User<span style="color: #009900;">&#41;</span> param<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setDescription</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Teste funcionou&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">return</span> param<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>No javascript:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">AjaxFacade.<span style="color: #660066;">teste</span><span style="color: #009900;">&#40;</span>
	<span style="color: #009900;">&#123;</span>
		id<span style="color: #339933;">:</span><span style="color: #CC0000;">42</span> <span style="color: #006600; font-style: italic;">//JSON que representa o objeto User,</span>
		$dwrClassName<span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;User&quot;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> 
	<span style="color: #009900;">&#123;</span>
		callback<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>retorno<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>retorno.<span style="color: #660066;">toSource</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
		errorHandler<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>error<span style="color: #339933;">,</span> message<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>message<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> 
		timeout<span style="color: #339933;">:</span><span style="color: #CC0000;">5000</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Agora aquelas centenas de classes que fazem a mesma coisa [CRUDzão velho de guerra] podem ser resumidas em uma única Facade que faz suas validações e aciona um Repository ou sua estrutura de persistência.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> AjaxFacade <span style="color: #009900;">&#123;</span>
	@Autowired <span style="color: #003399;">Repository</span> repository<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">Object</span> persistir<span style="color: #009900;">&#40;</span><span style="color: #003399;">Object</span> param<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>param <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> ...
		<span style="color: #006633;">repository</span>.<span style="color: #006633;">persist</span><span style="color: #009900;">&#40;</span>param<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span> param<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Agora não tem como não termos um Feliz Natal!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2008/12/24/dwr-3-release-candidate-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Encontro em Iguatu</title>
		<link>http://www.milfont.org/tech/2008/11/04/encontro-em-iguatu/</link>
		<comments>http://www.milfont.org/tech/2008/11/04/encontro-em-iguatu/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 12:19:34 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[cejug]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[DWR]]></category>
		<category><![CDATA[Ext]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[palestras]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[web2.0]]></category>
		<category><![CDATA[XMLHttpRequest]]></category>
		<category><![CDATA[YUI]]></category>
		<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/?p=365</guid>
		<description><![CDATA[O evento em Iguatu foi excelente, tivemos uma tarde muito agradável no encontro das comunidades PHP e Java no dia 1/11/2008. Fernando Chucre iniciou o evento palestrando pelo CEPUG sobre PHP Orientado a objetos. Logo em seguida foi a vez do Jefferson [organizador do evento] palestrar sobre Debug no PHP. Pelo CEJUG o Silveira Neto [...]]]></description>
			<content:encoded><![CDATA[<p>O evento em Iguatu foi excelente, tivemos uma tarde muito agradável no <a href="http://www.milfont.org/tech/2008/10/24/encontro-java-e-php-em-iguatu-ce/">encontro das comunidades PHP e Java</a> no dia 1/11/2008.</p>
<p><a href="http://horizontesdigitais.com/">Fernando Chucre</a> iniciou o evento palestrando pelo <a href="http://cepug.org/2008/11/evento-em-iguatu-foi-um-sucesso-agora-e-fortaleza/">CEPUG</a> sobre PHP Orientado a objetos. Logo em seguida foi a vez do <a href="http://jefferson.eti.br/">Jefferson</a> [organizador do evento] palestrar sobre Debug no PHP.<br />
Pelo <a href="http://www.cejug.org/display/cejug/Apresentando+o+CEJUG+e+o+poder+do+Java+e+Frameworks+AJAX+em+Iguatu+-+01.11.08">CEJUG</a> o <a href="http://silveiraneto.net/2008/11/03/1%c2%ba-encontro-cejugcepug-em-iguatu/">Silveira Neto</a> apresentou uma palestra sobre a comunidade e o poder do Java, seguido por mim sobre Frameworks Ajax focado em Java com utilização de DWR e ExtJS.</p>
<p>O detalhe mais importante foi constatar a maturidade de duas comunidades tão distintas que compartilharam o mesmo evento sem nenhum problema, egocentrismo ou picuinha. Eu já estou cansando de ir em eventos onde o pessoal só fala de outra tecnologia, como eventos de linguagem onde falam mal de Java o evento inteiro. Cada um apresentou sua palestra sem desmerecer nenhuma tecnologia ou ninguém.</p>
<h2>Material</h2>
<div id="__ss_719498" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Frameworks Ajax" href="http://www.slideshare.net/cmilfont/frameworks-ajax-presentation?type=powerpoint">Frameworks Ajax</a><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=frameworksajax-1225798962914024-9&amp;stripped_title=frameworks-ajax-presentation" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slideshare.net/swf/ssplayer2.swf?doc=frameworksajax-1225798962914024-9&amp;stripped_title=frameworks-ajax-presentation" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View SlideShare <a style="text-decoration:underline;" title="View Frameworks Ajax on SlideShare" href="http://www.slideshare.net/cmilfont/frameworks-ajax-presentation?type=powerpoint">presentation</a> or <a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint">Upload</a> your own. (tags: <a style="text-decoration:underline;" href="http://slideshare.net/tag/ajax">ajax</a> <a style="text-decoration:underline;" href="http://slideshare.net/tag/iguatu">iguatu</a>)</div>
</div>
<h2>Fotos</h2>
<p><a href="http://picasaweb.google.com.br/cmilfont/Iguatu1112008">Picasa do CMilfont</a><br />
<a href="http://www.flickr.com/photos/silveiraneto/sets/72157608607361149/">Flcikr do Silveira</a></p>
<p><img src="http://lh5.ggpht.com/_Mm7CP-3dJvI/SQ7tkg3kpLI/AAAAAAAAAvc/woXXELjYiJg/s400/IMG_2173.JPG" alt="iguatu" /></p>
<p><img src="http://farm4.static.flickr.com/3163/2997081263_b20482857b.jpg?v=0" alt="minha apresentacao" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2008/11/04/encontro-em-iguatu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HTML não serve para REST</title>
		<link>http://www.milfont.org/tech/2008/04/18/html-nao-serve-para-rest/</link>
		<comments>http://www.milfont.org/tech/2008/04/18/html-nao-serve-para-rest/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 17:15:34 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[Mashup]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[web2.0]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[HTTP]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/2008/04/18/html-nao-serve-para-rest/</guid>
		<description><![CDATA[O maior problema de disponibilizar uma aplicação como API via REST é a construção de aplicações Mashups com formulários HTML sem usar um &#8220;proxy&#8221; server-side. Digamos que eu queira construir uma aplicação apenas cliente acessando uma API implementada em REST segundo os &#8220;bons constumes&#8221;. Segundo a especificação do HTML, o form só possuem dois tipos [...]]]></description>
			<content:encoded><![CDATA[<p>O maior problema de disponibilizar uma aplicação como API via REST é a construção de aplicações Mashups com formulários HTML sem usar um &#8220;proxy&#8221; server-side.</p>
<p>Digamos que eu queira construir uma aplicação apenas cliente acessando uma API implementada em REST segundo os &#8220;bons constumes&#8221;. Segundo a especificação do HTML, o <a href="http://www.w3.org/TR/html401/interact/forms.html#h-17.13.1">form</a> só possuem dois tipos de método HTTP, o POST e o GET. Isso inviabiliza a submissão de operações de alterações de um recurso pelo método PUT e de exclusão pelo método DELETE. O Fernando Chucre dos <a href="http://www.horizontesdigitais.com">Horizontes Digitais</a> me alertou para consultar a especificação do HTML depois que levei uma surra ao tentar implementar isso com form, eu pensei que era problema no apache e estava tentando &#8220;habilitar&#8221; os outros métodos por não saber que o Form HTML não permite.</p>
<p>Funciona usando AJAX caso a aplicação vá funcionar no mesmo host da API, mas se minha aplicação está hospedada em <a href="http://www.milfont.org/tech/2008/03/09/ajax-crossbrowser-no-ie8-e-ff3/">outro local</a> já não funciona. Outra estratégia que não funciona é <a href="http://www.milfont.org/tech/2007/10/08/script-tag/">Scripttag</a> porque esse só usa GET para adicionar um script no Head da página.</p>
<p>Por enquanto não imaginei uma forma crossbrowser de acessar um recurso remoto pelos métodos PUT e DELETE que não seja usando um Proxy no mesmo host que está hospedado a aplicação consumidora do recurso. Na spec OpenSocial você tem o método makeRequest dessa forma.</p>
<p>Caso alguém tenha uma idéia para contornar esse problema pode comentar aqui.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2008/04/18/html-nao-serve-para-rest/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Linkedin reescrito em YUI com DWR</title>
		<link>http://www.milfont.org/tech/2008/04/02/linkedin-reescrito-em-yui-com-dwr/</link>
		<comments>http://www.milfont.org/tech/2008/04/02/linkedin-reescrito-em-yui-com-dwr/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 20:52:28 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[DWR]]></category>
		<category><![CDATA[web2.0]]></category>
		<category><![CDATA[YUI]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Linkedin]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/2008/04/02/linkedin-reescrito-em-yui-com-dwr/</guid>
		<description><![CDATA[Foi postado no YUI Blog! uma notícia sobre o Linkedin ter sido reescrito em YUI segundo esse comentário do comentarista Emanuel. Analisando os fontes da página eu notei que foi usado o DWR e forte abordagem ajax.  Contei 25 scripts, bem que poderiam unificar alguns deles já que aparentemente estão bem componentizados.]]></description>
			<content:encoded><![CDATA[<p>Foi <a href="http://yuiblog.com/blog/2008/03/13/in-the-wild-20080313/">postado</a> no <a href="http://yuiblog.com/blog/">YUI Blog!</a> uma notícia sobre o <a href="https://www.linkedin.com">Linkedin</a> ter sido reescrito em <a href="http://developer.yahoo.com/yui/">YUI</a> segundo <a href="http://yuiblog.com/blog/2008/03/05/in-the-wild-20080305/#comment-317237">esse comentário</a> do comentarista Emanuel.<br />
<img src="https://www.linkedin.com/img/pic/pic_logo_119x32.gif" alt="linkedin logo" /></p>
<p>Analisando os fontes da página eu notei que foi usado o DWR e forte abordagem ajax.  Contei 25 scripts, bem que poderiam <a href="http://www.milfont.org/tech/2008/02/10/javascript-inline-e-external/">unificar alguns deles</a> já que aparentemente estão bem componentizados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2008/04/02/linkedin-reescrito-em-yui-com-dwr/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DWR 3 em Junho</title>
		<link>http://www.milfont.org/tech/2008/03/11/dwr-3-em-junho/</link>
		<comments>http://www.milfont.org/tech/2008/03/11/dwr-3-em-junho/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 12:02:55 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[DWR]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/2008/03/11/dwr-3-em-junho/</guid>
		<description><![CDATA[Joe Walker anunciou recentemente em entrevista no InfoQ que em Junho será lançada a versão 3 do framework DWR, o mais poderoso framework Ajax na plataforma JAVA. Tão poderoso que o próprio InfoQ o usa nas features Ajax. Dentre as novidades destacamos algumas: Offline Support (Google Gears and/or Dojo Offline); TIBCO General Interface integration; Aptana [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://getahead.org/blog/joe/">Joe Walker</a> anunciou recentemente em <a href="http://www.infoq.com/news/2008/03/dwr_3.0">entrevista</a> no <a href="http://www.infoq.com/">InfoQ</a> que em Junho será lançada a versão 3 do framework <a href="http://getahead.org/dwr">DWR</a>, o mais poderoso framework Ajax na plataforma JAVA. Tão poderoso que o próprio InfoQ o <a href="http://www.infoq.com/about.jsp">usa nas features Ajax</a>. Dentre as novidades destacamos algumas:</p>
<ul>
<li>Offline Support (Google Gears and/or Dojo Offline);</li>
<li>TIBCO General Interface integration;</li>
<li><a href="http://getahead.org/blog/joe/2008/03/04/dwr_aptana_jaxer.html">Aptana Jaxer integration</a>;</li>
<li>Integration work with JMS;</li>
<li><a href="http://www.openajax.org/member/wiki/OpenAjax_Hub_1.0_Specification">OpenAjax Hub</a>;</li>
<li>Support for asynchronous IO in Tomcat;</li>
<li>Support for JSON and Bayeux as transport protocols;</li>
<li>Tantas outras mais&#8230;</li>
</ul>
<p>O DWR hoje está maduro o bastante para ser a referência para as outras plataformas, com essa nova versão ele trará um destaque a novas técnicas no lado servidor para suportar melhor o Ajax do lado cliente e mais robustez no <a href="http://getahead.org/dwr/reverse-ajax">Reverse Ajax</a>.</p>
<p>Para os Early Adopters, já existem <a href="https://dwr.dev.java.net/servlets/ProjectDocumentList">versões Milestones</a> para quem tem coração forte e já quiser ir experimentando as novidades até o lançamento da release final em Junho.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2008/03/11/dwr-3-em-junho/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ajax Crossbrowser no IE8 e FF3</title>
		<link>http://www.milfont.org/tech/2008/03/09/ajax-crossbrowser-no-ie8-e-ff3/</link>
		<comments>http://www.milfont.org/tech/2008/03/09/ajax-crossbrowser-no-ie8-e-ff3/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 00:50:23 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[XMLHttpRequest]]></category>
		<category><![CDATA[IE8]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/2008/03/09/ajax-crossbrowser-no-ie8-e-ff3/</guid>
		<description><![CDATA[Uma confusão muito comum até em desenvolvedores profissionais é não saber que o objeto XHR segue o mesmo princípio de segurança do javascript e por isso não pode executar uma chamada remota a outro endereço que não o mesmo de onde o arquivo é chamado. Isso é chamado de &#8220;Same Domain Policy&#8220;. A alternativa para [...]]]></description>
			<content:encoded><![CDATA[<p>Uma confusão muito comum até em desenvolvedores profissionais é <a href="http://www.milfont.org/tech/2008/01/04/jsonrequest-para-evitar-o-eval/#comment-172">não saber</a> que o objeto <a href="http://www.milfont.org/tech/2007/10/03/destilando-o-xmlhttprequest/">XHR</a> segue o mesmo princípio de segurança do javascript e por isso não pode executar uma chamada remota a outro endereço que não o mesmo de onde o arquivo é chamado. Isso é chamado de &#8220;<a href="http://en.wikipedia.org/wiki/Same_origin_policy">Same Domain Policy</a>&#8220;.</p>
<p>A alternativa para contornar esse problema é usar a estratégia de <a href="http://www.milfont.org/tech/2007/10/08/script-tag/">Scripttag</a> quando o recurso externo permite ou usar um script como proxy no servidor para buscar o recurso e devolver via Ajax. Existem outras formas mais porcas de fazer isso que nem merecem consideração.</p>
<p>O Firefox 3 vem com o recurso de <a href="http://developer.mozilla.org/en/docs/Cross-Site_XMLHttpRequest">XHR Crossbrowser</a>, agora seguido do <a href="http://go.microsoft.com/fwlink?LinkID=110280">IE8</a>. Sinceramente isso não muda nada a curto prazo, até termos as versões anteriores do FF e principalmente do IE aposentadas, teremos que contornar isso com as gambiarras de sempre.</p>
<p>O <a href="http://ejohn.org/about/">John Resig</a> (Criador do JQuery) mostra <a href="http://ejohn.org/blog/cross-site-xmlhttprequest/">nesse post</a> como usar isso no FF3. Lembrando que isso só funciona no FF3 que ainda é beta.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2008/03/09/ajax-crossbrowser-no-ie8-e-ff3/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Material do Curso de Ajax Triadworks</title>
		<link>http://www.milfont.org/tech/2007/10/28/material-do-curso-de-ajax-triadworks/</link>
		<comments>http://www.milfont.org/tech/2007/10/28/material-do-curso-de-ajax-triadworks/#comments</comments>
		<pubDate>Sun, 28 Oct 2007 16:45:15 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[cursos]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[web2.0]]></category>
		<category><![CDATA[curso]]></category>
		<category><![CDATA[FLF]]></category>
		<category><![CDATA[slides]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/2007/10/28/material-do-curso-de-ajax-triadworks/</guid>
		<description><![CDATA[Curso de Ajax ministrado na FLF.]]></description>
			<content:encoded><![CDATA[<p>Curso de Ajax <a href="http://www.milfont.org/blog/archives/117">ministrado na FLF</a>.</p>
<iframe src="http://www.slideshare.net/slideshow/embed_code/" width="400" height="337" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe><br/><br/>
<iframe src="http://www.slideshare.net/slideshow/embed_code/" width="400" height="337" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe><br/><br/>
<iframe src="http://www.slideshare.net/slideshow/embed_code/" width="400" height="337" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe><br/><br/>
<iframe src="http://www.slideshare.net/slideshow/embed_code/" width="400" height="337" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe><br/><br/>
<iframe src="http://www.slideshare.net/slideshow/embed_code/" width="400" height="337" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe><br/><br/>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2007/10/28/material-do-curso-de-ajax-triadworks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

