DWR 3 Release Candidate 1

{ December 24th, 2008 }


cmilfont

Autor: cmilfont

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 “Lightweight typed parameters“.

Até a versão 2 temos que construir métodos no Creator 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:

public class AjaxFacade {
 
	public User teste(User param) {
		param.setDescription("Teste funcionou");
		return param;
	}
}

No javascript:

AjaxFacade.teste(
	{
		id:42 //JSON que representa o objeto User
	}, 
	{
		callback:function(retorno) {
			alert(retorno.toSource());
		},
		errorHandler:function(error, message) {
			alert(message);
		}, 
		timeout:5000
	});

Agora foi adicionado a propriedade $dwrClassName no Converter onde você pode trabalhar com a interface ao invés da implementação. Vejamos com o Object como argumento no mesmo método:

public class AjaxFacade {
 
	public Object teste(Object param) {
		//puramente ilustrativo não peça fundamentação lógica :)
		if(param instanceof User) { 
			((User) param).setDescription("Teste funcionou");
		}
		return param;
	}
}

No javascript:

AjaxFacade.teste(
	{
		id:42 //JSON que representa o objeto User,
		$dwrClassName:"User"
	}, 
	{
		callback:function(retorno) {
			alert(retorno.toSource());
		},
		errorHandler:function(error, message) {
			alert(message);
		}, 
		timeout:5000
	});

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.

public class AjaxFacade {
	@Autowired Repository repository;
	public Object persistir(Object param) {
		if(param == null) ...
		repository.persist(param);
		return param;
	}
}

Agora não tem como não termos um Feliz Natal!

Posted in Ajax, DWR, Frameworks, Java, JavaScript, JSON, Web Development ~ 5 Comments

Encontro em Iguatu

{ November 4th, 2008 }


cmilfont

Autor: cmilfont

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 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.

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.

Material

Frameworks Ajax

View SlideShare presentation or Upload your own. (tags: ajax iguatu)

Fotos

Picasa do CMilfont
Flcikr do Silveira

iguatu

minha apresentacao

Posted in (X)HTML, Ajax, cejug, CSS, DWR, Ext, Frameworks, Java, JavaScript, JSON, palestras, PHP, Prototype, Web Development, web2.0, XMLHttpRequest, YUI ~ 1 Comment

Linkedin reescrito em YUI com DWR

{ April 2nd, 2008 }


cmilfont

Autor: cmilfont

Foi postado no YUI Blog! uma notícia sobre o Linkedin ter sido reescrito em YUI segundo esse comentário do comentarista Emanuel.
linkedin logo

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.

Posted in DWR, web2.0, YUI ~ 2 Comments