Foros del Web » Programación para mayores de 30 ;) » Java »

Struts y JSF

Estas en el tema de Struts y JSF en el foro de Java en Foros del Web. Hola amigos. Ultimamente he estado leyendo sobre algunos web frameworks como Hibernate, Struts y JavaServer Faces (JSF). Me ha surgido la duda, Struts es comparable ...
  #1 (permalink)  
Antiguo 06/01/2009, 15:05
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 10 meses
Puntos: 1
Struts y JSF

Hola amigos.

Ultimamente he estado leyendo sobre algunos web frameworks como Hibernate, Struts y JavaServer Faces (JSF).

Me ha surgido la duda, Struts es comparable a JSF y viceversa?
Cuál es la diferencia entre ellos?
Ventajas y desventajas de uno respecto al otro?

Gracias por su tiempo.

Saludos...
  #2 (permalink)  
Antiguo 06/01/2009, 15:52
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Struts y JSF

Repasemos la cosa de una forma un poco histórica.

Al principio la gente hacía aplicaciones web en Java como podía. Entonces surgió Struts. Struts es un framework que aplica un patrón parecido al MVC (Modelo-Vista-Controlador) a las aplicaciones web, permitiendo separar la presentación, de la lógica de la aplicación y del modelo de la misma.

Lo que Struts proporciona es más o menos un Controlador y una serie de librerías para hacer más fácilmente la Vista.

Struts tiene bastante éxito y es bastante aceptado en las empresas para hacer desarrollos más o menos rápidos y más o menos ordenados.

Pero pronto surgen algunas limitaciones (como suele ocurrir siempre) y surgen otros frameworks y evoluciones y demás. Ninguno es estándar aunque se difundan bastante. Así que un día los "señores de Java" deciden que hay que establecer una especificación que sea estándar para hacer aplicaciones web ordenadamente. Se inventan JSF.

Ahora, JSF no es igual que Struts, en absoluto. Lo que hacen es tomar las ideas de los frameowrks que hay por ahí y decidir cómo se deben hacer aplicaciones web. Y deciden que la forma de hacer aplicaciones web no es como las venía haciendo Struts (orientado a peticiones) sino orientándolas a componentes.

De modo que JSF se basa en unas ideas algo más "sofisticadas" que Struts. Lo cual no quiere decir que sea mejor (ni peor); la cosa va un poco a gustos. Pero JSF con lo que cuenta es con que sí es un estándar, es una especificación incluida dentro de la plataforma JEE para la realización de aplicaciones web.



De modo que... "Struts es comparable a JSF y viceversa?"

Depende. ¿Qué quieres decir con comparable? Uno (Struts) es un framework. El otro (JSF) es una especificación. Uno (Struts) está orientado a peticiones (su mecanismo básico es la peticion). El otro (JSF) está orientado a componentes (lo que manejas es un componente como una entidad básica que existe en ambos lados de la petición). Uno (Struts) es muy utilizado, más establecido. El otro (JSF) es más nuevo pero es un estándar oficial.

Eso sí, ambos son herramientas para desarrollar aplicaciones web en Java de una forma ordenada.

Así que... ¿qué entiendes por comparable?

"Cuál es la diferencia entre ellos?"

Más o menos ya te lo he contado, ¿no?

"Ventajas y desventajas de uno respecto al otro?"

Cada uno tendrá su opinión y es algo difícil hablar de ventajas o desventajas de forma objetiva, ya que mucho depende del tipo de proyecto que estés realizando, de los conocimientos que tengas, del gusto personal de cada uno, etc.

En general, se suele decir que Struts es un tanto básico y que acabas teniendo que hacer algunas trampas para moldearlo a tu gusto en ocasiones. De JSF se suele decir que la curva de aprendizaje es más alta y que te ves algo limitado a lo que te ofrezcan las librerías de componentes, porque desarrollar tus propios componentes es más costoso.
  #3 (permalink)  
Antiguo 06/01/2009, 18:46
Avatar de TresPuntoDos  
Fecha de Ingreso: septiembre-2008
Ubicación: Madrid, España
Mensajes: 242
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: Struts y JSF

Venkman, decir que Struts es basico... Struts si sabes usar todo su potencial (Interceptors, ActionMappers, Results...) es muy complejo y aporta todo lo que necesitas sin tener que hacer trampas, bueno, si a crear tus propias clases le llamas trampas, entonces si
__________________
Tres punto Dos - Mi Blog sobre J2EE, Java, Struts y Diseño Web
Proyecto BloJ - Crea tu blog Java
  #4 (permalink)  
