2010-06-20 13 views
15

Estoy creando una aplicación web para la intranet de la empresa, porque otras partes de este sistema están escritas en Java, por lo que para fines de integración se eligió Java como interfaz web.¿Cuál es el mejor marco web de Java para mis necesidades?

No son los requisitos:

  • tiene que ser fácil de aprender en el corto período de tiempo
  • tiene que apoyar patrón MVC
  • ninguna configuración XML extendida
  • aplicación consistirá en muchos forman que el usuario llenará, y algunos js para ayudarlo
  • buenos complementos IDE que ayudarán con el desarrollo

Estaba pensando en Wicket/Spring MVC/Stripes

¿Cuáles son sus recomendaciones con respecto a esos requisitos? ¿Qué otros marcos, que probablemente sean mejores para mi aplicación, deberían ser considerados?

Además, ¿pueden comentar esos tres marcos sobre cómo cumplen con mis requisitos?

+0

[JRuby] (http://jruby.org/) para la integración de Java con [Sinatra] (http://www.sinatrarb.com/) o [Rails] (http://rubyonrails.org/), no tiene sentido perder el tiempo con java.s – clyfe

+4

Si tiene otros programadores Java cerca, hable con ellos para saber en qué tienen experiencia. Puede hacer que su aplicación sea lo que recomiendan, simplemente para poder recurrir a su experiencia. Tener un contacto cara a cara es invaluable. –

+0

He hablado con otros desarrolladores de Java en mi empresa. Pero no me gustaría que su recomendación arruine cualquier discusión sobre stackoverflow. – wlk

Respuesta

16

Echa un vistazo Grails; es lo mejor de Rails y Java. Excelente MVC (incluido ORM), DRY y codificación por convención (sin configuración XML), muy similar a Rails pero incluso mejor en algunos aspectos (en mi humilde opinión), además de toda la estabilidad de la plataforma Java y el acceso a todos sus componentes. excelentes bibliotecas.

Utiliza el lenguaje de scripting basado en JVM Groovy, pero la curva de aprendizaje no debería ser demasiado mala para un desarrollador de Java; también puede usar código Java directo si lo necesita.

+1

También hay un amplio soporte de IDE a través de Spring IDE (http://www.springsource.org/springide/release-20); De hecho, Grails es en realidad "solo" una extensión de aplicación Spring MVC si realmente quieres ser pedante. – Esko

+1

¡Advertencia! Realmente me gustan los grails/groovy PERO la depuración puede ser un cerdo, el depurador normal de Java es casi inútil ya que atraviesa todas las clases internas groovy esto es especialmente problemático con los cierres ya que lo que parece ser un simple ".each()" loop en tu programa puede involucrar diez o doce clases groovy. –

+1

@James Anderson: cierto, y esos rastros de pila pueden ser vertiginosos ... – maerics

3

Eche un vistazo a la estructura play y repase el tutorial. Estoy bastante seguro de que volveré a este marco, cuando deba o quiera escribir una aplicación web.

2

Tal vez Spring Roo? Funciona muy bien cuando la aplicación se basa principalmente en formularios e informes.

Como alternativa puedo recomendar Grails, pero puede haber algunas complicaciones al integrarlo con su código java actual.

14

Sobre la base de este requisito:

Tiene que ser fácil de aprender en el corto período de tiempo

No recomendaría marco de resorte ya que tendrá que aprender mucho sobre sus módulos.

Eche un vistazo a Play java framework. La estructura es muy similar a Ruby On Rails, pero está escrita con Java. Scala también es compatible. Uno de los mejores beneficios es la compilación automática. En su desarrollador local, puede actualizar el código, actualizar el navegador y ver sus cambios al instante.

También es único de otros frameworks java tomando un modelo sin estado para una escalabilidad más fácil.

+2

Según el IDE y la configuración del contenedor de servlets local, es posible ver cambios de código inmediatamente con (casi) cualquier marco. – deamon

+0

Estoy impresionado por lo cerca que Rails/Grail han logrado obtener en The Play Framework, a pesar de estar implementado en Java. Sin embargo, una cosa a tener en cuenta es el modelo de implementación, no es trivial (ni recomendable) implementarlo en un contenedor de servlets 'normal' o en un servidor de aplicaciones. Así que eso es algo a tener en cuenta si tiene un requisito específico de tiempo de ejecución. – rlovtang

2

He creado con éxito una pequeña aplicación interna de la empresa. en Clojure usando el marco Compojure.Es un marco muy simple y elegante que debería satisfacer tus necesidades si estás dispuesto a aprender Clojure.

Código de ejemplo de la Compojure Wiki que implementa una calculadora sencilla:

(ns example 
    (:use compojure)) 

(defn html-doc 
    [title & body] 
    (html 
    (doctype :html4) 
    [:html 
     [:head 
     [:title title]] 
     [:body 
     [:div 
    [:h2 
    ;; Pass a map as the first argument to be set as attributes of the element 
    [:a {:href "/"} "Home"]]] 
     body]])) 


(def sum-form 
    (html-doc "Sum" 
    (form-to [:post "/"] 
     (text-field {:size 3} :x) 
     "+" 
     (text-field {:size 3} :y) 
     (submit-button "=")))) 

(defn result 
    [x y] 
    (let [x (Integer/parseInt x) 
     y (Integer/parseInt y)] 
    (html-doc "Result" 
     x " + " y " = " (+ x y)))) 

(defroutes webservice 
    (GET "/" 
    sum-form) 
    (POST "/" 
    (result (params :x) (params :y)))) 

(run-server {:port 8080} 
    "/*" (servlet webservice)) 
+0

p.s. fíjate en el entero/parseInts ... buen ejemplo de la interoperabilidad de Java indolora, ya que estas son llamadas directas a las funciones de Java. – mikera

+0

: -Q Lo siento, no pude resistirme. –

3

puedo recomendar Wicket. Es bastante difícil de aprender, pero luego te encantará. Es el primer framework web con el que realmente me gusta trabajar.

Tenga en cuenta que Wicket no es bueno para soluciones rápidas y sucias. Úselo solo si le gustan las soluciones limpias y elegantes y está listo para invertir + 10% de tiempo para una excelente reutilización del código y legibilidad.

Quiero decir, por ejemplo, no hay <% rápido si (...) {%> ... <%}%> en Wicket.

Bien ... lee un buen tutorial y entenderás mi punto. Aquí está mi humilde lista de recursos: http://ondra.zizka.cz/stranky/programovani/java/web/wicket/index.texy

+1

Sí, pero el requisito 1 era "tiene que ser fácil de aprender", así que ... – skaffman

3

He creado varias aplicaciones web de diferentes tamaños con Wicket.

Wicket tiene un enfoque muy diferente a las cosas en comparación con la mayoría de los otros marcos web. Si tiene experiencia en la creación de aplicaciones Java con Swing, es probable que le parezca familiar la creación de componentes de Wicket. Lo principal que impulsa mi elección entre Wicket y algún otro framework (Struts 2 tiende a ser el otro) es la "statefullness" de la aplicación web. Wicket es genial si las páginas son con estado. Si no, el valor que agrega, IMO, disminuye significativamente. Una de mis partes favoritas en Wicket es la forma en que separa el código del marcado, y cómo un archivo .html puede extender otro. Todavía tengo que estudiar las mejores prácticas para hacer que una aplicación web desarrollada con Wicket sea muy "ajaxy": hasta ahora mis experiencias sobre la integración con frameworks de JavaScript han sido bastante torpes.

Es difícil saber si Wicket es fácil de aprender en un corto período de tiempo sin saber más acerca de su fondo. Tampoco he usado ningún complemento IDE, ni he sentido la necesidad de hacerlo. Los otros artículos en tu lista - ¡mira!

0

jsp y servlet es la tecnología básica, si desea utilizar Spring MVC o struts, debe dominar la tecnología de servlet. puede usar jsp y servlet solo para hacer un patrón MVC, jsp es View, servlet es Controller, otra lógica de negocios es Model. tiene que ser fácil de aprender en un corto período de tiempo, y es útil usar otro marco MVC.

5

Yo usaría Wicket, que viene sin configuración XML. Es limpio y relativamente fácil de aprender. No use Spring MVC si no es un gran admirador de XML. Spring se puede configurar con Java, en teoría. Pero en la práctica terminarás configurándolo con XML detallado. Otro inconveniente es que Spring MVC es más flexible de lo que debe ser, lo que significa que debe aprender más de lo que realmente necesita.

+0

En segundo lugar la descripción de Spring MVC. –

8

Use Play! Marco :). Es un verdadero marco RAD y fácil de aprender.

+4

http://www.playframework.org/ –

2

Pruebe HybridJava.

  • Tiene que ser fácil de aprender en el corto período de tiempo
    • simple como nada más. aproximadamente 15 páginas de documentación.
  • se tiene que apoyar patrón MVC
    • apoya patrón de componentes de MVC, no sólo las páginas. Nada de eso alrededor.
  • ninguna configuración xml extendida
    • Tiene configuración cero. Sin xml, sin anotaciones, sin propiedades.
  • aplicación consistirá en muchos forma que el usuario va a llenar, y algunos js
    • da un mecanismo de reutilización de código, con mucho, superior a la de JSP
  • buenos plugins IDE que ayudarán con desarrollo
    • Los complementos IDE no están listos todavía, pero probablemente ni los necesite.
2

marco juego puede gobernar el mundo Java. Combina lo mejor de django/rails/php con java/scala. La simplicidad es la clave, es tan fácil y potente, tipo seguro, de alto rendimiento, sin estado, tiene un sistema de módulo perfecto, arquitectura mvc con un buen sistema tempalte e internacionalización, soporte inmediato y corrección de fallas, sin necesidad de utilizar servidores de aplicaciones, pistas y dinámicamente compila cambios de código en segundo plano, prueba de unidad de estado de arte e integración jpa, tiene crud, versión de db, spring, guice, mongodb y decenas de módulos, viene con caché, registro, ... e hijo en ...

-1

¡El mejor marco para el desarrollo de Java es JRapid!

Lo probé hace un mes y fue genial y ahora es aún mejor, han mejorado los errores y se está ejecutando sin problemas.

Hay diferentes tipos de cosas que puede hacer; las acciones se pueden usar para todo lo que puedas imaginar en un comportamiento personalizable.

No se necesita mucho tiempo, puedo crear aplicaciones evitando problemas aburridos y concentrarse sólo en las lógicas de negocio

Si se echa un vistazo a la guía de partida se puede obtener una idea clara y empezar a trabajar sin problemas.

Lo recomiendo!

+0

Intente incluir más datos en futuras respuestas. Toda esta respuesta dice que te gusta JRapid, pero no por qué, o si hace lo que el póster original quiere. – scvalex

Cuestiones relacionadas