java - the - struts studio
¿Alguien ha migrado de Struts 1 a otro framework web? (2)
Mira el marco de Stripes . Si está familiarizado con los puntales, entonces las rayas tendrán sentido para usted, pero es mucho mejor. Tienen una sección Stripes vs Struts en su sitio web. Podrías comprobarlo y ver si te interesa. Le permite trabajar con cualquier marco ajax que desee, y no creo que lleve mucho tiempo migrar de puntales a franjas.
En mi proyecto actual, hemos estado utilizando Struts 1 en los últimos años, y ... ejem ... Struts está mostrando su edad. Estamos migrando lentamente nuestro código front-end a un cliente Ajax que consume XML de los servidores. Me pregunto si alguno de ustedes ha migrado una aplicación heredada de Struts a un marco diferente, y qué desafíos enfrentaron al hacerlo.
Por supuesto. Pasar de Struts a un framework AJAX es una experiencia muy liberadora. (Aunque utilizamos JSON en lugar de XML. Mucho más fácil de analizar.) Sin embargo, debe tener en cuenta que se trata de una reescritura completa de su aplicación.
En lugar del clásico esquema de base de datos / JSP / Actions para MVC, se encontrará moviéndose a un esquema Servlet / Javascript según el cual el modelo se representa mediante solicitudes HTTP GET, las acciones se representan mediante solicitudes POST / PUT / DELETE, y la vista es renderizado sobre la marcha por el navegador web. Esto lleva a desafíos interesantes en cada área:
Lado del servidor: en el lado del servidor, deberá desarrollar un estándar para exponer datos al cliente. El método más simple y fácil es adoptar una metodología REST que mejor se adapte a la jerarquía de sus datos. Esto es bastante simple de implementar con servlets, pero Sun también ha desarrollado un esquema de Java 1.6 utilizando atributos que se ven muy bien.
Otro aspecto del lado del servidor es elegir un protocolo de transmisión. Sé que ya mencionaste XML, pero es posible que quieras reconsiderarlo. Los analizadores XML varían mucho entre los navegadores. Un navegador podría hacer que el documento enraice el primer hijo, otro podría agregar un objeto de contenido especial, y todos analizan espacios en blanco de manera diferente. Peor aún, la función normalize () no parece ser implementada correctamente por los principales navegadores. Lo que significa que el análisis XML puede estar lleno de piratas informáticos.
JSON es mucho más fácil de analizar y más consistente en sus resultados. Javascript y Actionscript (Flash) pueden traducir JSON directamente a objetos. Esto hace que acceder a los datos sea una cuestión simple de xy o x [y]. También hay muchas API para manejar JSON en todos los idiomas imaginables. ¡Debido a que es tan fácil de analizar, es casi compatible MEJOR que XML!
Lado del cliente : el primer problema con el que se encontrará es que nadie entiende cómo escribir Javascript. ESPECIALMENTE aquellos que piensan que lo hacen. Si tiene algún libro en Javascript, tírelo AHORA. Prácticamente no hay buenos libros sobre el idioma, ya que todos siguen el mismo patrón de "pirateo" sin realmente sumergirse en lo que están haciendo.
Desde el nivel más bajo, su equipo necesitará capacitación sobre el desarrollo de Javascript. Comience con la Guía del cliente de Javascript . Es la fuente de información de facto sobre el idioma. La siguiente parada son los videos de Douglas Crockford en Javascript. No estoy de acuerdo con todo lo que tiene que decir, pero él es uno de los pocos expertos en el idioma.
Una vez que lo haya comprendido, considere qué marcos, si los hay, desea usar. En general, no me gustan las cosas como Prototype y Mootools. Tienden a tomar un problema simple y empeorarlo. Sin embargo, puede sentirse libre de evaluar estas herramientas y decidir si funcionarán para usted.
Si realmente siente que no puede vivir sin un marco porque su equipo es demasiado inexperto, entonces GWT podría encajar en la factura. GWT le permite escribir rápidamente aplicaciones web DHTML en código Java y luego compilarlas en Javascript. El PROBLEMA es que estás renunciando a cantidades masivas de flexibilidad al hacer esto. El lenguaje Javascript es mucho más poderoso que lo que expone GWT. Sin embargo, GWT permite que los desarrolladores de Java se aceleren más rápido. Así que elige tus batallas.
Esas son las áreas clave en las que puedo pensar. Puedo decir que darás un suspiro de alivio una vez que obtengas struts de tu aplicación. Puede ser un poco bestial. Especialmente si has tenido desarrolladores inexpertos trabajando en tu modelo de Struts. :-)
¿Alguna pregunta?
Edición 1: Olvidé agregar que su equipo debería estudiar las especificaciones del W3C religiosamente. Estas son las API disponibles para usted en los navegadores modernos. Si atrapa a alguien usando las API DOM 0 (por ejemplo, document.forms [''myform'']. Blah.value en lugar de document.getElementById ("blah"). Value) oblígalos a transcribir toda la especificación DOM 1 hasta que la entiendan arriba Hacia abajo.
Edición 2: Otro tema clave a considerar es cómo documentar su nueva y elegante aplicación AJAX. Las interfaces de estilo REST se prestan bien para ser documentadas en una Wiki. Lo que hice fue tener una página de nivel superior que enumeraba cada uno de los servicios y una descripción. Al hacer clic en la ruta del servicio, accederá a un documento con información detallada sobre cada una de las rutas secundarias. En teoría, este esquema puede documentar a la profundidad que necesita el árbol.
Si va con JSON, tendrá que desarrollar un esquema para documentar los objetos. Acabo de enumerar las posibles propiedades en el Wiki como documentación. Eso funciona bien para árboles de objetos simples, pero puede volverse complejo con objetos más grandes y sofisticados. Puede considerar completarse con algo como IDL o WebIDL en ese caso. (No puede ser mucho peor que XML DTDs y Schemas. ;-))
El código DHTML es un poco más clásico en su documentación. Puede usar una herramienta como JSDoc para crear documentación al estilo JavaDoc. Solo hay una advertencia. El código Javascript no se presta bien para ser documentado en el código. Si no es por otra razón que el hecho de que hincha la descarga. Sin embargo, puede encontrarse escribiendo código que opera como un objeto cohesivo, pero no está codificado detrás de la escena como tal objeto. Por lo tanto, la mejor solución es crear archivos esquemáticos JSDoc que representen y documenten los objetos Javascript.
Si está utilizando GWT, la documentación debe ser obvia.