Arquitetura Nova Aplicacao WEB

Pessoal,

Estou responsável pelo desenvolvimento de uma nova aplicação WEB na empresa na qual eu trabalho, portanto gostaria que vocês me dessem sugestões de ferramentas, frameworks e etc…

Estava pensando em utilizar SPRING MVC, HIBERNATE, WEBSHPEARE 8 , MAVEN … Vocês tem alguma outra sugestão???

Primeiro, procure aqui no guj. Essa dúvida aparece a cada 5 dias. [=

Depende do que vc precisa, depende do porte do sistema…

Se for sistema mais simples, que um tomcat resolva, use

  • Maven
  • JPA2
  • Spring
  • Tomcat
  • JSF 2 (primefaces, icefaces)

Se precisar de um AS (Application Server) use:

  • Maven
  • JPA2
  • EJB 3.1
  • JBoss AS
  • JSF 2 (primefaces, icefaces)
  • pode usar JBoss Seam com CDI também

Oi Lucas,

a arquitetura que você está querendo já está práticamente pronta no Grails. Ele é baseado nas tecnologias que você diz: Hibernate/JPA, Spring, Spring MVC, usa o Ivy/Maven por baixo dos panos e tudo mais.

Com a vantagem de já estar tudo completamente integrado, pronto pra usar e de uma forma bem mais fácil de começar a produção de modo imediato.

Olá, Lucas_Cognizant.

Se sua aplicação é de porte pequeno ou médio e você precisa de desenvolvimento rápido, minha sugestão é:

  • VIEW (Tela): JSP, JSTL, JavaScript, jQuery, CSS
  • CONTROLLER: Java
  • MODEL (Dados): Java (padrão DAO)
  • BANCO DE DADOS: MySQL
  • FRAMEWORKS: VRaptor (principal framework), Hibernate (para dados), Spring (para injeção de dependências), JodaTime (manipulação de datas)

Abraço,
Almir.

[quote=almircampos]Olá, Lucas_Cognizant.

Se sua aplicação é de porte pequeno ou médio e você precisa de desenvolvimento rápido, minha sugestão é:

  • VIEW (Tela): JSP, JSTL, JavaScript, jQuery, CSS
  • CONTROLLER: Java
  • MODEL (Dados): Java (padrão DAO)
  • BANCO DE DADOS: MySQL
  • FRAMEWORKS: VRaptor (principal framework), Hibernate (para dados), Spring (para injeção de dependências), JodaTime (manipulação de datas)

Abraço,
Almir.[/quote]

Confesso que não concordo muito com essa história de ‘pequeno porte’.

O que uma aplicação de ‘grande porte’ precisa que esses frameworks que vc citou não atendem?

Vamos lá… vamos voltar um pouco pra faculdade e pensar:

“De quais requisitos o arquiteto precisa para montar uma arquitetura?”

.
.
.
.
.
.

Resposta: dos requisitos não-funcionais. Não existe “arquitetura de prateleira”, não adianta vc chegar no GUJ e jogar uma pergunta dessas assim, sem dar quaisquer detalhes sobre as suas necessidades, e esperar ter uma resposta adequada.

Ainda nao tenho detalhes do projeto e muito menos os requisitos. O que eu posso adiantar é que sera um sistema interno de recebimentos de cargas.

[quote=asaudate]Vamos lá… vamos voltar um pouco pra faculdade e pensar:

“De quais requisitos o arquiteto precisa para montar uma arquitetura?”

.
.
.
.
.
.

Resposta: dos requisitos não-funcionais. Não existe “arquitetura de prateleira”, não adianta vc chegar no GUJ e jogar uma pergunta dessas assim, sem dar quaisquer detalhes sobre as suas necessidades, e esperar ter uma resposta adequada. [/quote]

Eu acho que a maioria fala arquitetura quando o termo mais correto seria design.

E você quer começar a desenvolver sem ter um mínimo de idéia do que se trata? Boa sorte…

Então aconselho você a não tomar nenhuma decisão ainda. Não há como saber o que usar quando não se sabe o que deve fazer.

[quote=raf4ever][quote=asaudate]Vamos lá… vamos voltar um pouco pra faculdade e pensar:

“De quais requisitos o arquiteto precisa para montar uma arquitetura?”

.
.
.
.
.
.

Resposta: dos requisitos não-funcionais. Não existe “arquitetura de prateleira”, não adianta vc chegar no GUJ e jogar uma pergunta dessas assim, sem dar quaisquer detalhes sobre as suas necessidades, e esperar ter uma resposta adequada. [/quote]

Eu acho que a maioria fala arquitetura quando o termo mais correto seria design.[/quote]

Tem toda a razão. Embora eu ache que, nesse caso, realmente não faz muita diferença a nomenclatura. Como eu sempre digo pra pessoas que estão começando a aprender um idioma, por exemplo, o que importa não é falar corretamente, é ser compreendido. :wink:

[quote=raf4ever][quote=almircampos]Olá, Lucas_Cognizant.

Se sua aplicação é de porte pequeno ou médio e você precisa de desenvolvimento rápido, minha sugestão é:

  • VIEW (Tela): JSP, JSTL, JavaScript, jQuery, CSS
  • CONTROLLER: Java
  • MODEL (Dados): Java (padrão DAO)
  • BANCO DE DADOS: MySQL
  • FRAMEWORKS: VRaptor (principal framework), Hibernate (para dados), Spring (para injeção de dependências), JodaTime (manipulação de datas)

Abraço,
Almir.[/quote]

Confesso que não concordo muito com essa história de ‘pequeno porte’.

O que uma aplicação de ‘grande porte’ precisa que esses frameworks que vc citou não atendem?[/quote]

Olá, Rafael.

De fato, a sua questão é pertinente, ao lado das demais que questionam a necessidade de uma melhor especificação de requisitos, etc. Minha intenção é apenas dar um “norte” quanto à solicitação original no tópico recomendando uma arquitetura que eu mesmo utilizo, mas sem a pretensão de ser exclusiva ou exaustiva. Portanto, questões como a que você colocou e as demais deste tópico certamente enriquecem o entendimento geral da questão.

Grato,
Almir.

[quote=almircampos][quote=raf4ever][quote=almircampos]Olá, Lucas_Cognizant.

Se sua aplicação é de porte pequeno ou médio e você precisa de desenvolvimento rápido, minha sugestão é:

  • VIEW (Tela): JSP, JSTL, JavaScript, jQuery, CSS
  • CONTROLLER: Java
  • MODEL (Dados): Java (padrão DAO)
  • BANCO DE DADOS: MySQL
  • FRAMEWORKS: VRaptor (principal framework), Hibernate (para dados), Spring (para injeção de dependências), JodaTime (manipulação de datas)

Abraço,
Almir.[/quote]

Confesso que não concordo muito com essa história de ‘pequeno porte’.

O que uma aplicação de ‘grande porte’ precisa que esses frameworks que vc citou não atendem?[/quote]

Olá, Rafael.

De fato, a sua questão é pertinente, ao lado das demais que questionam a necessidade de uma melhor especificação de requisitos, etc. Minha intenção é apenas dar um “norte” quanto à solicitação original no tópico recomendando uma arquitetura que eu mesmo utilizo, mas sem a pretensão de ser exclusiva ou exaustiva. Portanto, questões como a que você colocou e as demais deste tópico certamente enriquecem o entendimento geral da questão.

Grato,
Almir.

[/quote]

Eu acredito piamente que, quanto mais carga a aplicação tiver, mais “leve” ela deve ser. Por exemplo, os frameworks que vc citou mais pra cima, pra mim são ideais pra fazer uma aplicação de grande acesso, por que eles facilitam a execução em cima de tomcat/jetty e, por serem inicializadas mais rápido, são perfeitas pra rodar em nuvem. Sem contar que elas incitam a adoção de arquiteturas shared-disk ou, se você for mesmo um cara de saco roxo, shared-nothing (menos o MySQL).

[]'s

Da uma olhada no Play! Framework.

[quote=Lucas_Cognizant]Pessoal,

Estou responsável pelo desenvolvimento de uma nova aplicação WEB na empresa na qual eu trabalho, portanto gostaria que vocês me dessem sugestões de ferramentas, frameworks e etc…

Estava pensando em utilizar SPRING MVC, HIBERNATE, WEBSHPEARE 8 , MAVEN … Vocês tem alguma outra sugestão???

[/quote]

WEBSHPEARE 8 sai fora disso :roll:

O que o JBoss AS disponibiliza que o Tomcat/Jetty nao disponibiliza para uma aplicacao web?
Alem disso, o JBoss usa/usava Tomcat/Jetty como servlet container.

Interessante voce recomendar um “component based” framework.

Enfim, quando voce tiver mais informacoes sobre o projeto talvez poderemos te ajudar melhor.
Talvez voce precise usar BPM? Talvez voce precise de ESB’s? Ou quem sabe OSGi?
Ou talvez voce precise de jQuery+Spring+Hibernate? Ou JSF ou Play! ou Spring MVC? Dificil dizer…

Voce esqueceu de mencionar que voce precisa saber/aprender groovy e achar gente que saiba/use.
Alem disso, programar groovy/ruby “java style” nao e’ o ideal - groovy/ruby 'e um paradigma diferente de Java.

Boa sorte! :slight_smile: