Tag Archives: Ajax

DWR 3 Release Candidate 1

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!

Typically chemist’s shop can sale to you with discreet treatments for various soundness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a very much complicated matter. Matters, like “coupons for viagra“, are united numerous types of soundness problems. If you need to take prescription medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may turn on erectile disfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a recipe is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

Encontro em Iguatu

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

Typically chemist’s shop can sale to you with discreet treatments for various soundness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a very complicated matter. Matters, like “coupons for viagra“, are coupled numerous types of heartiness problems. If you need to take prescription medications, ask your druggist to check your testosterone levels before. Sometimes the treatment options may turn on erectile dysfunction remedies or a suction device that helps get an hard-on. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a recipe is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

HTML não serve para REST

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 “proxy” server-side.

Digamos que eu queira construir uma aplicação apenas cliente acessando uma API implementada em REST segundo os “bons constumes”. Segundo a especificação do HTML, o form 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 Horizontes Digitais 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 “habilitar” os outros métodos por não saber que o Form HTML não permite.

Funciona usando AJAX caso a aplicação vá funcionar no mesmo host da API, mas se minha aplicação está hospedada em outro local já não funciona. Outra estratégia que não funciona é Scripttag porque esse só usa GET para adicionar um script no Head da página.

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.

Caso alguém tenha uma idéia para contornar esse problema pode comentar aqui.

Typically chemist’s shop can sale to you with discreet treatments for various heartiness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a very much complicated matter. Matters, like “coupons for viagra“, are connected numerous types of heartiness problems. If you need to take formula medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may include erectile dysfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a recipe is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.