Qual framework utilizar

Boa tarde

finalmente, minha empresa decide abandonar o delphi e migrar para o Java, estamos em discussão de qual framework web utilizar em novos projetos os projetos antigos não sofreram migração.

Assim pediria a opinião dos senhores de qual lado seguir, nossa GP com ideas de “bala de prata” viu no Jboss Seam a menina dos olhos dele, parte da equipe tem opiniões formadas sobre JSF+Hibernate+Spring outra parte bom quer tudo que seja facil e com rad (delphi e fogo) rsrsrs. Brincadeiras a parte pediria se alguem poderia nos ajudar nessa escolha sugestões contando experiencia ou qualquer coisa que posso nos ajudar.

O motivo do GP achar que o Jboss Seam e a solução e pq acredita-se que ele levara a um agilidade muito rapido , mas, se usarmos ele existira algum problema a longo prazo? percebemos que ele nao é muito popular.

fico grato pela ajuda.

[quote=pereiralp]Boa tarde
finalmente, minha empresa decide abandonar o delphi e migrar para o Java, estamos em discussão de qual framework web utilizar em novos projetos os projetos antigos não sofreram migração.
Assim pediria a opinião dos senhores de qual lado seguir, nossa GP com ideas de “bala de prata” viu no Jboss Seam a menina dos olhos dele, parte da equipe tem opiniões formadas sobre JSF+Hibernate+Spring outra parte bom quer tudo que seja facil e com rad (delphi e fogo) rsrsrs. Brincadeiras a parte pediria se alguem poderia nos ajudar nessa escolha sugestões contando experiencia ou qualquer coisa que posso nos ajudar.
O motivo do GP achar que o Jboss Seam e a solução e pq acredita-se que ele levara a um agilidade muito rapido , mas, se usarmos ele existira algum problema a longo prazo? percebemos que ele nao é muito popular.
fico grato pela ajuda.[/quote]

O que define framework é necessidade arquitetural…
O que define arquitetura é são os requisitos…
O que define requisitos é a necessidade e restrições a suposta solução…
Ou seja…
Não da para decidir assim meu amigo…
Decidir assim no escuro tudo funciona…

Outra coisa…agilidade e produtividade esta relacionado com o domínio da plataforma…
Não da para ser produtivo em algo q vc não saiba…então é complicado decidir pelo framework A justificando produtividade…

Bom ja passei pela experiência de trabalhar com frameworks sem muita popularidade e na hora de procurar soluções foi uma briga, porém acho que hoje o JSF 2.0 + hibernate + JPA é uma ótima idéia para joga um primefaces fica bonitasso.
Atualmente usamos eles.

Seria interessante adotar algo com uma curva de aprendizado pequena e que não fique no meio do caminho da sua equipe (= famoso pé-no-saco ou framework-pentelho-intrusivo)

Se vc domina algo, esse algo consequentemente se torna produtivo. O problema é o TEMPO QUE VC VAI demorar para dominar algo.

Devem existir gurus em C++ que são mais produtivos que a maioria dos programadores em Java. Isso NÃO quer dizer que C++ é mais produtivo que java.

Por isso tudo acima eu não recomendo JSF + Hibernate. Vc vai penar MUITO no início.

Dá uma olhda no Mentawai e no Play Framework.

http://www.mentaframework.org

http://www.playframework.org

FernandoFranzini

[quote]O que define framework é necessidade arquitetural…
O que define arquitetura é são os requisitos…
O que define requisitos é a necessidade e restrições a suposta solução…
Ou seja…
Não da para decidir assim meu amigo…
Decidir assim no escuro tudo funciona…

Outra coisa…agilidade e produtividade esta relacionado com o domínio da plataforma…
Não da para ser produtivo em algo q vc não saiba…então é complicado decidir pelo framework A justificando produtividade…[/quote]

basicamente teremos um sistema distribuído com focalizado na Web e um sistema Web normal ao estilo mvc, a maoiria de nossa equipe conhece isso.

Precisamos de uma curva de aprendizado menor , mas que possua uma boa escalabilidade, no futuro a previsao inicial é de 50 usuario mas se tudo correr bem teremos 500 user do sistema, com pico de ate 100 user simultaneos;

Precisamos de boa documentação e de preferência uma boa quantia de material em português

Hibernate é ununimidade entre nós, mas ,estamos buscando novas ideas tbem.

O indice de manutenção desse sistema sera algo do nivel 10 por dias, pois, sera no mesmo modelo de delphi cliente solicitam modificações e fazemos, logo, ele tera de ser adptavel.

Ele deverar ser multiplataforma e multibanco.

Acho que esses sao os principais requisitos ao fato do gosto pessoal parte da equipe gosta de mvc o gp de Jboss Seam, esse é o motivo de nosso questionamentos buscamos segundas opinioes e pq, desde já agradeço a resposta.

Cara JSF tem um grante grupo de pessoas que ja domina, então para tirar duvidas, achar informações vai ser bem mais facil, alem de estar na especificação java pois tem uma documentação otima.

