Srs,
Estou desenvolvendo um framework para persistência de objetos em bancos de dados relacionais, algo parecido com Hibernate, porém muito mais simples e com um diferencial: prover mecanismos de atualizações em objetos GUI por meio de Observadores (Não encontrei esta feature em nenhum dos frameworks disponíveis). Já tenho algo funcionando paleativamente aqui na empresa porém gostaria em um futuro muito próximo disponibilizar a todos por meios de open-source, inclusive estou somente aguardando um espaço no codigolivre.org.br para colocar os fontes no cvs.
A questão é a seguinte: gostaria que vc´s (o maior número possível da comunidade) validassem minha idéia, criticassem, sugerissem idéias, etc… tenho um modelo inicial (abaixo) com as classes que acredito serem necessárias para a implementação. O objetivo inicial deste framework é permitir a desenvolvedores java maior produtividade em aplicações desktop (swing) por meio de camadas especialmente desenvolvidas para o mapeamento e persistencia das informações, resumindo, quero permitir que o desenvolvedor se preocupe apenas com as regras de negócio deixe a parte da construção de sql´s, persistencia e apresentação nos formulários seja algo dinâmico parecido com linguagens RAD (Delphi, VB e Cia…)
Abaixo segue um modelo de domínio inicial para nossa discussão com as seguintes definições:
Conexão: classe responsável em estabelecer uma conexão (inicialmente JDBC) com o banco de dados e armazená-la em um pool.
Dataset: classe responsável em converter resultset´s em objetos de negócio bem como a construção dinâmica de instruções sql à serem passadas para a Conexão.
Coleção: classe (digamos) mais importante do nosso framework, pois ela irá controlar toda a vida dos objetos de negócio bem como sua navegabilidade e proverá as descendentes os mecanismos de inclusão, exclusão, etc…
Objeto Persistente: classe que mapeia um objeto “tabela” relacional no SGDB além de implementar as regras de negócio correspondentes.
Campo: classe responsável em mapear qual campo do objeto de negócio está para o campo de uma tabela no SGDB, também deverá implementar formas de definição para este campo no objeto tais como: chaves-primárias, tamanho máximo, tipo, etc…
Observadores: classe container que armazenará os objetos GUI responsáveis pela apresentação das informações na tela, inicialmente estou prevendo somente os componentes Swing básicos (JTextField, JComboBox, JCheckBox, JTable, etc…) após estabilizar o fw pretendo estender inclusive para objetos J2EE.
Amigos, é isso, espero contar com a colaboração de vocês nesta jornada e como já mencionei: tenho algo muito próximo disso rodando aqui porém gostaria de uma opnião que não fosse somente minha.


