Pessoal estou fazendo um sistema desktop e gostaria de saber quais as melhores ferramentas a usar no desenvolvimento MVC num sistema desktop, quais as melhores práticas, quais recomendações vocês me dariam para fazer um sistema bem projetado…
Agradeço a todos que ajudarem…
Ferramentas para desenvolvimento MVC num Sistema Desktop
6 Respostas
SWING
HIBERNATE ou TOPLINK
EJB 3 (Session Beans) se necessario.
pesquise sobre isso.
Olá
http://www.cti.furg.br/~carlos/down/2007-1/bd/Documentos%20-%20Arquitetura%20MVC%20em%20Aplicacoes%20Desktop.pdf
Ótimo link!
Leia com atenção e perceberá que não pode ser assim. Tem forte cheiro de Anemic Domain Model e programação estruturada com objetos só com estados e objetos só com comportamento, como era a droga dos EJBs antes da versão 3.0. Leia um pouco do blog do Phillip Calçado e entenderá melhor porque este PDF é um anti-pattern.
A menos que você queira fazer uma coisinha simples e limitada, uma aplicação desktop não deve ser desconectada da Internet e nem pode ser muito diferente de uma aplicação web a menos das diferenças particulares de cada tipo de camada de apresentação. Não vejo muito interesse em um sistema que funcione confinado em uma máquina ou mesmo na rede local.
Frameworks (além dos jakarta-commons, Log4j, JUnit, etc.):
- Camada de apresentação: eu usaria o JGodies ou coisa semelhante (veja o blog e leia os artigos do Hugo Vidal) e HttpClient. Talvez Apache XML-RPC ou JMS dependendo do projeto.
- No servidor: Spring inclusive AOP e Hibernate
Para mim, as vantagem de usar Spring e Hibernate ao invés de EJB3 são as seguintes:
- Hibernate já é um pouco mais avançado em termos de facilidades do que EJB3 e é provável que evolua mais rápido;
- DI do Spring ajuda a separar a lógica de negócio da camada de serviços sem cair no Anemic Domain Model.
- Spring com AOP evita o uso de interceptors do EJB3 que obriga Copy&Paste de anotações por todo o código em que os interceptors seriam adequados
- O Spring ainda oferece algumas facilidades para JMS, EAI, JMX e futuramente o uso de um framework OSGi
- Vários outros frameworks dispoem de plugins para o Spring.
Considere o uso do pattern observer na camada de apresentação para validar campos localmente. Não se esqueça de validar os mesmos campos também no servidor para evitar a possibilidade de cliente fake.
Ah, eu gostei muito deste post do Bruno e o diálogo com o RafaeRio. Vale a pena ler.
[]s
Luca
Recomendo que você use frameworks que te ajudem na parte desktop em si, na integração com o servidor e no backend (supondo que exista servidor) e que comece com a arquitetura mais simples possível que atenda seus requisitos. Para a parte desktop, recomendo o genesis, um framework brasileiro com documentação completa em português, que permite trabalhar com o seu modelo de objetos ao invés de ter que escovar bits com o Swing. 
da uma lida neste artigo tb…
Java SE Application Design With MVC
http://java.sun.com/developer/technicalArticles/javase/mvc/#1
realmente havia me esquecido do GENESIS http://genesis.dev.java.net/nonav/3.0-RC2/maven-site/pt-BR/documentation_intro.html
e tem tbem o SPRING RCP http://www.springframework.org/spring-rcp
