Aplicação Desktop Java

Pessoal, seguinte:

Estou para iniciar a codificação de uma aplicação de tamanho médio (o MER prevê umas 100 tabelas), e a plataforma escolhida é Java.

Em princípio, será uma aplicação Desktop para ser utilizada em uma rede Local com aproximadamente 30 acessos simultâneos. Em um futuro bem próximo, terei que desenvolver algumas ferramentas Web de consulta para acesso pelo Site da empresa. Futuramente talvez migraremos 90% da aplicação para Web, restando apenas algumas funções específicas de integração com automação para terefas desktop.

Estou em dúvidas sobre o que usar. Arquitetura, Fremeworks, etc. Não tenho experiência com projetos Java, estudei Java Core, JSP e Servlets a uns oito anos e hoje fiz algumas aplicações com Swing/JDBC.

Uma coisa é certa: Swing e JDBC puros são inviáveis pela questão de produtividade muito baixa.

Então, definimos que vamos usar Hibernate para abstrair o acesso ao banco de dados.

O que é mais viável:

1-) Swing direto no Hibernate?
2-) Swing + Genesis + Hibernate ?
3-) Swing + Genesis + JBoss + Hibernate ?

E futuramente, seria só tirar o Swing e colocar um Tomcat e taria tudo certo ? Reaproveitaria o código?

Isso seria programar em quantas camadas enfim?

Cara, eu faria da seguinte forma. Usaria Mvc, e deixaria meu Model ( camada de negocio ) no servidor ( tomcat, jboss, oc4j e etc ), pra isso usaria Hibernate como provedor Jpa ( Java Persistence Api ) o que torna ainda mais rápido o desenvolvimento. Fazendo isso a camada Cliente fica independe da tecnologia usada ( swing, jsp, flex e etc ) e assim na hora que vc for migrar para web o esforço é menor. Como a principio será uma aplicação desktop, passe a camada de negocio pra um tomcat da vida e depois é só acessar os serviços que estarão no server.

Opa Amigo tranquilo

Bom na minha opinião se você ja esta prevendo uma interação futura com web e quem sabe outras tecnologias eu sugiro dar uma olhada em REST

eu estou estudando ficaria algo ± assim

Camada de Visualização => (Swing, Delphi, C ou Qualquer outra Tecnologia)

Camada de Serviço REST => (estou estudando Groovy bem simples mas vc tem muitas opções)

Camada de Dados => (Aqui eu to usando o Hibernate)

acredito que essa arquitetura orientada a serviço tras muitos beneficios é bom vamos ver as opiniões dos colegas ai.

Abraços

Fernando

starkiller ficaria assim então?

Swing

JBoss ou Tomcat

Hibernate

Onde entra o Spring Mcv aqui ? Qual seria sua função?

[quote=worldfernando]Opa Amigo tranquilo

Bom na minha opinião se você ja esta prevendo uma interação futura com web e quem sabe outras tecnologias eu sugiro dar uma olhada em REST

eu estou estudando ficaria algo ± assim

Camada de Visualização => (Swing, Delphi, C ou Qualquer outra Tecnologia)

Camada de Serviço REST => (estou estudando Groovy bem simples mas vc tem muitas opções)

Camada de Dados => (Aqui eu to usando o Hibernate)

acredito que essa arquitetura orientada a serviço tras muitos beneficios é bom vamos ver as opiniões dos colegas ai.

Abraços

Fernando[/quote]

Fernando, como bindar um serviço Restful com Swing? Nem imagino como fazer isso…

usar um httpclient do apache e trocar as informações com JSON, XML

O Rest seria apenas o padrão de comunicação entre a camada de negócio e o cliente?

Se sim, poderia então usar arquitetura MVC, onde o REST estaria implementado apenas no Controlador ?