Pregunta

Me estoy debatiendo si se debe utilizar Seam, Wicket, GWT JSF o como base de mi capa de presentación en un proyecto Java.

Entorné selección de marcos web Java a este subconjunto basado en consideraciones relativas al mercado de trabajo, la novedad de la tecnología y las recomendaciones de otros S. O. usuarios.

¿Qué factores debo tener en cuenta al decidir entre estos?

¿Fue útil?

Solución

El único de los que yo he utilizado es JSF, por lo que no será capaz de dar su opinión sobre los demás, pero aquí está mi opinión sobre JSF. En mi experiencia, el momento en que convertimos a partir de JSF en JSP a JSF en facelets, la vida tiene mucho más fácil, así que voy a centrarse en torno facelets. Además, parece que la costura y JSF no son mutuamente excluyentes.

Pros:

  • Creación de componentes facelets XHTML es sencilla, lo que promueve la reutilización.
  • capacidades de plantillas decente utilizando una función de etiquetas como ui: insert, ui: include, y ui: decorar
  • El simple acceso a los granos de primavera a través caras-config
  • XHTML basada en lo que los desarrolladores web no están familiarizados con Java todavía pueden ser eficaces
  • Buena librería de widgets disponibles en Tomahawk / Trinidad

Contras:

  • Publicar demanda solamente. Esto puede hacer difícil marcadores.
  • No como una función de ajax-y como GWT, pero esto puede ser fijo si se usa con costura

Estoy de ninguna manera un experto en JSF / Facelets, así que estoy seguro que hay otros que he perdido. Esperemos que alguien más se estudiarán más.

Actualización para JSF 2.0:

Otros consejos

He usado GWT desde la versión 1.4 y JSF desde la especificación 2.0 salió.

GWT es un marco del lado del cliente, genera JavaScript desde Java. Su arquitectura sería un cliente-servidor pura, lo que significa:

  • Mejor utilizar los servicios de granularidad gruesa
  • Todos los objetos que se desplazan al lado del cliente deben ser plenamente serializable (que significa que no hay carga perezosa, o patrón OpenSessionInView)
  • Desde GWT 2.0 se puede diseñar su interfaz gráfica de usuario utilizando XHTML, que es mucho más fácil en cuanto a estilo y estructuración HTML
  • GWT tiende a favorecer la buena arquitectura, si lo ensucia será mal refactorizar
  • Perfect Historia (botón atrás del navegador, las direcciones URL bookmarkable) de apoyo es duro , es probable que tenga a rodar su propia, aunque es fácil de piratear algo a la derecha en la delantera

JSF es un framework basado en componentes, con un diseño de vista y uno (código subyacente si se quiere):

  • Es más fácil hacer algún tipo de aplicaciones web (con estado, como carrito de compras)
  • JSF + Seam han suport para conversaciones (piensa páginas asistente que mantienen el estado a través de varias páginas)
  • puede OpenSessionInView aplicar, dependiendo de su pila. Probablemente no es recomendable si se utiliza para el servicio EJB / capa de negocio
  • JSF2 tiene soporte para AJAX, y con un conjunto de componentes como RichFaces se puede construir buenas aplicaciones web
    • Pero si quieres comportamiento Javascript exquisita, usted tiene que escribir algo de JavaScript
  • JSF seguimiento del estado actual en la interfaz de usuario del cliente o del lado del servidor. Este es un compromiso entre el tráfico de red o de memoria del servidor.

Reanudar:

  • GWT es más adecuada para la web aplicaciones (Gmail pensar) que requieren el máximo rendimiento del lado del cliente. Es fácil escribir componentes personalizados (se escribe en Java) y desde el lado del servidor es sólo una capa de servicio que puede ser totalmente sin estado en el lado del servidor.
  • JSF es más adecuada para aplicaciones CRUD sobre todo que se adaptan mejor para la materia orientada a componentes: creo un sistema de reservas de hotel / vuelo, una tienda en línea con un carrito de la compra, etc.

Gracias chicos por portillo permanecer sobrio y mantener durante esta discusión. Soy un usuario de ventanilla y lo amo. Mis principales razones son:

  1. Es un marco de componentes. Me encanta trabajar con componentes en lugar de páginas completas.
  2. Puedo dejar que los diseñadores trabajan en las plantillas y las páginas, ya que trabajo en las partes de Java

  3. No hay nada nuevo que aprender. Su "Just Java y sólo HTML"

  4. Me gusta su mecanismo de repliegue ajax. Donde no hay soporte javascript en un navegador especialmente en dispositivos móviles, cae de nuevo a HTML plano y todo funciona.
  5. Su falta de configuración XML es un plus
  6. Es compatible con todo lo que quiero en una aplicación web. por ejemplo la validación, la internacionalización, apoyo para la espalda y el botón de direcciones URL de descanso entre otros

Mi experiencia previa es GWT y JSF 1.0

Seam es un framework de aplicaciones, no es realmente una capa de presentación. Fue desarrollado originalmente para hacer JSF menos doloroso, pero se ha convertido en un marco de inyección de dependencias propósito más general.

Creo que se puede utilizar costura con JSF, Wicket y GWT. apoyo JSF es primario y excelente; No estoy seguro de lo bien que los otros dos son compatibles.