minha opnião (JPA + JSF)
ou
(Hibernate + Spring)

[quote=erickfm8]Cara JSF tem um grante grupo de pessoas que ja domina, então para tirar duvidas, achar informações vai ser bem mais facil, alem de estar na especificação java pois tem uma documentação otima.

minha opnião (JPA + JSF)
ou
(Hibernate + Spring)[/quote]

Eu juntava tudo:http://cagataycivici.wordpress.com/2007/09/10/using-spring-to-manage-jsf-beans/

Outroa coisa, quando o pessoal está chegando no JAVA,fala tando de MVC que não percebe a QUANTIDADE de padroes que tem com mesmo “PESO” para o projeto.

MVC - > JSF já implementa, então vc não precisa se procupar tanto.
Spring MVC - > tbm já implementa.

antes com servelts e jsp teria todo o trabalho de fazer isto, hoje é simples. então tem outros pontos ai pra se procupar

Boa Rafael, o problema é que seria mais framework para equipe aprender , para poder saber qual coisa encaixa com determinado framework…

Cara, Mentawai é PHoda com PH maiúsculo, bom demais.
Eu tenho um software rodando com ele que atende 20 filiais e cerca de 300 usuários on-line.

JSF2, como disse o amigo acima, você vai ralar um pouco, até porque, os tutoriais na net são fácil, mas na hora do vamos ver, o bicho pega.

Por exemplo.
Estamos migrando a aplicação de Mentawai para JSF2 ( para ganhar produtividade em aspectos visuais ), ai eu aproveitei para fazer um JPA com Hibernate e Spring, ai eu caguei no pau do palhaço, porque no desenvolvimento funcionou uma beleza, mas na produção, ixi, pauzeira uma atrás da outra ( por pura falta de conhecimento ). Dava muito erro de session is closed quando se trabalha com relacionamento do hibernate ( jpa ), ai eu fiz uma gambi para funcionar até eu ter um tempo para dedicar e aprender direito como fazer o JSF 2 - JPA funcionar redondinho.

valeu.

[quote]basicamente teremos um sistema distribuído com focalizado na Web e um sistema Web normal ao estilo mvc, a maoiria de nossa equipe conhece isso.
Precisamos de uma curva de aprendizado menor , mas que possua uma boa escalabilidade, no futuro a previsao inicial é de 50 usuario mas se tudo correr bem teremos 500 user do sistema, com pico de ate 100 user simultaneos;
Precisamos de boa documentação e de preferência uma boa quantia de material em português
Hibernate é ununimidade entre nós, mas ,estamos buscando novas ideas tbem.
O indice de manutenção desse sistema sera algo do nivel 10 por dias, pois, sera no mesmo modelo de delphi cliente solicitam modificações e fazemos, logo, ele tera de ser adptavel.
Ele deverar ser multiplataforma e multibanco.
Acho que esses sao os principais requisitos ao fato do gosto pessoal parte da equipe gosta de mvc o gp de Jboss Seam, esse é o motivo de nosso questionamentos buscamos segundas opinioes e pq, desde já agradeço a resposta.[/quote]
Bom, a coisa ja começa a ficar boa e ja temos alguns indícios…Segue minha opinião:

  1. boa escalabilidade para 500 usuários não existe…500 usuários é muito pouco mesmo…
  2. vc não tem necessidade de EJB, descarte qualquer coisa relacionada;
  3. Curva de aprendizado e produtividade é adquirido no estabelecimento da arquitetura e seus padrões.
  4. Use uma camada de persistência polimorfica para multibanco…use a especificação JPA na frente do Hibernate ou aplique DAO manual.
    Dainte de mais fatores, requisitos e restrições vai vai decidindo outro detalhes…
    Tem outros?

[quote=solracnet]Cara, Mentawai é PHoda com PH maiúsculo, bom demais.
Estamos migrando a aplicação de Mentawai para JSF2 ( para ganhar produtividade em aspectos visuais )[/quote]

Vc se refere a customização de skins(que com o JSF realmente são um pé no saco) ?

+1 no play framework.

Ainda estou estudando, mas, até agora, estou gostando bastante.
Rápido de desenvolver, simples, sem falar que não tem aquele stop/start para recompilar os arquivos java.

Trabalhei numa empresa que usava Hibernate, Spring + Spring MVC. Pedi demissão.

FernandoFranzini, qd informei 500 usuários, estes seriam simultaneamente, não o número total de usuários, mesmo assim pode não se comparar a uma solução bancária, com mais de 5.000 usuários conectados simultaneamente. Pelo pouco que já li, concordo com você com relação aos EJBs, não seriam necessários para nossos projetos atuais. Com relação à curva de aprendizado, alguns já trabalharam com Rails e a forma de trabalhar com ele agrada a certos programadores da equipe.

diogo soares e erickfm8, creio que as suas soluções estão próximas do que deveríamos adotar, JPA + JSF.

