2011-05-03 47 views
7

He revisado algunas preguntas de Struts 1 contra 2 en SO, pero ninguna parece responder a la pregunta en la perspectiva de que la estoy viendo.Struts 1.x vs Struts 2.x

Estoy a punto de comenzar a trabajar en la construcción de un nuevo sistema, una reingeniería completa de una aplicación de escritorio muy antigua. El objetivo es hacerlo basado en la web, agregar más funcionalidades, hacer que sea más útil, etc. (las razones usuales de reingeniería).

El equipo que desarrollará el sistema son principalmente desarrolladores de Java y han trabajado en Struts 1.x ampliamente en los últimos 5 años.

El sistema está destinado a vivir durante muchos años por venir, por lo que la idea de reingeniería de nuevo en 3-5 años cuando sale un mejor marco no es una opción. No se pretende usar mucho AJAX.

Mi pregunta es por qué me molestaría en moverme a Struts 2 cuando mi equipo tenga tanta experiencia con Struts 1.x. Entiendo que hay algunas mejoras, pero me preocupa que el tiempo perdido para hacer que el equipo funcione a toda velocidad, la reelaboración debido al uso incorrecto, etc. superará ampliamente cualquier beneficio que obtendríamos de Struts 2. Nos gusta Struts 1, hace lo que necesita hacerlo, y todos los patrones de diseño, estándares, mejores prácticas, etc. están en su lugar.

¿Hay características de cualquier asesino con Struts 2 o problemas graves que no sé acerca de Struts1 que influir en la decisión de quedarse con Struts 1.

+3

Me cansaría de utilizar un marco tan antiguo para comenzar un nuevo proyecto. –

Respuesta

7

Si está construyendo un sistema desde cero, definitivamente pasaría a la versión 2.x de Struts. La curva de aprendizaje no será excelente para un equipo de Struts 1.x, pero podrá aprovechar un marco de MVC actualizado.

Para mí las dos características principales de puntales 2.x que mejorarán la productividad son:

  • construido en apoyo AJAX
  • No más ActionForms - puede enlazar directamente en objetos de dominio si desea, por lo este paso intermedio se ha ido.

Si se trata de un proyecto grande en el que está trabajando, le recomendamos que consulte un marco de componentes, p. JSF 2 o Wicket. Si está decidido a seguir en un marco basado en la acción, personalmente encuentro que Stripes es un marco más productivo.

0

En términos más generales, Struts 2.x marco en capas en comparación con Struts 1.x. Por ejemplo, en la capa de datos, Struts 2.x tiene HACER capa entre el VO y DAO .. Del mismo modo otras características se mencionan en el siguiente enlace ..

http://struts.fromdev.com/2008/08/struts-1-vs-struts-2.html ..

Debido a que su equipo tiene más experiencia con los puntales 1 .x, no creo que lleve más tiempo migrar tu código a struts 2.x.

Por favor sea específico qué tipo de diferencia U están esperando ..

0

en struts2.0 hay más características y ventajas, en struts2.0 no hay forma de haz, una buena y poderosa estructura de validación completa y la mayoría importada en struts2.0 para cada solicitud hay una instancia de acción, pero en sturts1.x solo una instancia de acción para la aplicación de agujeros.

así que la elección es suya. :)

3

Struts 1.x es una tecnología vintage de 2000. ¿Por qué demonios considerarías seguir con una nueva aplicación?

La mayor desventaja que puedo ver es que Struts te encierra en una interfaz de usuario del navegador basada en JSP. Las acciones de Struts son reutilizables solo dentro del marco. Tendrá dificultades para integrar sin problemas un dispositivo móvil en ese sistema si es necesario.

Comenzaría a pensar en servicios web, preferiblemente basados ​​en REST y AJAX. El mundo ha cambiado Buscaría alternativas a Struts, como Spring o Play. Elegir un nuevo marco web no sería tan importante, pero los beneficios podrían valer la pena.

Aquellos empleados que no hayan hecho nada más que trabajar con un marco obsoleto durante los últimos cinco años también se lo agradecerán. Tiempo para nuevas habilidades.

ACTUALIZACIÓN: Si has intentado, y no puedes llegar tarde, y demasiadas restricciones, entonces diría que ya sabes tu respuesta. ¿Qué esperas conseguir viniendo aquí? No veo un argumento de que hayas dejado de pensar.

+0

Entiendo tu punto completamente. Pero mi preocupación es que he estado involucrado en proyectos donde se ha elegido una nueva tecnología (porque es más reciente y tiene beneficios x, y) y debido a la falta de comprensión del marco, se tomaron malas decisiones de diseño y el proyecto fue muy tarde. No puedo permitir que esto suceda en este proyecto, ¡así que estoy tentado de mantenerme a salvo! .... En cuanto a Spring/Play, me encantaría usar Play (soy el autor del libro de Play), pero es poco probable que la gerencia buy-in al framework siendo relativamente joven (lo he intentado ya). – Codemwnci

+1

+1 para los comentarios de Struts 1. Struts 2 es una buena opción, al igual que Play. Sin embargo, no veo el sentido de usar Spring MVC a menos que esté utilizando Spring DI/AOP. –

+0

Usar Spring MVC no es peor que usar Struts 1.x. Y no tiene que usar toda la maquinaria Spring para beneficiarse de partes de ella. Funciona bien a la carta, también. – duffymo

0

Bueno, la razón principal es mover a struts 2.x en lugar de struts 1.x es struts 1.x está en fase de mantenimiento ahora no en mucho desarrollo activo.

ahora cuando comienza con un equipo que tiene una buena comprensión de struts 1.x es que obtendrán el sistema subyacente rápidamente. Pero antes déjame poner un punto de manera clara. struts1.x no tiene similitud con struts 2.x la única similitud es el nombre heredado de los padres. struts2 tiene las siguientes ventajas.

  1. Acción basado marco
  2. Un fuerte apoyo Ajax
  3. interceptores de enfoque (núcleo del marco) 4 desacoplada de la API Servir dejar que significa POJO normal por lo que la unidad de pruebas será mucho más fácil

pero mi punto es simple struts2 y struts1 solo son similares en términos de nombre, pero en términos de arquitectura subyacente son bastante diferentes.

0

Yo pensaría en lugar de preguntar "Quédese con Struts1 o muévase a Struts2?" será mejor que preguntes "¿Te apegas a Struts1 o pasas a una estructura de MVC basada en acción moderna?". ¿Por qué moverse? Porque Struts1 es viejo y (francamente) apesta. ¿Por qué no moverse? Porque debemos aprender un nuevo marco. De acuerdo, usted conoce sus recursos, debe hacer la evaluación. Pero tenga en cuenta que los marcos basados ​​en acciones modernas (Struts2, SpringMVC, Stripes) son bastante fáciles de aprender, y más aún si sus equipos ya conocen Struts1.

Yo mismo he migrado de Struts a Struts2 y ahora no me gustaría volver a la programación de Struts1 (¡esos torpes ActionForms!). Creo que Struts2 es mucho mejor. Pero también se debe considerar que Struts2 también tiene sus puntos débiles, el proyecto no parece muy saludable y la comunidad no parece muy activa. El salto de Struts1 a Struts2 no es grande, pero no es tan pequeño como un cambio de versión ("Struts2" es un nombre inapropiado), y probablemente no es más pequeño que el salto a SpringMVC, así que sugeriría considerarlo (o Rayas).