Arquitetura (novo sistema)

10 respostas
gugaa_df

Preciso criar a arquitetura de um novo sistema web aqui na empresa, e ainda não consegui me decidir com o que utilizar.
Detalhes importantes:
Não precisamos de RIA, os usuários do sistema serão todos internos, do mesmo bloco, e não precisamos de dinamismo na interatividade com o usuário.
Utilizaremos componentes distribuídos.
Precisamos de agilidade no desenvolvimento, para criar uma tela, teria que ser algo extremamente simples e rápido.
O esquema de permissões será todo baseado em grupo e cada grupo pode ter grupos filhos que herdam algumas permissões do grupo pai.
Estamos querendo utilizar as tecnologias novas e top do mercado.
O sistema não pode ser lento… (acho que nenhum pode rsrs)

Pensei em utilizar o Seam, mas não sei se seria a melhor saída, pq não estou decidido se usarei JSF.
Estou em dúvida entre usar JSF ou não pelo fato que eu não preciso de algo com componentes, talvez ou outro framework com DWR ja resolveria o problema.
Ví no netbeans algo bem interessante, nele é possível gerar um CRUD a partir das suas entidades mapeadas com JPA, porém é necessário utilizar JSF para tal coisa, existe algo parecido no eclipse?

Também pensei em utilizar Spring para o controle de transação, essas coisas, mas devido aos componentes talvez seria melhor usar apenas EJB.
Também pensei em utilizar Flex, sei lá…

Bom estou meio perdido, se poderem me ajudar, e também preciso de justificativas de o porque adotar tal tecnologia.

10 Respostas

SanjuanRJ

Pela sua descrição eu usaria o Seam.

Não tenho muito conhecimento nele, mas ele faz tudo o ue você quer. Ele tem gerador de crud, pode usar ria nele com o richfaces e ainda tem a parte distribuída.

Parece ser a solução ideal.

gugaa_df

Ja pesquisei e andei lendo várias coisas a respeito dele, mas não o conheço, pelo que vi gostei bastante e estou mto tentado a utilizar ele.
Andei lendo um pouco sobre o spring, mas tb nunca trabalhei com ele, utilizando o Seam, eu necessitaria do spring para alguma coisa?

rogeriuslima

Pra parte de apresentação, hoje em dia, acho que não tem muita dúvida, é jsf na cabeça.
Mesmo que vc não precise de um cliente rico (nesse caso vc não deveria nem considerar usar flex), jsf agora é o padrão para desenvolvimento da interface web e também implementa o padrão mvc.
Quanto a parte de segurança, dá uma olhada no Spring Security, ele lhe permite maiores opções de configuração que o oferecido pelo ejb.

peerless

não pensou em ror/jruby, grails ou django ?

L

Existem problemas:

Você não quer uma arquitetura, você quer saber “qual o melhor framework a ser usado”. E isso é bastante impossível de responder, pois, certamente, alguns de nós irá te dizer um framework que gosta mais ou que está na moda, mas que, não necessariamente, é a melhor solução para o seu caso.

Temo também que, esses tipos de pergunta que aparecem no GUJ (do tipo: “o que eu devo usar quando…”) carreguem a expectativa de que nós iremos te trazer a resposta correta. Infelizmente não temos o poder pra isso, e mais infelizmente ainda, você não vai escapar dos erros que surgirão pelo caminho.

Sugiro que você escolha o framework que você se sente mais à vontade. E que não tenha medo de “corrigir a rota” quando descobrir que tomou a decisão errada.

gugaa_df

Eu entendo. Mas eu quero agilidade no desenvolvimento, e nem sempre o framework que estamos acostumados será o mais produtivo.
E também não falei em uma solução mágica, apenas argumentos entre usar um e outro.
Por exemplo gostei do seam pela integração dele com outras tecnologias e pelo generador de código dele.
Mas também gosto muito do mentawai, ele é bem prático e rápido tb, mas tb tem o vraptor que é mto bom, então realmente é mto complicado decidir.
O que peço a voçês são argumentos para a escolha entre um e outro.

obs: somente java

Leonardo3001:
Existem problemas:

Você não quer uma arquitetura, você quer saber “qual o melhor framework a ser usado”. E isso é bastante impossível de responder, pois, certamente, alguns de nós irá te dizer um framework que gosta mais ou que está na moda, mas que, não necessariamente, é a melhor solução para o seu caso.

Temo também que, esses tipos de pergunta que aparecem no GUJ (do tipo: “o que eu devo usar quando…”) carreguem a expectativa de que nós iremos te trazer a resposta correta. Infelizmente não temos o poder pra isso, e mais infelizmente ainda, você não vai escapar dos erros que surgirão pelo caminho.

Sugiro que você escolha o framework que você se sente mais à vontade. E que não tenha medo de “corrigir a rota” quando descobrir que tomou a decisão errada.

SanjuanRJ

Eu também levaria em consideração o conhecimento da equipe e o seu conhecimento. Quase sempre o framework que estamos mais acostumados é o mais produtivo, já que a curva de aprendizado de uma novo framework pode atrasar o projeto.

No final quem vai decidir é você. Eu concordo com o Leonardo também. Só não vai usar Struts 1.3 haueuaheuhae.

gugaa_df

Só que a equipe no caso seria só eu… hehehe
To pensando que esta seria uma ótima hora aprender o seam, já colocando a mão na massa.
O meu medo é de não dar conta, pq não vou ter onde pedir socorro em algumas horas!
Ou em hipótese alguma deve-se começar um projeto numa tecnologia que ainda não possui afinidade?

SanjuanRJ:
Eu também levaria em consideração o conhecimento da equipe e o seu conhecimento. Quase sempre o framework que estamos mais acostumados é o mais produtivo, já que a curva de aprendizado de uma novo framework pode atrasar o projeto.

No final quem vai decidir é você. Eu concordo com o Leonardo também. Só não vai usar Struts 1.3 haueuaheuhae.

SanjuanRJ

Se você tem prazo para entregar, essa definitivamente pode não ser a melhor idéia pq vc não vai ter como definir quanto tempo vai gastar para fazer as coisas.

Se não tiver prazo vc pode considerar, já que é sempre bom aprender algo novo.

fantomas

gugaa_df:
Só que a equipe no caso seria só eu… hehehe
To pensando que esta seria uma ótima hora aprender o seam, já colocando a mão na massa.
O meu medo é de não dar conta, pq não vou ter onde pedir socorro em algumas horas!
Ou em hipótese alguma deve-se começar um projeto numa tecnologia que ainda não possui afinidade?

No geral concordo com que os camaradas disseram antes.

Realmente dá um certo medo de aplicar algo novo e desconhecido e comprometer o projeto.

Minha dica é a seguinte:
Eu entendi que o projeto não é muito complexo, sendo assim vc poderia parar um momento e tentar descobrir os pontos críticos do projeto, aqueles que vc considera obscuro / complexo. Depois de vc levantar estes pontos verifique se o que vc tem a intenção de aplicar lhe ajuda a resolver estes pontos críticos; se lendo o tutorial / documentação vc não ver o como montar uma solução para os possíveis desafios vc descarta.

Bom planejamento e principalmente motivação são ótimos amigos do tempo.

P.S. É claro que surpresas sempre aparecem para atormentar, principalmente em cima daquelas coisas que vc considerou simples de fazer e não se preparou para ela. Mas as coisas são assim mesmo, faz parte do jogo (sujo) rsrsrs.

flws

Criado 11 de março de 2009
Ultima resposta 11 de mar. de 2009
Respostas 10
Participantes 6