Gerador de código Vraptor+Hibernate+Taglib  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
lscosta
Debugger

Membro desde: 26/11/2009 11:01:08
Mensagens: 59
Offline

Ah, agora acho que saquei tua crítica... A criação da interface gráfica que eu falei sim, vai ser relevante apenas para esse meu caso, onde preciso desenvolver orientado a base de dados...

Tens razão, essa interface gráfica não tem valor nenhum! Funcionalidade removida do backlog!

-------------------------------
Luciano Costa
@lscosta
boneazul
Java Ninja
[Avatar]

Membro desde: 29/10/2007 17:13:59
Mensagens: 284
Offline

lscosta wrote:Fala boneazul!

Cara, eu achei legal o tópico e me dei conta de que tbm podia ter compartilhado com o GUJ a ferramenta que fiz... Mas já na primeira linha eu afirmo que não é uma ferramenta completa como a tua... nem pretende ser. Se você olhar os fontes, não vai sequer encontrar um belo padrão de desenvolvimento. É uma solução simples para atender um problema específico: replicar estruturas de código comum.

A meu ver, a única vantagem que outro desenvolvedor terá com a abordagem que usei, é poder replicar a arquitetura que ele mesmo concebeu para outro módulo do sistema, sem ter de reescrevê-lo. No teu caso, pelo que entendi, tu entregas uma aplicação inteira de lambuja para o cara. Show!

Quanto a "melhor abordagem" ser top-dow ou bottom-up ou qualquer outra coisa, depende de cada caso. Quando você muda o problema, muda a solução.

Perceba que estou falando em replicação de uma solução que você criou. Se você criou essa solução usando top-dow/etc, isso é irrelevante na hora de replicá-la. E a estrutura de cruds não deve variar muito, uma vez que se estabeleça um padrão.

Só para contextualizar, no meu caso, estou reescrevendo uma aplicação. Ela foi desenvolvida em Genexus e estou portando para Java. Nesse caso, já tenho uma base de dados que é integrada com aplicações 'satélite' e sistemas de BI, ou seja, a única coisa onde não devo mexer é na base de dados. Não posso repensá-la, pois uma série de aplicações giram em torno dela.

Resumindo, essa era a solução para o meu problema. E com certeza poderei reutilizá-la em qualquer outro ambiente, independente de base de dados ou metodologia de desenvolvimento.

Já tentei acessar teu site e vou ficar de olho alí. Sei que o propósito é outro e certamente vou levar em consideração para novas aplicações.

Com todo esse blablablá, espero deixar claro que não sou da concorrência! =D

Valeu!



Opa tranquilo eu ja entendi de cara quando voce postou que não tem concorrencia..alem do que concorrencia de verdade é feita entre produtos comerciais..e nem deve ter ja que a idéia e a gente se ajudar mesmo....

eu ainda comentei sobre a abordagem bottom up "que nem sempre é legal...não que não seja usual."

é eu ainda disse isso comentando que apenas não é usual..eu ja cheguei a implementar gerador pra php pra um cara uma vez que tinha essa abordagem....assim pra mim, o software vai ter que atacar dos dois lados tanto debaixo pra cima quanto de cima pra baixo a ideia é essa mesmo....


o problema maior pra mim implementar é a conexão de banco de dados....pq assim nao vai ter como eu conectar em um schema do seu banco de dados pra voce fazer a engenharia reversa...até teria como (o que eu digo isso é possivel tranquilamente) mas seria trabalhoso pro usuario ficar abrindo view..ou usuario de banco pra minha aplicação ou não num sei é um caso a se pensar..o que voce acha ..

uma pergunta só pra eu saber,voce como usuario abriria uma conexão pro meu servidor pra fazer a engenharia reversa das classes no seu servidor de homologação ou testes??
Pra um servidor de teste ate rola esse caso...mas a gente tem que pensar no coitado que fica no pc dele desenvolvendo....pra isso teria que ter a possibilidade tambem de passar o esquema do banco (create table da vida)


Mas eu pretendo sim fazer essa abordagem de tipo ..o cara passa o esquema eu faço um parser do código e a partir dai faço o mapeamento reverso ..que seria sua abordagem bottom up...

