Ola pessoal. Eu precisava criar um sistema para controle vendedores.
Mas estou perdido como arquiteta esse sistema.
1°) Ideia Fazer uma aplicação swing estilo delphi, ou seja, a aplicação teria as regras de negocio e as regras de apresentação. Mas isso seria inviavel em java… pois daria muito trabalho e ficaria um “merda”…
o que eu estava pensando. separar as regras do negocio da apresentação das informações , mas eu não sei como fazer isso.
eu estou abismado. muita gente fala usa uma servelt como controladora.
Mas como ? eu poderia fazer uma aplicação baseada em web mas com cliente desktop/swing ao inves de jsp ?
e questões como persistencia de dados como analizar ?
Muito obrigado, qualquer informação sera bem vinda.Lembrando to iniciando nisso.
Você pode deixar toda sua regra de negócio no servidor rodando sobre um servidor de aplicação sem problemas.
Você pode usar Swing e para fazer essa comunicação ao servlet, você usa o URLConnection, mas lembre-se, não coloque regras de negócio no seu servlet, apenas o use como Controlador.
Sobre camada de persistência você pode usar o Hibernate, aqui no GUJ tem um tutorial legal para iniciar o seu uso e a documentação do hibernate é muito boa.
Se você tiver um tempo legal para estudar e testar algumas ferramentas, você pode dar um olhada no Xwork da opensymphony, se eu não me engano, ele já implementa boa parte do Controller para você.
Faz um bom tempo que eu não mexo com Swing :oops: , mas acredito que o JTree deva ter um ActionListener para Click (como o evento onClick do Delphi), nesse Listener você chama o servidor passando o seu valor. O Servlet irá capturar esse valor e chamar o modelo. Depois que tiver todos os dados corretos, retorna para a View.
é então… só que eu to enrolado nisso… tipo o model eu fiz com design pattern Observable e a view é um observer. tipo toda vez que ocorrer mudanças no model a view é notificada.
é isso mesmo ?
outra coisa… tipo as view tem uma referencia para o controller né ? uma unica referencia para todas a views ? e quando a view executar um metodo no controller tipo :
controller.execute(String viewName,Object args)
dae esse metodo execute deve saber que model instanciar e executar a regra de negocio e pare onde direcionar a view ?
Voce pode montar esse sistema utilizando o seguinte:
Web services / SOAP: se o sistema for de pequeno porte. Vc pode montar a parte
do servidor em Java, e o cliente no desktop em Delphi.
RMI: se cliente e servidor forem em java. Muito mais rapido a comunicao do que
SOAP. Porem o desenvolvimento do cliente é bastante demorado (nem vou colocar
aqui a possibilidade de EJB).
A vantagem da segunda opcao é que seus clientes poderao rodar Java…sendo assim
Linux e Windows. Sem contar na velocidade de comunicacao. Nessa opcao os dados sao binarios…enquanto o SOAP é atraves de mensagens XML.
Porem se o sistema for de pequeno porte, talvez faze-lo com SOAP seja a melhor opcao. A partir do Delphi 6 já tem cliente SOAP (e servidor também).
Voce precisara pesquisar as seguintes tecnologias:
Web services: SOAP, Jakarta Axis
RMI
Padroes uteis: session facade, business delegate, ServiceLocator.
tipo o banco de dados vai ser firebird. é assim na verdade eu queria fazer o cliente Flash(RIA). só que como agente ta sem tempo resolveu fazer em Java com o SWING. só que eu queria separar a view da logica de nogocio para depois quando for implementar em flash só tem que mudar o cliente as regras de negocio continuam as mesmas.
nesse caso que plataforma eu poderia usar ? eu to ficando louco quanta coisa…
Se eu tivesse apertado no tempo, com certeza eu faria a parte servidor em Java
e a parte cliente usando Delphi (com SOAP).
Quanto ao Flash RIA, ee eu nao me engano, só o servidor Flash custa lá fora US$ 12 mil.
Se for usar Swing, ele já é MVC.
A necessidade de uma solucao para seu problema, acredito que seja geral. Eu estou pesquisando uma solucao assim já fazem uns 4 meses.
Se optar mesmo por java, comece pelo lado do servidor. Estude o seguinte:
RMI.
HIBERNATE para pesistencia (aceita o Firebird).
Os seguintes padroes: SessionFacade.
No cliente vc. precisara do seguinte:
SWING: Pesquise sobre o Spring RCP; SwingSet, JDNC. veja qual melhor encaixe no seu projeto. Além disso, nao deixe de ver o JGoodies , sobre FormLayout.
Padroes: ServiceLocator e BusinessDelegate.
Quanto aos relatorios…acho Java uma m****. Faca somente em Java as impressoes de formularios (nota fiscal). Os relatorios vc pode fazer a parte, usando Crystal Reports ou até mesmo o Delphi.
Se tiver apressado, contrate uma consultoria para auxiliar o projeto…com certeza vc economizara dinheiro.