Ferramentas para desenvolvimento MVC num Sistema Desktop

6 respostas
Javabuntu

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…

6 Respostas

sandokandias

SWING
HIBERNATE ou TOPLINK
EJB 3 (Session Beans) se necessario.

pesquise sobre isso.

sandokandias

http://www.cti.furg.br/~carlos/down/2007-1/bd/Documentos%20-%20Arquitetura%20MVC%20em%20Aplicacoes%20Desktop.pdf

leia essa apostila tbem.

http://www.guj.com.br/posts/list/60570.java

aqui tbem

:smiley:

Luca

Olá

sandokandias:
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

mister_m

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. :slight_smile:

mchiareli

da uma lida neste artigo tb…

Java SE Application Design With MVC

http://java.sun.com/developer/technicalArticles/javase/mvc/#1

sandokandias

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

Criado 3 de junho de 2007
Ultima resposta 4 de jun. de 2007
Respostas 6
Participantes 5