Pergunta

Em breve vou ter que começar um projeto web para uma empresa, e agora precisa escolher uma tecnologia para construir o aplicativo. Estou pensando em usar Java, portanto, eu gostaria de encontrar uma estrutura que vai me ajudar a construir o aplicativo (que eu estou acostumado a framework PHP como CakePHP e CodeIgniter).

O que eu não entendo é que parece existir uma grande quantidade de estrutura e tecnologias que não têm o mesmo objetivo. quadro de acção, framework de componentes ... o que posso fazer com que eu não posso fazer com outro? Parece um aplicativo web java deve ser desenvolvido através da mistura de um monte de diferentes tecnologias, daí eu estou um pouco perdido ... Eu tive uma olhada em diferentes java frameworks, tais como JSF, listras, Struts2, Tapestry, Wicket e Primavera. Sobre o mais tarde, eu não acalmar ver quais são as diferentes partes deste quadro, o que pode fazer para mim e o que não pode. O que posso tirar de Primavera e que eu não preciso ...

Assim: o que eu preciso para construir uma aplicação web java?

Eu já usei JSF para uma aplicação básica CRUD, mas eu estou tentando encontrar algo que pode se adapte melhor a minha necessidade. O aplicativo que vamos ter de construir vai ser tanto uma plataforma de comunidade, bem como um site comercial, com datas sensatas para proteger:)

Sobre o ORM, eu acho que eu só vou com Hibernate ... Também eu ouvi sobre Maven ou Ant, de que forma eles podem me ajudar?

Qualquer aconselhamento / orientação seria muito apreciada :-) Agradecemos antecipadamente.

Editar: o que minhas necessidades são: um quadro java que é:

  • bem documentado / fácil de obter ajuda / o mais fácil possível ...
  • o mais java, melhor
  • Ajax amigável / Facility para construir interface agradável ...
  • Internacionalização
  • Ainda sendo um estudante, Marketability de habilidades podem importa ...

O aplicativo para ser de construção é tanto um

  • Site da comunidade: web 2.0, CRUD
  • E-commerce site

especificações completas ainda não estão acabados.

Foi útil?

Solução

Esta é uma pergunta muito difícil de responder, depois de ter estado em sua situação recentemente vou tentar dar algumas dicas. Basicamente, com Java há uma tonelada de escolha para os quadros e ninguém pode realmente dizer-lhe qual é o melhor ajuste para você, o que podemos fazer é dar-lhe uma avaria de algumas das tecnologias.

O seguinte é o que eu tenho se deparar em busca das mesmas respostas que você quer.

Java tem um monte de tecnologias que tentam fornecer uma solução full-stack. Estas tecnologias podem ser divididos em outras tecnologias mas funcionam bem quando você usá-los juntos.

Basicamente, existem 3 níveis para aplicações web, a apresentação, negócios e camada de dados. A camada de apresentação é o front-end, o que o usuário vê. Geralmente você pode misturar e Match Technologies para estas três camadas. Você poderia, por exemplo, o uso de listras front-end com o framework Spring para o COI e Hibernate como seu ORM.

Há muitos grandes tecnologias que podem ser utilizadas para a camada de apresentação, incluindo Primavera-MVC, Struts, listras, Wicket, JSF / SEAM e tapeçaria, entre outros. A maioria destes uso um JSP para a vista utilizando JSTL, com exceção de postigo que separa realmente cheio o html da lógica usando Java "componentes" (POJOs). Há vantagens e desvantagens para ambas as abordagens. A vantagem da abordagem postigo é que você tem typechecking estática e uma separação completa do html para que você possa entregá-la para o seu designer.

Para a camada de negócios geralmente as pessoas usam algum tipo de inversão do quadro de controle (COI) para injeção de dependência (DI). Os quadros populares para IOC são Primavera e Seam, estes têm associado a tecnologias como Spring-segurança e, geralmente, são suportados por outras tecnologias. Google Guice parece ser popular para um quadro DI em linha reta.

Finalmente, para a camada de dados a maioria das pessoas tendem a usar Hibernate ou JPA. Há outros, mas eu não tenho nenhuma experiência com eles e não pode oferecer mais informações.

Tapestry é outra estrutura que tentativas de ser uma pilha completa do que eu entendo e leva um postigo como (ou eu acho Wicket leva uma tapeçaria-like) abordagem. Grails é mais um framework full-stack usando Groovy e construído em cima do Spring e Hibernate. Se você gosta de Rails, Grails é muito bom.

A maioria dessas tecnologias tem um monte de informações disponíveis e listas de discussão / chatrooms IRC muito ativos. O que você precisa fazer é dar uma olhada neles e então decidir qual abordagem é a certa para você. Ninguém aqui é capaz de dizer o que você vai gostar.

Se você quiser uma recomendação, eu gostaria de um dia usar uma pilha Wicket / Guice / Hibernate.

Outras dicas

O meu favorito é definitivamente Primavera. O novo Spring MVC 2.5 é fácil e rápido de configurar, muitas anotações para ajudá-lo conectar seus controladores declarativa que poupa-lhe um monte de digitação. Ele também se integra com o contêiner do Spring que é definitivamente a minha luz-peso do recipiente favorito substituição J2EE. Eu costumo combinar SpringMVC com simples JSP, mas há um monte de outros técnicos vista para escolher. Para persistência Eu costumo usar Hibernate. Pode valer a pena dar uma olhada Spring Roo que é tipo de como Grails sem Groovy. Spring Security oferece uma agradável e fácil forma declarativa de fazer segurança e integra em um monte de tecnologias de autenticação.

Maven e Ant são ferramentas de compilação, enquanto maven também lida com dependências para você. Você "apenas" configurar descritores que descrevem as bibliotecas que você quer e os requisitos de versão, e Maven baixar todas as bibliotecas e suas dependências para você. Obriga-nos a seguir um determinado layout do projeto, no entanto. Para formiga há hera que faz dependências.

Eu sugiro que você dê uma olhada no Grails . Grails é uma "codificação por convenção" aplicação web framework construir em cima de uma pilha de frameworks Java comprovadas (Spring, Hibernate, ...) e usando o linguagem Groovy ..

A beleza do Grails é que você precisa pouco conhecimento de Spring, Hibernate, etc. para começar. Mas depois você ainda tem acesso a todo o poder destes quadros, caso seja necessário.

Definitivamente usar o Spring para o back-end; há uma excelente comunidade em seu fórum de suporte gratuito (você também pode pagar por um apoio mais formal).

No que diz respeito a sua decisão de usar o Hibernate, você pode querer código contra APP, a fim de dissociar seu aplicativo de Hibernate (que é uma das várias implementações JPA).

Se você quiser um front-end Ajax, vale a pena dar uma olhada no href="http://www.zkoss.org/" rel="nofollow noreferrer"> ZK framework ; it'svery fácil de usar sem ter que aprender JavaScript, e evita ter de bibliotecas uso de encanamento como DWR.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top