Sei que um tópico anterior sobre aplicações web que estão sendo migradas para desktop, provocou uma polêmica sem tamanho… não tanto pelo desktop em si, mas isso também é polêmico, eu sei que a maioria dos desenvolvedores e das empresas hoje torcem o nariz para desktop. Até entendo os motivos.
Mas o fato é que, no momento, eu estou metido no desenvolvimento de uma aplicação… desktop! Usando o Swing (cheirem limão que o enjoo passa rsrsrs).
Mas agora a minha dúvida: o foco é tanto a web que não se acha nenhum bom framework nem para o CRUD arroz-com-feijão em desktop. Por isso estou pensando em desenvolver um eu mesmo (nada grande, apenas controlar uma mecânica comum a todos os formulários).
Qual seria o interesse da comunidade no uso de um framework CRUD Swing?
A minha ideia é criar uma classe genérica e abstrata que controla a mecânica de um formulário CRUD, agregando um JTable, seu TableModel, um JPanel onde vão os campos e o controle dos botões… Aí montar o layout distribuindo as partes vai de cada desenvolvedor, juntando tudo em um JFrame, JInternalFrame, onde for.
Para popular/recuperar objetos do JPanel de campos já existe um framework bacana para isso, o SwingBean. Não sei se vou usá-lo (talvez numa versão futura do projeto), mas o controlador principal abstrairá e deixará para as filhas a exibição/leitura de um bean nesse JPanel (onde eu poderia chamar o SwingBean se eu quiser).
O que ele fará é manter o TableModel, ouvir os eventos na grid, popular o painel, ouvir os botões, e comunicar-se com os repositórios/DAOs que implementarem uma interface própria para isso.
Relax, eu só estou pedindo opinião… vou fazer de toda forma, daí coloco na net com um manualzinho passo-a-passo.
O objetivo é ser enxuto e simples. Torçam o nariz de novo, mas em Delphi/Lazarus eu faço uns 20 CRUDs por dia (só que não é O.O.)
[quote=MarkKnopfler]Relax, eu só estou pedindo opinião… vou fazer de toda forma, daí coloco na net com um manualzinho passo-a-passo.
O objetivo é ser enxuto e simples. Torçam o nariz de novo, mas em Delphi/Lazarus eu faço uns 20 CRUDs por dia (só que não é O.O.)[/quote]
Fez bem, pois quem usava Delphi orientado a objeto não ganhava nada com isso na prática, era mais por purismo. Delphi é pra ser RAD, que é sua natureza e tudo nele ajudava para esta direção. 20 CRUDs por dia?? Eu nunca nem cheguei a 1/3 disso, mas Delphi era muito fácil mesmo e resolvia tudo muito bem sem maratonas, mas para as exigências atuais ficou fora de cena.
Sobre o “framework” só cuidado pra isso não engessar ou ficar complexo demais. O ideal é fazer métodos que ajudem em tarefas repetitivas, mas não retirar a liberdade do fluxo de criar uma tela.
[quote=javaflex]
Fez bem, pois quem usava Delphi orientado a objeto não ganhava nada com isso na prática, era mais por purismo. Delphi é pra ser RAD, que é sua natureza e tudo nele ajudava para esta direção.[/quote]
Não entendi esse comentário.
O que você ganha usando OO em Java, que não ganharia em Delphi?
Por que RAD seria conflitante com isso?
Para o autor, tem certeza que deseja criar um framework para Swing agora?
Eu acho que até a Oracle tá abrindo mão dele para apostar no JavaFx.
Sem falar que Java de certa forma ainda não me parece uma boa escolha para desenvolvimento desktop em si.
Aliás, não parece haver boas alternativas nesse nicho, sem usar C++.
Tempos atrás eu pensei em criar algo usando GTK+ usando algum binding pra uma linguagem de mais alto nível.
Não cheguei a ir em frente pra ver como seria, porém.
[quote=AbelBueno][quote=javaflex]
Fez bem, pois quem usava Delphi orientado a objeto não ganhava nada com isso na prática, era mais por purismo. Delphi é pra ser RAD, que é sua natureza e tudo nele ajudava para esta direção.[/quote]
Não entendi esse comentário.
O que você ganha usando OO em Java, que não ganharia em Delphi?
Por que RAD seria conflitante com isso?.[/quote]
No Java, por exemplo usando Spring MVC ou algo similar, eu nao vejo uma forma mais facil do que trabalhar com objetos, ja que o bind é feito automaticamente entre o json e o objeto do Java. Fora isso, temos o Hibernate que é amplamente usado. No Delphi o que mais tinha era framework OO caseiro, o Bold nunca foi muito usado.
O Delphi tem componentes de UI fantásticos, você dá uns cliques e tem um CRUD funcionando, escreve mais um pouco de código e ele fica divino, cria um form padrão com a mecânica e deriva para cada cadastro diferente usando o IDE. Mas esses componentes são ligados diretamente aos Datasets. Eu queria algo orientado a objetos.
Realmente o Swing não ajuda muito em produtividade, mas talvez seja por falta de boas ferramentas (nunca me dei bem com os sei-lá-o-que-builders das IDEs Java). Há um framework bacana, o SwingBean, que cria formulários com visual fodástico. Agora penso em colocar a mecânica básica de um CRUD em outro. Eu faço os cursos da Alura, quando vai sair um de JavaFX?
Jamais, a ideia é ele ser simples porém composto por partes de telas, que o desenvolvedor encaixaria como quisesse. A grid eu encaixo aqui, o painel de botões encaixo ali, o painel de campos do outro lado. O controlador só referenciaria todos eles.
Eu vou dar uma olhada no gerador de CRUD que o javaflex postou, para inspiração mesmo, mas o que eu pretendo é ter um framework básico, e não um gerador de código. Para customizar é muito mais prático do que ficar re-gerando código.
Acho interessante a idéia sim, ainda mais se não existe nada parecido. Por mais que o mercado seja pequeno, deve haver milhares de desenvolvedores desktop por ae…
Mas se fosse investir, acho que seria melhor investir em JavaFX ao invés de Swing