Domanda

Presto dovrò iniziare un progetto web per una società, e ora hanno bisogno di scegliere una tecnologia per costruire l'applicazione. Sto pensando di usare Java, quindi mi piacerebbe trovare un quadro che mi aiuterà a costruire l'applicazione (io sono abituato a framework PHP come CakePHP e CodeIgniter).

Quello che non capisco è che sembra esistere un sacco di framework e tecnologie che non hanno lo stesso obiettivo. quadro d'azione, framework di componenti ... cosa posso fare con uno che non posso fare con un altro? Sembra una web app Java dovrebbe essere sviluppata mescolando un sacco di diverse tecnologie, e quindi sono un po 'perso ... Ho avuto uno sguardo a differenti framework Java, come il JSF, Stripes, Struts2, Arazzo, Wicket e Spring. A proposito del dopo, non mi acquieto vedere quali sono le diverse parti di questo quadro, che cosa può fare per me e ciò che non può. Quello che posso prendere dalla primavera e che cosa non ho bisogno ...

Quindi: che cosa ho bisogno per costruire un'applicazione web Java?

Ho già usato JSF per un CRUD app di base, ma sto cercando di trovare qualcosa che possa meglio si adatta il mio bisogno. L'applicazione dovremo costruire sarà sia una piattaforma di community, nonché un sito commerciale, con dati sensibili per proteggere:)

Circa l'ORM, immagino Andrò con Hibernate ... Inoltre Ho sentito parlare di Maven o Ant, in che modo possono mi aiutano?

Qualche consiglio / orientamento sarebbe molto apprezzato :-) Grazie in anticipo.

Modifica: quali sono le mie esigenze sono: un framework Java che è:

  • ben documentato / facile per ottenere aiuto / il più semplice possibile ...
  • più java, meglio
  • Ajax amichevole / Strutture per costruire bella UI ...
  • Internazionalizzazione
  • ancora in fase di uno studente, la commerciabilità delle competenze questioni potrebbe ...

L'applicazione per essere build è sia un

  • sito comunitario: web 2.0, CRUD
  • sito
  • E-commerce

Tutte le specifiche non sono ancora finiti.

È stato utile?

Soluzione

Questa è una domanda molto difficile rispondere, essendo stato nella vostra situazione poco cercherò di dare una certa comprensione. In sostanza, con Java c'è un sacco di scelta per i quadri e nessuno può davvero dire che uno è più adatto per voi, quello che possiamo fare è dare una ripartizione di alcune delle tecnologie.

Quello che segue è quello che ho incontrato alla ricerca delle stesse risposte desiderate.

Java ha un mucchio di tecnologie che cercano di fornire una soluzione full-stack. Queste tecnologie possono essere suddivisi in altre tecnologie, ma funzionano bene quando li usate insieme.

In sostanza, ci sono 3 livelli di applicazioni web, la presentazione, le imprese e livello dati. Il livello di presentazione è il front-end, ciò che l'utente vede. È generalmente possibile combinare tecnologie partita per questi tre strati. Si potrebbe ad esempio utilizzare uno strisce front-end con il framework Spring per CIO e Hibernate come ORM.

ci sono molti grandi tecnologie che è possibile utilizzare per il livello di presentazione, compresa la primavera-MVC, Struts, Stripes, Wicket, JSF / SEAM e Tapestry tra i pochi. La maggior parte di questi utilizzano un JSP per la visualizzazione utilizzando JSTL, con l'eccezione di wicket che in realtà separa il pieno html dalla logica utilizzando "componenti" Java (POJO). Ci sono vantaggi e svantaggi di entrambi gli approcci. Il vantaggio dell'approccio wicket è che avete typechecking statica e una separazione completa del codice HTML in modo da poter consegnerà a vostro progettista.

Per lo strato di business in generale le persone usano una sorta di Inversion of Control quadro (IOC) per Dependency Injection (DI). I quadri popolari per CIO sono la primavera e Seam, questi sono associati tecnologie come molla di sicurezza e in generale sono supportati dalle altre tecnologie. Google Guice sembra essere popolare per un quadro DI dritto.