Dado que el foco de su criterio parece ser la comercialización de sus habilidades, sugeriría probar la costura y JSF Facelets vía. JSF es un estándar bien aceptado y es realmente agradable de usar si está utilizando Facelets. Puede tener una funcionalidad AJAX mancha a través de RichFaces y Ajax4jsf. Costura está siendo más o menos estandarizada a través de la JCP.

Mi experiencia es, en orden cronológico:

servlets primas - (! Sí, mucho de trabajo duro, pero el día era temprano y estábamos castores impacientes)

JSP - pensé que era el Neez Beez en el momento en que salió (si sólo sabíamos;))

Echo - marco impresionante, pero no para las páginas que deben ser los motores de búsqueda (igual problema con GWT)

Wicket - marco impresionante - los desarrolladores a entender plenamente el concepto de OO (a diferencia de JSP y muchos otros) y se han aplicado todas las sutilezas OO habituales a este marco. Si usted aprecia 'reutilización', si te gusta la encapsulación, si te gusta la separación de intereses y si te gusta para vincular a su modelo para el código de interfaz de usuario sin tener que preocuparse acerca de clasificación de objetos y otra tanta fealdad, entonces este es el marco para usted!

En un escenario de largo plazo me gustaría recomendar el uso de tecnologías respaldadas por una especificación del Sol. Esto ha demostrado hasta el momento para dar múltiples implementaciones resultantes en la elección (implementaciones con frecuencia también abierto fuente), además de comportamiento tiende a ser muy bien definido.

Esto le ayudará en un escenario de mantenimiento, que - con suerte - su código va a terminar demasiado en el tiempo. código bien escrito vive para siempre:)

En este escenario particular que sugeriría JSF. Solo he probado la aplicación Apache de 1,1, pero es herido a estar en la cima de la JSP. Estamos a revisar pronto - espero que mirar en tener JSF en facelets

.

He usado Wicket y GWT muy fuertemente. En realidad nunca aprendido a querer peatonal incorporada.

Mi ego escribió en su blog sobre él http://salk31.blogspot.com/ 2009/07 / portillo-ajax.html

En cuanto a UiBinder GWT 2.0 hoy me recordó lo molesto que estaba en peatonal incorporada a tener que coincidir con el árbol de componentes XML con el creado en Java. El giro GWT en esto se ve mucho mejor para mí.

No he utilizado peatonal incorporada durante más de un año, así que tal vez se han fijado mucho de esto pero dado navegador moderno y el apoyo JS que no pueden ver el punto de hacer todo esto en el servidor (lo sé, lo sé de datos localidad).

Si se tiene en cuenta únicamente el mercado de trabajo, que debe elegir JSF. Pero, me creer que el futuro de RIA pertenece a GWT GWT y como tecnologías del lado del cliente.

Creo que el alza más evidente de GWT, es mejor escalable que las tecnologías de capa de presentación del lado del servidor, tales como JSF, portillo. Porque, el servidor no necesita almacenar el estado del cliente y la energía de la CPU cliente también se usan también .. Es una gran ventaja, ya no tienes que serializar estado cliente entre los equipos de servidor a achive sistema tolerante a fallos.

Sé que es un poco tarde pero ya es mucho en comparación Framewrok, especiamente éste, cosa que ocurrió durinf Devox 2010 conf:

http://www.devoxx.com/display/Devoxx2K10/ Al comparar + JVM + web + marcos

Esto le ayudará a elegir:)

Empecé con JSF (1.1 y 1.2) y fue tan doloroso que me decidí a cambiar en los próximos proyectos. Investigué un poco y decidí probar Wicket, y era tan un placer. También he intentado JSF 2, pero sigue siendo el mismo.

Ambos son marcos de componentes, pero las cosas son fáciles con Wicket mientras que con JSF son un completo desastre.

Wicket sobre JSF:

  • En Wicket HTML son HTML. JSF tiene sus propias etiquetas de marcado. El h: dataTable (por tablas) no tiene sentido. Créeme, Sun ingenieros tuvieron que ser bebido cuando lo diseñó.
  • En Wicket cosas como la seguridad,
  • Con JSF la barra de navegación muestra la URL anterior. Realmente extraño.
  • JSF me parece muy pesado, y con las bibliotecas como Rich o Primer aún más.
  • A veces, parece imposible saber lo que está sucediendo. Siempre terminas gritando a su equipo, ya que no sabe por qué está haciendo JSF.

JSF sobre Wicket:

  • En Wicket vas a escribir más de Java (la unión con el HTML). Al menos, su IDE proporcionará apoyo refactorización y validación.
  • gestión
  • Recursos en Wicket es un poco complicado.
  • Hay mucha más documentación y soporte para JSF

Un defecto común es que son tamaño de la sesión es un problema (porque los componentes gráficos se almacenan allí).

Con todo, si usted tiene que decidir sólo entre Wicket y JSF no dudar para mí, Wicket .

JSF está en desuso (JSF no es ni siquiera aparece como un marco para comparar cuando se comparan evangelistas o hablan de marcos web en 2010).

aplicaciones a gran escala Ahora nido completo se crean utilizando GWT, YUI, jQuery, etc.

Leer algunos artículos más de Google y anteriormente será evidente.

(todos los trabajos en JSF son apoyar las aplicaciones heredadas).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top