saoj e solracnet, vou estudar mais a respeito e crirar POCs do Mentawai e do Play Framework, a proposta deles é interessante.

raf4ever, pensamos nisso num primeiro momento, vamos avaliar se com isso teremos uma respostá rápida por parte da equipe.

Creio que o “mundo ideal” seria encontrarmos uma solução em que a equipe absorvesse de forma mais rápida, para que consigamos obter o produto final robusto e no menor tempo possível.

Sei que podem se tratar de fatores subjetivos, mas creio que se focarmos nos fatores objetivos, chegaremos a uma conclusão, não absoluta, mas no mínimo mais precisa para nossa demanda.

Valeu, e aceito mais sugestões :]

Não dá para fazer uma equipe sair trabalhando com um framework porque o produto final pode até sair, mas sairá como a torre de Piza, por quê ?

Por experiência própria você pode até ter uma equipe boa e que aprenda rápido mas, não dá para você montar uma arquitetura ideal para desenvolver com determinado framework sem conhece-lo. Geralmente na metade do caminho você perceberá que errou no começo, isto acontece mesmo com os melhores, mas o problema é que vocês terão muito tempo gasto com estes problemas e nem todos são reversíveis.

Sobre o SEAM Framework, parece ser mesmo uma mão na roda e bem completo. As JSR-299 e JSR-300 foram baseadas nele e o líder destas JSR’s foi o idealizador do SEAM Framework. Mas me corrijam se eu estiver errado o SEAM usa a plataforma inteira do Java: EJB, JSF, JPA dentre outros, ou seja, para saber SEAM você terá que saber muita coisa de Java, por isso, acho melhor você fazer um processo incremental, começem com um framework para a regra de negócio, por exemplo EJB ou Spring, depois vá para a camada de apresentação com JSF, Flex ou qualquer outro, ou ainda vá para a persistência, trocando o seu JDBC por um Hibernate,JPA ou qualquer outro.

[quote=pereiralp]FernandoFranzini, qd informei 500 usuários, estes seriam simultaneamente, não o número total de usuários, mesmo assim pode não se comparar a uma solução bancária, com mais de 5.000 usuários conectados simultaneamente. Pelo pouco que já li, concordo com você com relação aos EJBs, não seriam necessários para nossos projetos atuais. Com relação à curva de aprendizado, alguns já trabalharam com Rails e a forma de trabalhar com ele agrada a certos programadores da equipe.
[/quote]
O numero de usuário habilitado/totais não tem influencia, uma vez que a escalabilidade só esta relacionado com números de sessões simultâneos.
Pela minha experiência posso te falar que uma aplicação web redonda com JSF + JPA + Tomcat com 1G RAM para JVM sobra recursos para seu cenário tranquilo…

Para aqueles que tiverem interesse de saber mais sobre o mentawai, pode participar do grupo: mentawai@googlegroups.com , ou pelo site: www.mentaframework.org

Já pensaram em contratar uma consultoria ao invés de ouvir opiniões de pessoas que não têm compromisso com o resultado do seu projeto?

Eu e todos os outros vamos dar dicas e idéias mas quem vai assumir o sucesso/fracasso da escolha é você(sua empresa).

Pense a respeito.

Para finalizar, eu não sou tão fã de JSF, mas eu aconselharia a utilização do mesmo pois o mercado pede muito e é a especificação da Oracle.(Esse é uma dica que favorece você, mas não quer dizer que vá favorecer a empresa de modo geral. :slight_smile: )

[quote=ivandasilva]Não dá para fazer uma equipe sair trabalhando com um framework porque o produto final pode até sair, mas sairá como a torre de Piza, por quê ?

Por experiência própria você pode até ter uma equipe boa e que aprenda rápido mas, não dá para você montar uma arquitetura ideal para desenvolver com determinado framework sem conhece-lo. Geralmente na metade do caminho você perceberá que errou no começo, isto acontece mesmo com os melhores, mas o problema é que vocês terão muito tempo gasto com estes problemas e nem todos são reversíveis.

Sobre o SEAM Framework, parece ser mesmo uma mão na roda e bem completo. As JSR-299 e JSR-300 foram baseadas nele e o líder destas JSR’s foi o idealizador do SEAM Framework. Mas me corrijam se eu estiver errado o SEAM usa a plataforma inteira do Java: EJB, JSF, JPA dentre outros, ou seja, para saber SEAM você terá que saber muita coisa de Java, por isso, acho melhor você fazer um processo incremental, começem com um framework para a regra de negócio, por exemplo EJB ou Spring, depois vá para a camada de apresentação com JSF, Flex ou qualquer outro, ou ainda vá para a persistência, trocando o seu JDBC por um Hibernate,JPA ou qualquer outro.[/quote]

Ivan, essa solução de desenvolvimento separado foi proposta por um amigo meu, que nos sugeriu adotar a solução Spring + Hibernate + JSF.

Como eu disse, nada é absoluto né, por isso estamos vendo a opinião de vocês, e desde já agradeço a todos que se prontificaram em responder até agora.