Após alguns anos sem posts (e sem contribuições no mundo opensource), motivado pela excelente ferramenta github, voltarei a escrever sobre minhas experiências em arquitetura de sistemas, programação, novas tecnologias, processo de desenvolvimento e afins. Até breve.

Problemas com serialização AMF – Aplicações Java/Flex
maio 24, 2010Buenas galera, tudo certo?
São comuns alguns erros em aplicações Java/Flex na hora de serializar os objetos entre as tecnologias. Como são tecnologias em linguagens diferentes, para focos diferentes (pelo menos em 90% dos casos, o Java é o backend, e o ActionScript é o frontend), existe um problema que naturalmente ocorre em projetos que não são simples CRUD.
Um exemplo – semana passada, estávamos no meio de uma iteração, fazendo uma listagem de configurações de parâmetros para o servidor. Na camada Flex, o objeto serializado não era recuperado como o tipo apropriado (exemplo – com.meupacote.MinhaClasse), mas sim, com o tipo Object do actionScript.
A classe em Java era no seguinte formato:
package com.meupacote;
public class MinhaClasse {
private Long id;
private String nome;
private Double valor;
//getters, setters e construtor padrão omitidos
}
E a classe ActionScript:
package com.meupacote {
[RemoteClass(alias="com.meupacote.MinhaClasse")]
public class MinhaClasse {
public MinhaClasse(){}
public var id: Number;
public var nome:String;
public var valor:Number;
}
}
Deve-se verificar alguns pré-requisitos para que a serialização seja feita corretamente:
- O BlazeDS deve estar configurado corretamente
- A metatag RemoteClass deve estar configurada para a classe Java correta, sem erros de “typo”
- A classe Java deve ter um construtor padrão (vazio), e as propriedades que desejamos expor ao Flex devem possuir métodos de modificação e acesso no modelo JavaBeans.
Mas apenas isso não garante que a classe será serializada corretamente. No meu caso, por exemplo, fizemos um componente que recuperava os objetos, mas os objetos não estavam tipados como MinhaClasse, mas sim como Object.
Isso acontece porque no caso onde o objeto ActionScript não é instanciado em nenhum lugar da aplicação, ou seja, no SWF gerado não existe nenhum “import” para esta classe, o compilador não “conhece” a classe, e por isso o tipo não era o MinhaClasse, mas sim, Object.
Existem duas maneiras de adicionar esse suporte – ou se coloca registerClassAlias na application, ou simplesmente em alguma parte do sistema, se inicializa uma instância da classe especificada (new MinhaClasse());
Pois bem, utilizamos primeiramente registerClassAlias, e a aplicação funcionou perfeitamente. O problema foi quando adicionamos um caso de uso de inserção do objeto, ou seja, passar o objeto da camada Flex para Java, que causava uma exception no BlazeDS – Cannot find class com.meupacote.MinhaClasse.
Como já explicado, existem os dois mecanismos para “registrar” uma classe para fazer parte da compilação. Como é necessário criar o objeto, deve-se remover o registerClassAlias para que não tente ser registrada duas vezes a mesma classe.
Com isso foi possível solucionar esse pequeno problema que causa um transtorno momentâneo em projetos e entregas

Voltando à vida de blogs…
maio 24, 2010Salve galera!
Ano passado foi muito proveitoso no âmbito profissional e pessoal, e após pensar e refletir bastante sobre o que meus saudosos amigos Mário Júnior e Igor Costa sempre me falaram, decidi compartilhar mais minhas experiências profissionais com o pessoal que está começando agora na “lida” de desenvolvimento.
Já se vão mais de 8 anos trabalhando em desenvolvimento de sistemas de diferentes portes, desde aplicações desktop até aplicações muito complexas e especialistas de alta disponibilidade, então resolvi voltar a escrever com mais afinco (deixando de lado a procrastinação que vem me assolado…).

Curso da Sofshore – Flex 3 do Básico ao Avançado
maio 24, 2010Semana passada formamos a primeira turma no curso de Flex 3 – Básico ao Avançado.
Nossa abordagem foi um pouco diferente – ao invés de focarmos nas técnicas e conceitos da linguagem ActionScript a do framework Flex3, nos utilizamos de uma aplicação, da qual aplicávamos os conceitos da aula iterativamente, de modo que ao final a turma pôde entender em detalhes sobre cada conceito, e principalmente, sobre os blocos básicos de funcionamento do framework Flex, inclusive de alguns frameworks MVC.
Obrigado a todos, e que venham as novas turmas!

Reunião AUG FloripaFlex da sexta feira!
março 9, 2009Sexta feira foi marcada por mais uma reunião do Adobe User Group de Florianópolis (FloripaFlex), comunidade essa que o Achille ajudou a criar aqui na cidade.
Esta reunião foi uma troca de experiências de utilização da tecnologia Adobe Flex para a camada de visão de aplicações Java. Conversamos sobre vários aspectos, como problemas com ORM, de design da aplicação, frameworks em Flex, entre outros tópicos que estão na apresentação feita ppt flex-e-java. Como eu disse na reunião, isso não são soluções definitivas, são apenas algumas soluções das minhas andanças com RIA + Java
. Obrigado a todos os participantes do evento, e só para constar, estou preparando já os projetos no google code para os “módulos de segurança”.

Hello blog world!
setembro 12, 2008Vamo lá galera. Este é meu primeiro post neste espaço que pretendo atualizar periodicamente com minhas experiências em tecnologias e até mesmo com coisas pessoais que adoro, como música, games e livros.
Vamo lá então,
Para os javeiros, System.out.println(“Hello Blog World”);
Para os ASzeiros trace(“Hello Blog World”);
Para os Delpheros, println(“Hello Blog World”); (esse faz tempo que não mexo)
Grailzeiros, println(“Hello Blog World”)
Javascriptzeiros, document.write(“Hello Blog World”)