Grails e Roo: screencast de comparação ao gerar uma mesma aplicação

Olá pessoal,

venho dando uma olhada no Spring Roo. Esta ferramenta é bastante útil para quem desenvolve com Java. Ou seja, não apenas na plataforma Java, como o Grails, mas apenas com a linguagem Java. Se você tiver esta condição de ter que desenvolver com Java, vale a pena conhecer o Roo.

Quero fazer uma comparação entre o desenvolvimento com Grails e Roo. Não é uma comparação justa, pois o Grails é um framework é em Groovy, e outro é uma ferramenta de geração que produz uma aplicação 99% Java (usando frameworks conhecidos com Spring, Hibernate, Log4j, etc). Porque então estou comparando? No fundo quero fazer um benchmark de performance entre as duas aplicações. Mas até chegar lá, vou mostrar desde o início, apresentando a geração da aplicação através dos comandos de geração das duas ferramentas.

Para isso, então, escolhi uma aplicação bem simples, e o passo a passo a ser seguido tanto com Grails quanto com o Roo é:

- Criar projeto
- Configurar persistência com Hibernate e Hypersonic DB in Memory (só Roo precisa deste passo)
- Criar entidade Project
- Criar atributos com validação: name, beginDate, active
- Criar 2 finders com os atributos active e beginDate (só Roo precisa deste passo)
- Configurar Log (só Roo precisa deste passo)
- Configurar arquivos Eclipse (só Roo precisa deste passo)
- Gerar Controller e views
- Executar a aplicação.


Aí vão os vídeos.  Perdoem-me a pouca empolgação do vídeo 1, mas é que já era 1h da manhã e estava todo mundo dormindo lá em casa..... não podia fazer muito barulho pra não acordar minha filha   :-)
Abraços a todos.

Vídeo 1: Gerando com Roo



Vídeo 2: Gerando com Grails

Tudo sobre Grails GORM e as relações One-To-Many, Many-To-One e Many-To-Many

Esta é mais uma dica rápida. Você já se pegou com dúvidas de como funcionam as relações entre entidades no Grails? Como fazer o cascade corretamente? como se livrar daquela exception que não insiste em ser lançada?
Pois é. O grails possui o mapeamento Objeto Relacional baseado no Hibernate, mas cria uma série de facilidades nas entidades para podermos lidar de forma fácil com as relações entre objetos.
GORM significa Grails' Object Relational Mappging. E as relações a que me refiro são One-To-Many, Many-To-One, e Many-To-Many.
Há um excelente resumo escrito por Peter Ledbrook no blog da SpringSource.

http://blog.springsource.com/2010/07/02/gorm-gotchas-part-2/

Vale MUITO a pena a leitura. Este link acima é a Parte 2 de uma série sobre o GORM. Caso queira (vale a pena tbem) leia a Parte 1.

Abcs
Felipe