se voce topar melhorar sua ferramenta eu embuto suas classes java junto ou seja voce me faz ai seu motor reverso que le pra mim um schema seja ele em qualquer banco de dados oracle,(com uso de interface) e me entrega no fim uma classe java onde eu saiba nome atributos seu tipo etcetc e eu faço a integração com a interface pq isso ja tem pronto...


cara eu nao sei se a api do hibernate tools consegue fazer isso direto de código sql ou se ele precisa de uma conexão de banco sempre...se conseguisse fazer direto de codigo sql seria maravilha viu....
se tiver afim de algo assim da um toque....voce implementa algo debaixo pra cima ja que voce tem mais fresco na cabeça..qlquer duvida tamo ae...




This message was edited 1 time. Last update was at 19/03/2010 00:45:52

[Email]
boneazul
Java Ninja
[Avatar]

Membro desde: 29/10/2007 17:13:59
Mensagens: 284
Offline

lscosta wrote:Ah, agora acho que saquei tua crítica... A criação da interface gráfica que eu falei sim, vai ser relevante apenas para esse meu caso, onde preciso desenvolver orientado a base de dados...

Tens razão, essa interface gráfica não tem valor nenhum! Funcionalidade removida do backlog!


Não cara essa funcionalidade pensando melhor tem que ter..ja que isso é possivel de implementar.....deixei o post acima sem ler esse seu da uma lida ae.......alem do que isso vai ajudar pra qualquer linguagem no futuro ...vai que o cara queira migrar sua aplicação interia pro modelo MVC ele ja tem um ponto de partida violento .....
gostei da sua ideia...e pra mim deve ser umas das próximas funcionalidades.....
[Email]
lscosta
Debugger

Membro desde: 26/11/2009 11:01:08
Mensagens: 59
Offline

Não ia ser bem uma funcionalidade, mas um projeto separado, permitindo ainda o uso via linha de comando.

Mas como disse, não tenho essa necessidade agora...

Um colega do meu time disse que está fazendo uma tela em swing, com jdbc para o Postgre, por enquanto. Acho que ele vai por no github tbm...

-------------------------------
Luciano Costa
@lscosta
boneazul
Java Ninja
[Avatar]

Membro desde: 29/10/2007 17:13:59
Mensagens: 284
Offline

lscosta wrote:Não ia ser bem uma funcionalidade, mas um projeto separado, permitindo ainda o uso via linha de comando.

Mas como disse, não tenho essa necessidade agora...

Um colega do meu time disse que está fazendo uma tela em swing, com jdbc para o Postgre, por enquanto. Acho que ele vai por no github tbm...


hum mais eu achei interessante ter essa abordagem também e vo implementar pelo menos pra mysql por enquanto...onde o usuario poderá subir um schema de banco.. arquivo.sql e eu transformo em classes anotadas...mais ou menos o que o hibernate tools faz...so que um pouco diferente.... tenho que dar uma estudada na api do hibernate tools pra ver se ja tem algo meio pronto nesse sentido de parser de código sql pra classe...

ou se alguem souber algum projeto nesse sentido melhor ainda...
[Email]
pbnf
JavaGuru

Membro desde: 18/06/2003 12:06:55
Mensagens: 228
Localização: De volta a Cuiabá-MT, 40º na sombra !!!
Offline

boneazul wrote:Bom pessoal é com grande felicidade que venho a anunciar e disponibilizar aqui no GUJ o link para a minha primeira ferramenta gratuita.

Primeiramente me chamo Jonatan sou formado em analise de sistemas pela PUC campinas a 5 anos , tenho 25 anos e 5 anos de experiencia com desevolvimento de software sendo 1 apenas em linguagem java.

Bom eu batizei o projeto inicialmente de VRaptor Case,basicamente ele é um gerador inicial de código fonte de sistema ou seja com apenas algumas classes cadastradas o software te disponibiliza tudo ligado a dao,modelo anotado com hibernate,controlador pronto e view pronta.
.
.
.
.


Olá, gostei muito do visual da aplicação gerada e das funcionalidades principalmente pra tratar as relações MestreXDetalhes, já vi em outro post no qual vc disponibilizou as taglibs que vc não tem nenhuma documentação mas será que vc poderia criar um "livro de receitas" das suas taglibs ? algo mostrando a dependencia entre elas, as que podem estar sozinhas e coisas do genero ? Seria muito bom isso, obrigado.
tiagosilveira
JavaBaby
[Avatar]

Membro desde: 06/04/2005 22:38:35
Mensagens: 80
Localização: Porto Alegre
Offline

O gerador está fora do ar?

Tiago Silveira
Programador Java
msn:tiagosilveira@msn.com
[MSN]
boneazul
Java Ninja
[Avatar]

Membro desde: 29/10/2007 17:13:59
Mensagens: 284
Offline

tiagosilveira wrote:O gerador está fora do ar?


Cara acabei melhorando muita coisa....e tirando do ar por um tempo pq tava travando outra aplicação que roda no mesmo server....pq nao tinha tanta experiencia com hibernate...e acabava que meu banco tava rodando varias queries a mais...faltava lazy..etcetc...acabei refatorando todo código agora tá bala....e super leve.....e essa semana to subindo melhoria em varios sentidos tanto de implementações internas como de view..(bugs que acabei pegando no meio do caminho.)....e ja respondendo o post de cima...vo colocar um llivro de receitas básicas do uso da taglib...a parte de view esta quase 100% ja numa versão estável..encontrei alguns bugs javascript.....

De novidade agora tem auditoria pelo envers,cache usando ehcache....melhoria na taglib..a displaytag agora faz paginação real...antigamente nao sabia algumas coisas que ela fazia meio furado...de ficar refazendo query..etc melhoria no exportador dela que é uma porcaria tamem...acabei reimplementando para o jtidy...pq ele gerava as tag html no pdf....
agora as queries ja vem com os "inner ou lefts" na relações 1-1 antigamente fazia lazy.....ou seja...melhorou muita a geração de código...a parte de validação ajax que não tinha..e mais n coisa que se gerar código de novo vai sentir diferença...ja tem lib nova tamem...vraptor mais novo...hibernate mais novo....spring mais novo tambem..etcetc..

essa semana devolvo ele no ar...as contas tao bunitinha la ainda...so desci a aplicação mesmo..

This message was edited 1 time. Last update was at 23/05/2010 10:44:41

[Email]
kivervinicius
JavaChild
[Avatar]

Membro desde: 26/02/2010 22:47:40
Mensagens: 112
Offline

Estou muito curioso quanto ao andamento deste projeto, posta ai quando estiver fazendo as melhorias, eu tenho q entregar um projeto da faculdade praticamente instantaneamente e a geração dos daos e controlers a partir das classes economizaria muitos dias... parabens ao desenvolvedor.

O único lugar onde o sucesso vem antes do trabalho é no dicionário.

--------------------------

www.tecnounion.com.br
[Email] [WWW]
derlon
JavaTeenager

Membro desde: 12/12/2009 14:07:01
Mensagens: 150
Offline

boneazul wrote:
tiagosilveira wrote:O gerador está fora do ar?
.....
De novidade agora tem auditoria pelo envers,cache usando ehcache....melhoria na taglib..a displaytag agora faz paginação real...antigamente nao sabia algumas coisas que ela fazia meio furado...de ficar refazendo query..etc melhoria no exportador dela que é uma porcaria tamem...acabei reimplementando para o jtidy...pq ele gerava as tag html no pdf....
agora as queries ja vem com os "inner ou lefts" na relações 1-1 antigamente fazia lazy.....ou seja...melhorou muita a geração de código...a parte de validação ajax que não tinha..e mais n coisa que se gerar código de novo vai sentir diferença...ja tem lib nova tamem...vraptor mais novo...hibernate mais novo....spring mais novo tambem..etcetc..

essa semana devolvo ele no ar...as contas tao bunitinha la ainda...so desci a aplicação mesmo..
Oi BonéAzul, blz?!!
Antes de qq coisa, meus parabens p/ iniciativa!! Grande contribuição p/ uso/divulgação do VRaptor!!
Por gentileza, poderia compartilhar conosco o q fez p/ otimizar a <display tag??!
Sobre Persistência: vc já tem planos de oferecer opção p/ JPA/JPA2??!
E sobre opções de Frameworks AJAX/RIA: tem planos p/ adicionar + opções , como o ZK, p/ ex.?!>
boneazul
Java Ninja
[Avatar]

Membro desde: 29/10/2007 17:13:59
Mensagens: 284
Offline

