Arquitetura para iniciar projeto Desktop

11 respostas
A

Pessoal, vou trabalhar na conversão de alguns sistemas contábeis e financeiros antigos desenvolvidos em Clipper para a plataforma Java, e usarei Swing. Obviamente vou ter que converter tudo para OO e penso em utilizar Domain Model.
Alguém tem alguma sugestão de arquitetura ou framework para este tipo de sistema? Basicamente eles vão acessar um banco de dados na rede (via TCP/IP) e serão instalados nas máquinas dos usuários (como uma app desktop normal)

Tenho uma certa experiência com Swing (desde 2005) mas sempre fiz as coisas “no braço”. Pensei em usar o Swing App Framework da Sun, mas soube que está descontinuado. Achei o Netbeans Platform muito complexo, alguém tem alguma sugestão?
Valeu!

11 Respostas

paulo1911

Oi amhfilho,

Entendo que o requisito seja para desktop, mas acredito que o ideal seria um sistema intranet web.
Pois é mais fexivel, mas facil de manter e mais facil de administrar depois. :wink:

Sendo dektop pra acessar o bd na rede vc teria que usar rmi ou soket para a plicação client acesar a app server. :?

É um caso a se pensar. :roll:
Eu particularmente gosto muito de usar Spring, Struts2, JPA e Velocity.
Com o Maven para gerir o projeto e as dependencias do projeto.

Para intranet fica Show!! na minha opinião é claro. :smiley:

se for mesmo desenvolver em dektop, pense no Open Swing que é mais atualizado.

Boa sorte no seu projeto.
Fallow :smiley:

x111

Neste tópico o pessoal recomenda o WindowBuilder, não utilizei ainda para dar uma opnião.
Agora o dominio é independente da visualização então você pode faze-lo tranquilamente.

x111

paulo1911:
Oi amhfilho,

Entendo que o requisito seja para desktop, mas acredito que o ideal seria um sistema intranet web.
Pois é mais fexivel, mas facil de manter e mais facil de administrar depois. :wink:

Sendo dektop pra acessar o bd na rede vc teria que usar rmi ou soket para a plicação client acesar a app server. :?

É um caso a se pensar. :roll:
Eu particularmente gosto muito de usar Spring, Struts2, JPA e Velocity.
Com o Maven para gerir o projeto e as dependencias do projeto.

Para intranet fica Show!! na minha opinião é claro. :smiley:

se for mesmo desenvolver em dektop, pense no Open Swing que é mais atualizado.

Boa sorte no seu projeto.
Fallow :smiley:


Não é necessário a utilização de RMI, é possivel criar um cliente com acesso direto ao banco.

A

paulo1911, o sistema realmente é desktop.

O acesso a banco será por JDBC mesmo, pela rede. A camada de DAO será com JPA2 (eclipseLink)

johnny_quest

Como você conhece e tem experiência no swing desde 2005,
então te diria para projetar em outra área, mas especificamente para web.

Aproveite a oportunidade e crie o sistema todo na web, como forma de aprendizado mesmo
do que colocar o código no client usando swing.

Utilize JSF 2.0 como front controller, JPA 2.0 ou/e EJB 3.1 no backend.

A

Como você conhece e tem experiência no swing desde 2005,
então te diria para projetar em outra área, mas especificamente para web.

Aproveite a oportunidade e crie o sistema todo na web, como forma de aprendizado mesmo
do que colocar o código no client usando swing.

O sistema TEM QUE SER EM SWING! Não é uma decisão minha, e sim do cliente.

Bom, deixa pra lá…

johnny_quest

ok

x111

amhfilho:
Como você conhece e tem experiência no swing desde 2005,
então te diria para projetar em outra área, mas especificamente para web.

Aproveite a oportunidade e crie o sistema todo na web, como forma de aprendizado mesmo
do que colocar o código no client usando swing.

O sistema TEM QUE SER EM SWING! Não é uma decisão minha, e sim do cliente.

Bom, deixa pra lá…

Você ainda pode criar o front no swing e usar EJB no back ao invés de fazer um sistema cliente-servidor nolmal. O problema é que você necessitária instalar no servidor além do banco, o glassfish ou o jboss, mas o tempo de desenvolvimento creio que seja beemm menor por usar EJB, além do fato de ser facilmente migravel para internet!.
É uma opção interessante. Claro que nada impede de vc utilizar somente JPA, principamente se o sistema for de “prateleira”. Neste caso é a melhor opção mesmo, mas se for um sistema de uma empresa, eu pensaria em utilizar EJB.

A

Este sistema não é Enterprise. Não tem servidor de aplicação nem existe a possibilidade de rodar na Web. Vai ser um sistema Desktop mesmo, instalado via Java Web Start.

Obrigado pela ajuda de todos

javer

Não precisa complicar tanto, faz ele em Swing, qual o problema?

Apenas faça “como manda o figurino”, faça em camadas, use o Hibernate (esse facilita muito, inclusive com validação, o que é ótimo), use o JasperReport para os relatórios, etc…

Não precisa usar vários frameworks, use o Swing bruto que fica ótimo, se você tem experiência em Swing provavelmente nem precisamos dizer muito aqui o que deve fazer.

Abraço e boa sorte, peça ajuda no que for precisando.

A

Concordo javer. O fato de ser desktop é um requisito do cliente, e não uma opção minha, acho que a galera não entendeu.
Só pra constar, estou usando domain model com anotações de JPA. Também fiz uma camada de DAO que é acessada pelas classes do Swing. O acesso é feito por interfaces publicas então se um dia quiser implantar este sistema na Web é só alterar a implementação do DAO para obter o EntityManager por injeção de dependências e manter o controle no container.

Estou usando Swing puro mesmo, acho que vai dar menos trabalho do que aprender um outro framework.

Criado 17 de fevereiro de 2011
Ultima resposta 18 de fev. de 2011
Respostas 11
Participantes 5