Antiguo 07/01/2009, 10:33
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 10 meses
Puntos: 1
Re: Struts y JSF

Hola.
Muchas gracias por responder.

Cita:
Uno (Struts) es un framework. El otro (JSF) es una especificación.
Solo para que me aclares un poco los conceptos, pero sabes que cuando revisas la wikipedia tanto en español
como en inglés, allí te dicen que JavaServer Faces es un framework, ¿se puede decir que es un framework o como
tú dices realmente es solo una especificación?


Cita:
Uno (Struts) está orientado a peticiones (su mecanismo básico es la peticion). El otro (JSF) está orientado a componentes (lo que manejas es un componente como una entidad básica que existe en ambos lados de la petición).
Cuando dices que Struts está orientado a peticiones qué quiere decir eso?


Saludos y gracias nuevamente a ambos por responder..
  #5 (permalink)  
Antiguo 08/01/2009, 11:26
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 10 meses
Puntos: 1
Re: Struts y JSF

Respondiendo el post de venkman, creo que cuando digo comparable me refiero al hecho de que uno puede ser una alternativa al otro, es decir, o usas Struts o usas JSF, en ese sentido se puede decir que son comparables, creo, cosa que por ejemplo no puedo hacer con Hibernate, es decir no puedo decir que JSF es una alternativa a Hibernate ya que no son la misma "cosa".

Bueno espero sus opiniones..
  #6 (permalink)  
Antiguo 08/01/2009, 14:55
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Re: Struts y JSF

Cita:
Iniciado por Vanessita Ver Mensaje
Solo para que me aclares un poco los conceptos, pero sabes que cuando revisas la wikipedia tanto en español
como en inglés, allí te dicen que JavaServer Faces es un framework, ¿se puede decir que es un framework o como tú dices realmente es solo una especificación?
Si somos precisos, JSF es una especificación. Es la especificación de un framework.
Lo que ocurre es que normalmente no suele ser muy relevante pararse a pensar en que es una especificación. Lo que vamos a usar en la vida real es la implementación de esa especificación, es decir, el framework en sí.

Si he hecho la distinción no ha sido por decir que JSF no sea un framework, sino por señalar que va un poco más allá. Es una especificación estándar. Forma parte de JEE.
En comparación Struts no forma parte de ninguna especificación oficial de JEE, no es un estándar oficial.




Cita:
Iniciado por Vanessita Ver Mensaje
Cuando dices que Struts está orientado a peticiones qué quiere decir eso?
Struts tiene una arquitectura que se basa en el mecanismo básico de peticiones de HTTP. Es decir, edfine su arquitectura sobre ese mecanismo directamente. La unidad que manejamos en Struts es la petición: Una petición desencadena una acción (Action) en el servidor, opera con lo que tenga que operar y devuelve una vista (View) al navegador. La vista es una vista completa y se genera para esa petición.

En contraposición, JSF está orientado a componentes. Es decir, la unidad básica de la arquitectura es el componente. Construye sobre el protocolo HTTP una serie de ayudas para mantener la información de los componentes en el servidor y en el cliente y en lugar de construir toda la vista para una acción dada, lo que hace es que reconstruye el estado de la vista a partir del evento que se ha generado en el componente. No se reconstruye necesariamente toda la vista sino que la unidad básica es el componente.



En cuanto a lo de ser comparables... Bien, vale, entonces en ese snetido, y como ya dije, sí, pueden considerarse comparables. Me cito a mi mismo: "ambos son herramientas para desarrollar aplicaciones web en Java".
  #7 (permalink)  
Antiguo 08/01/2009, 15:37
Avatar de Wayern  
Fecha de Ingreso: septiembre-2008
Ubicación: Aguascalientes
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 4
Respuesta: Struts y JSF

Yo nunca he utilizado Struts, pero por algunos comentarios de mis compañeros de trabajo y experiencia propia en JSF, puedo decir que la programación de las interfaces es un poco más rápida en Java Server Faces porque la gran mayoría de los componentes puedes obtenerlos de librerias ya creadas como RichFaces, Jenia o Tomahawk. Además, existen componentes de Ajax4faces que te encapsulan muchas funciones de Ajax, que de otra forma tendrías que hacer tú. Por otra parte, va a depender mucho de la forma como estructures tu aplicación, si lo haces correctamente vas a ver que tu programación va a ser fácil y óptima. Si no lo haces bien vas a tener un caos, pero eso te va a pasar con cualquier framework o lenguaje.

No existe un framework mejor o peor, eso depende del programador; en lo personal prefiero JSF, pero creo que es bueno saber de todo un poco...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:03.