derlon wrote:
boneazul wrote:
tiagosilveira wrote:O gerador está fora do ar?
.....
De novidade agora tem auditoria pelo envers,cache usando ehcache....melhoria na taglib..a displaytag agora faz paginação real...antigamente nao sabia algumas coisas que ela fazia meio furado...de ficar refazendo query..etc melhoria no exportador dela que é uma porcaria tamem...acabei reimplementando para o jtidy...pq ele gerava as tag html no pdf....
agora as queries ja vem com os "inner ou lefts" na relações 1-1 antigamente fazia lazy.....ou seja...melhorou muita a geração de código...a parte de validação ajax que não tinha..e mais n coisa que se gerar código de novo vai sentir diferença...ja tem lib nova tamem...vraptor mais novo...hibernate mais novo....spring mais novo tambem..etcetc..

essa semana devolvo ele no ar...as contas tao bunitinha la ainda...so desci a aplicação mesmo..
Oi BonéAzul, blz?!!
Antes de qq coisa, meus parabens p/ iniciativa!! Grande contribuição p/ uso/divulgação do VRaptor!!
Por gentileza, poderia compartilhar conosco o q fez p/ otimizar a <display tag??!
Sobre Persistência: vc já tem planos de oferecer opção p/ JPA/JPA2??!
E sobre opções de Frameworks AJAX/RIA: tem planos p/ adicionar + opções , como o ZK, p/ ex.?!>



Olá derlon..então semana passada fiquei trabalhando nele todo, refazendo varias coisas pra liberar sem erro algum...no mais tardar amanha estou subindo a aplicação definitiva...
Quanto a otimização da displaytag é um conjunto de melhorias dela + javascript voce olhando o código gerado vai entender...

A versão atual já está suportando hibernate 3.5.2 + JPA2 - fazendo cache no terracota do ehcache..uso do envers está embutido....spring 3.0.2..vraptor 3.1.2...ou seja as bibliotecas mais atuais possiveis...

Quanto ao RIA utilizo o jquery como biblioteca oficial do projeto...ou seja alguns componentes que voces irao ver fui eu quem fez....(tirando logico os do jqueryUI)..que ja vem com um leque de opções pra interface.....esse ZK eu nunca vi teria que pesquisar o seu uso e onde seria possivel sua aplicação....

abraços..

[Email]
derlon
JavaTeenager

Membro desde: 12/12/2009 14:07:01
Mensagens: 150
Offline

@boneazul ,
Q ótimo saber q a ferramenta usa as Versões mais atuais possiveis dos frameworks. (principalmente JPA2/Hibernate )
Ah, consegui acessar a home do 'casevr', porem sem sucesso na autenticação c/ o LogOn q vc forneceu.
Sendo assim, se importaria de mencionar (em poucas palavras mesmo) as novidades q descobriu na codificação da DisplayTag: bem, todo nós sabemos q sua paginação só funciona c/ a Collection na Session; enfim: o q podemos fazer p/ otmizá-la overall??!
boneazul
Java Ninja
[Avatar]

Membro desde: 29/10/2007 17:13:59
Mensagens: 284
Offline

derlon wrote:@boneazul ,
Q ótimo saber q a ferramenta usa as Versões mais atuais possiveis dos frameworks. (principalmente JPA2/Hibernate )
Ah, consegui acessar a home do 'casevr', porem sem sucesso na autenticação c/ o LogOn q vc forneceu.
Sendo assim, se importaria de mencionar (em poucas palavras mesmo) as novidades q descobriu na codificação da DisplayTag: bem, todo nós sabemos q sua paginação só funciona c/ a Collection na Session; enfim: o q podemos fazer p/ otmizá-la overall??!


é deixei escapar um detalhe ..mas agora é pra conseguir logar...


cara displaytag é um puta ferramenta ja quebra o galho em varios pontos na questão de listagem,paginação,ordenação,etcc...
Por padrão se voce nao implementa nada a displaytag ela executa toda vez sua query so pegando a parte que voce pediu pra paginar...ou seja sua query query é sempre executada no seu modo full... ou seja



a cada virada de pagina ela executa de novo a query e so te mostra a parte que interessa..

duas soluções seriam a partialList (que acho a mais viavel) ou implementar a interface PaginatedList(essa sim é guardada na session)

