2010-05-27 10 views
8

Si se va a iniciar un nuevo proyecto Java marca hoy en día con los siguientes requisitos:¿Qué pila usarías para un nuevo proyecto web Java si comenzaste hoy?

  • alta escala (20k + usuarios)

  • que desea utilizar algo que es bastante maduro (no cambiar drásticamente) & no será tecnología muerta en 3 años

  • desea algo muy productivo (no se reinicia el servidor en dev, guarda el código y se compila e implementa automáticamente), la productividad y el tiempo de comercialización son la clave.

  • cierta cantidad de AJAX en la parte delantera

  • ningún lenguaje de script (JRuby, Groovy, PHP, etc.), que tiene que ser Java

  • tiene que apoyar i18n

¿Qué pila usaría? & ¿Por qué? (cuando digo stack, me refiero a todo, sopa a nuts, servidor de aplicaciones, mvc framework, bean framework, ORM framework, javascript framework, etc ...)

Respuesta

3

para una aplicación tradicional de Java, para tus objetivos, I iría con rayas como un marco MVC, ya que es muy fácil de configurar y ejecutar, y funciona bien con la primavera y la hibernación, y tiene un buen soporte para Ajax.

en términos de productividad, los proyectos web dinámicos de eclipse deberían resolver sus problemas de compilación/implementación. Siempre lo he usado con tomcat, pero debería funcionar también con jBoss.

Yo personalmente usaría tomcat, stripes (mvc), hibernate (orm), spring (si es necesario), jQuery (js) y eclipse para el desarrollo.

+0

¿Las rayas son populares? – Adam

10

que se considere el uso de una aplicación Java EE 6 pila: v3

  • GlassFish como servidor de aplicaciones: no pesado, muy productivo durante el desarrollo (y GlassFish 3.1, que se publicará antes de que finalice el año, a tener Administración centralizada/Clustering y High Availability/State Replication)
  • JQuery, JSF 2 (o Wicket) para la presentación
  • CDI, EJB 3.1 (Lite?), JPA 2.0 (Hibernate 3.5+ o EclipseLink)
  • Arquillian(1) con Weld SE y/o GlassFish Embedded para las pruebas

(1) Ver también:

+0

er ... ¿qué es exactamente Arquillian? Su página web no es exactamente clara al respecto, y el enlace de información general me lleva de vuelta a la página principal de JBoss. – Powerlord

+0

@ R.Bemrose: es un arnés de prueba para pruebas de integración. Actualicé el enlace al sitio del proyecto (y agregué más enlaces). –

3
  • Tapiz 5 & jQuery (Tapiz 5 ha sido diseñado para ser a prueba de futuro, no requiere reiniciar el servidor y es súper rápido para desarrollar con - componentes se lean- También escala también)
  • primavera para la configuración de frijol (Tapiz soportes basados ​​en configuración de frijol de primavera anotación)
  • hecha a mano mano JDBC para el modelo relacional (porque no me gusta la adición de otra capa de código para ORM, y de la mano hecha a mano puede ser mejor sintonizado)
  • Lucene para los índices o datos que no lo hace necesita ser consultado de manera relacional
  • Tomcat (o Jetty si incrustado) - ambos son servidores fiables y bien probados
+0

He oído que EJB3/JPA2 no es tan malo en el frente de ORM.Por otra parte, EJB3/JPA2 son interfaces, no implementaciones. – Powerlord

+1

Casi la misma respuesta, aunque definitivamente usaría Querydsl (http://source.mysema.com/display/querydsl/Querydsl) para la construcción de consultas. – ponzao

0

Scala y primavera

1

me inclinaría por:

  • base de datos Oracle 11g.
  • JPA 2.0 ORM con EclipseLink.
  • Glassfish v3 (al menos hasta que Oracle WebLogic sea compatible con Java EE 6), proporcionando colas de mensajes, grupos de conexiones de bases de datos o los recursos de JCA que pueda necesitar.

No iría por JSF ... JSF 2.0 es mucho mejor que JSF 1.0, pero todavía huele mal en algunas áreas. Definitivamente llegarás a un muro en escenarios que "van en contra de la forma JSF" (o mejor dicho no fueron atendidos adecuadamente en JSF).

Iría por Spring 3.0 framework y Spring MVC con Spring Web Flow si tiene alguna navegación compleja sobre la que desea tener control. Esto también le dará la opción de tener el elemento web en un servidor por separado (como Tomcat) si lo desea, e invocar los EJB alojados en Glassfish a través de IIOP, por lo que se ampliará.

Si desea tener control total sobre el diseño de sus páginas, (tal vez tiene la intención de contratar a un diseñador web para mantener la apariencia), optaría por un motor de plantillas como Velocity, que se integra muy bien con Spring MVC es amigable con el diseñador con la mayoría de las herramientas como Dreamweaver.

Por último, JQuery utilizar algunos widgets Javascript ya preparados como controles de calendario, ventanas emergentes, mensajes de usuario y transiciones.

+5

Oracle? Ahí fue el presupuesto ... –

+1

¿Podría profundizar en el comentario "JSF 2.0 aún apesta"? –

+0

Bueno, no se especificaron limitaciones presupuestarias. La pregunta estaba más orientada a la confiabilidad y la agilidad. Una edición estándar de Oracle debería hacer el truco sin exagerar con el presupuesto y la Real Application Clustering sale de la caja. De lo contrario, algo como Postgresql o Mysql serviría, pero sus soluciones de agrupamiento no son tan sólidas, y en realidad, si desea contar con el soporte adecuado, aún existen costos. Aunque todas son buenas bases de datos. – jbx

Cuestiones relacionadas