Infine, per il livello di dati la maggior parte delle persone tendono ad usare Hibernate o JPA. Ce ne sono altri, ma non ho alcuna esperienza con loro e non in grado di offrire più informazioni.

Tapestry è un altro quadro che tenta di essere uno stack completo da quanto ho capito e prende un wicket come (o immagino Wicket prende un arazzo-like) approccio. Grails è un altro framework completo usando Groovy e costruito sulla cima di primavera e Hibernate. Se ti piace Rails, Grails è piuttosto buona.

La maggior parte di queste tecnologie hanno un sacco di informazioni disponibili e mailing list / chat IRC molto attivi. Quello che dovete fare è dare un'occhiata a loro e poi decidere quale approccio è quello giusto per voi. Nessuno qui è in grado di dirvi ciò che vi piace.

Se si desidera una raccomandazione, vorrei un giorno utilizzare un Wicket / Guice / Hibernate stack.

Altri suggerimenti

Il mio preferito è sicuramente primavera. La nuova Spring MVC 2.5 è facile e veloce da installare, un sacco di annotazioni per aiutarti a cablare i controller in modo dichiarativo, che consente di risparmiare un sacco di battitura. Si integra inoltre con il contenitore di primavera, che è sicuramente il mio contenitore sostituzione J2EE preferito leggero. Io di solito combinare SpringMVC con una semplice JSP, ma ci sono un sacco di altri vista tecnici tra cui scegliere. Per la persistenza io di solito uso Hibernate. Potrebbe valere la pena di dare un'occhiata a Primavera ROO che è un po 'come Grails senza Groovy. Primavera di sicurezza offre un modo piacevole e facile dichiarativa di fare sicurezza e si integra in un insieme di tecnologie di autenticazione.

Maven e formica sono entrambi costruiscono strumenti mentre Maven gestisce anche le dipendenze per voi. È "solo" imposta descrittori che descrivono le librerie che si desidera e ai requisiti di versione e Maven scaricherà tutte le librerie e le loro dipendenze per voi. Ti costringe a seguire un certo layout del progetto, però. Per formica c'è edera che fa le dipendenze.

vi consiglio di dare un'occhiata al Grails . Grails è un framework per applicazioni web "codifica per convenzione" costruire su una pila di provata framework Java (Spring, Hibernate, ...) e utilizzando il lingua Groovy ..

La bellezza di Grails è che avete bisogno di poca conoscenza di Spring, Hibernate, ecc per iniziare. Ma poi è sempre possibile accedere a tutta la potenza di questi quadri dovrebbe essere necessario.

sicuramente utilizzare Primavera per il back-end; c'è una comunità eccellente sulla loro libera forum di supporto (si può anche pagare per il supporto più formale).

Per quanto riguarda la vostra decisione di utilizzare Hibernate, si potrebbe desiderare di codice contro APP al fine di slegare la vostra applicazione da Hibernate (che è una delle diverse implementazioni JPA).

Se si desidera un front-end Ajax, vale la pena dare uno sguardo al href="http://www.zkoss.org/" rel="nofollow noreferrer"> ZK quadro

Il consiglio di altri per l'uso La primavera è un'ottima idea. Troverete che si sarà effettivamente utilizzare un certo numero di diversi quadri insieme perché ogni quadro risolve un problema leggermente diverso.

Vorrei suggerire che investire un po 'di tempo con ogni quadro o la tecnologia prima di saltare, ma alla fine si vuole ottenere loro di lavorare insieme. Si consiglia una configurazione di Struts + molla + Hibernate per esempio. li Configurazione potrebbe essere un mal di testa.

Quindi suggerisco di usare AppFuse che aiuta generando la domanda di base con funzionalità di base. Il suo un enorme risparmio di tempo. Avrete sicuramente bisogno di capire i diversi contesti che sono configurati per voi quindi non è una soluzione magica.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top