optei pela primeira pois utiliza 2 selects ..

esse pra saber quantos registros tem


e esse os registros


um dos problemas da displaytag é carregar muito a session do tomcat quando voce implementa a interface deles PaginatedList acho q a interface é essa não me lembro o nome
A paginação que utilizo é via banco mesmo ou seja so vem o necessário e nada mais...se voce baixar um projeto vai ver como faço essa paginação super leve....
[Email]
derlon
JavaTeenager

Membro desde: 12/12/2009 14:07:01
Mensagens: 150
Offline

Aah, tá! Perfeito!! Eu já estava (+/-) a par desta abordagem. Eu só não sabia q p/ a gente usar o 'partialList="true" ' é necessario informar à displayTag o (count) Total da Tabela (ou da Query). (Obs.: é, ela só faz a Paginação a nivel de View; ela não faz paginação na Collection, no BD, em suma: em todas as Layers: e não é responsabilidade dela.)
Mas, vlws p/s dicas => muito util p/ quem ainda não conhecia displayTag!!
Ah, já consegui acessar, baixar o Projeto e configurar no Eclipse.

Bem, eu ia terminando p/ aki, maaass... como vc falou "
boneazul wrote:...
5- Posso dar ideias para o projeto?
Resposta : Pode e deve.A ideia é tornar a ferramenta completa. Alem do que o guj será o ponto central de discussões de idéias...
" Observei q as Classes do Model tem NamedQueries (q efetivamente são usadas nas DAOs). Seria muito trabalhoso mudar p/ a abordagem de Criterias do (Hibernate ou) JPA2??! A propósito, eu "ouvi dizer" q 'NamedQueries' "pesam mais" na inicialização da Aplicação: isto é "mito" ou é verdade => alguem poderia esclarecer isto p/ a gente?!
boneazul
Java Ninja
[Avatar]

Membro desde: 29/10/2007 17:13:59
Mensagens: 284
Offline

derlon wrote: Aah, tá! Perfeito!! Eu já estava (+/-) a par desta abordagem. Eu só não sabia q p/ a gente usar o 'partialList="true" ' é necessario informar à displayTag o (count) Total da Tabela (ou da Query). (Obs.: é, ela só faz a Paginação a nivel de View; ela não faz paginação na Collection, no BD, em suma: em todas as Layers: e não é responsabilidade dela.)
Mas, vlws p/s dicas => muito util p/ quem ainda não conhecia displayTag!!
Ah, já consegui acessar, baixar o Projeto e configurar no Eclipse.

Bem, eu ia terminando p/ aki, maaass... como vc falou "
boneazul wrote:...
5- Posso dar ideias para o projeto?
Resposta : Pode e deve.A ideia é tornar a ferramenta completa. Alem do que o guj será o ponto central de discussões de idéias...
" Observei q as Classes do Model tem NamedQueries (q efetivamente são usadas nas DAOs). Seria muito trabalhoso mudar p/ a abordagem de Criterias do (Hibernate ou) JPA2??! A propósito, eu "ouvi dizer" q 'NamedQueries' "pesam mais" na inicialização da Aplicação: isto é "mito" ou é verdade => alguem poderia esclarecer isto p/ a gente?!


Cara pelo que eu li a respeito NamedQueries são mais leves que a api Criteria pois uma vez compiladas elas nunca mais voltam a se repetir diferente da criteria que toda vez é executada e parseada pelo hibernate para se tornar a query nativa do banco que usa,por isso optei por NamedQueries e nao criteria ,não que nao seja facil de mudar no projeto até seria o caso de o cara escolher na aplicação se ele quer criteria ou named query...sei la ...mas não tenho certeza absoluta da abordagem , gosto de usar criteria apenas quando a query é dinamica,exemplo relatorios com filtros ai sim ela é uma forma viavel..mas adoraria ouvir opinioes de outras pessoas a respeito da melhor abordagem..

é que criteria voce esquece os HQL e sua aplicação fica mais digamos OO...

Bom fico no aguardo de varias opiniões sobre o prejeto como um todo .....tipo a esse dao deveria ser assim ou assado ou nao seria melhor isso do que aquilo .....realmente o que voce esta fazendo ...pra gente discutir uma linha comum entre a galera...

[Email]
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team