Olá pessoal,
venho aqui pedir uma opinião a vocês programadores, analista e engenheiros de software.
Estou iniciando um novo projeto para sistema WMS. Sistema o qual haverá um fluxo de dados razoável, com muitas entradas DB e alguns acessos simultâneos.
Haverá dois modos de acesso para o mesmo sistema. Modo local, utilizando um cliente com interface Swing ou SWT. E remoto, através de um cliente web, com Struts 2.0 ou JSF.
Utilizando o conceito MVC, penso em utilizar o mesmo código para Modelo e Controle, alterando apenas a camada de Visualização.
Minha grande dúvida é em relação aos frameworks e tecnologias à usar.
Tenho definido a utilização de PostgreSQL + Hibernate c/ Annotations para camada de modelo. Agora… será que a utilização de Spring seria uma boa para esse projeto?
Bom, gostaria de saber a sugestão de vocês, não apenas para a dúvida com o Spring. Mas também para o demais…
Será que a utilização de Hibernate não deixará o sistema um tanto quanto lento?
Obrigado,
Diogo Roedel
A questao de ultilizacao de frameworks dentro de um projeto, abranje muitas opnioes e muitos tipos diferentes de aplicabilidade de sistema.
Digamos que o seu sistema vai trabalhar com cruds simples e tal, alguma coisa de injecao de dependencias, AOP e X coisas…
Pq n ultilizar spring ?
Mas c tu for perguntar a opniao do Bruno Carlo… ele ja vai descuidar e tal rsr
O Spring tem um tratamento especial com o hibernate, ele ja tem coisas bem prontas pra tu trabalhar com hibernate.
Entao eu verificaria sobre o que vai ser o sistema e a especificacao, digamos, o foco do sistema e tal.
Ler documentacoes, e casos de sucesso ou insucesso.
Eu tenho usado o Spring em projetos pessoais, open source e comerciais. Posso te dizer que se você procurar entender bem o funcionamento do framework, entender todos os conceitos envolvidos, poderá tirar um bom proveito de tudo que o framework se propõe a fazer.
Para a aplicação Desktop, eu iria de SWT usando o bom e velho MVC. Para a aplicação Web, eu iria de Struts2 + Hibernate + Spring.
Esses frameworks seriam a espinha dorsal do seu sistema, tendo essa estrutura bem definida fica mais fácil realizar possíveis modificações que surgem ao longo do desenvolvimento. Afinal, um bom sistema é aquele que é capaz de sobreviver as modificações que são impostas.
Essa dúvida em relação a lentidão causada pelo Hibernate, já foi superada há bastante tempo. Hoje em dia em um projeto de verdade, não há espaço para utilização de SQL na mão. O Hibernate é uma poderosa ferramenta que bem usada pode auxiliar bastante. Mas ainda existe aquela velha história, não adianta ter uma boa ferramenta em maõs e utilizá-la da forma errada.
Se você procurar se informar melhor, verá que existem várias estratégias de cache para utilizar com o Hibernate. Há também algumas melhores práticas de utilização do framework, que quando bem usadas tornam o desenvolvimento/sistema muito simples e rápido.
Aconselho fortemente um estudo nos frameworks que você pretende usar, se possível crie uma simples aplicação para ver como tudo funciona.
Abraços.