Tema: Struts y JSF
Ver Mensaje Individual
  #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.