Pesquisar

quarta-feira, 16 de março de 2011

Novo projeto WetSand

O que estive fazendo...

Estou tentando reduzir meus (re)trabalhos para criação de CRUD's. O resultado desse esforço é a ideia de criar um framework pra aumentar a produtividade na criação de CRUDS. O conceito principal é que você tem uma API e pode provê várias implementações para essa API (W0). Isso tudo não é nenhuma novidade, apenas minha tentativa de padronizar a criação de CRUDS.

WetSand

É o conjunto de projetos para criação de aplicações que vão inevitavelmente ter CRUDs.

W0 - A API base

A arquitetura básica está toda nesse projeto, que é fortemente baseado nos conceitos de Domain-Driven Design (DDD). Infelizmente o conceito de arquitetura de referência é empregado aqui, engessar sua aplicação tem vários efeitos colaterais e más implicações mas foi o jeito que encontrei de "criar" uma estrutura, até certo ponto flexível, para servir genericamente para isso. Resumidamente um arquitetura de referência te força a usar a mesma estrutura para matar uma "barrata" e matar uma "baleia" por outro lado há uma padronização de interfaces e mensagens entre os componentes, o que para a criação de CRUD's pode ajudar muito.

W1 - Primeira implementação JPA 2.0, Spring 3.x.x, JSF 2.0

Para ter mesmo certeza que tal API poderá ser útil, trabalho na primeira implementação dessa API. Essa implementação utiliza JPA 2.0, Spring 3.x.x, JSF 2.0 e Primefaces 2.2.1 dentre suas dependências. Foram criados os subprojetos:
Em que pé anda...

O projeto exemplo já está rodando mas ainda considero longe de uso em produção ou algo assim, está na fase de evolução. Logo, toda e qualquer sugestão ou crítica será bem vinda. Penso em criar implementações compatíveis para Richfaces 4.0, VRaptor 3, GAE e GWT para realmente testar se é possível que essa API e suas implementações possam diminuir o retrabalho de CRUDS. Também há um gerador de CRUD mas esse é bem específico e a única implementação que tem é para o W1X.

Enfim

Se o projeto não servir de nada talvez ele sirva de exemplo de como construir telas usando JSF 2.0, components do facelets, usar o primefaces, utilizar o Spring 3.x.x juntamente com JPA 2.0, bem como Maven e outras boas práticas de "novas" tecnologias. Logo terá uma documentação básica com um Quick Start e demonstração de exemplos.