Aplicaciones J2EE con Spring MVC, Ajax y Marcos Javascript
Buscando como integrar J2EE con Frameworks JavaScript como alternativa a JSF / con ajax para armar una arquitectura de software para nuevas aplicaciones.
El avance de spring 3 ha sido realmente muy bueno para integrar Ajax.
Conceptualmente como integrarlos:
Una JSP normal decorarla con controles JavaScript.
Marcos Java Script
- JQuery, ExtJs, Dojo por ejemplo
La comunicación entre el browser y el servidor se integra en forma más natural ahora mediante Spring MVC que es capaz de interpretar JSON de forma nativa sin depender de un tercero como DWR.
En la capa de "servicios" a la manera de spring con inyección de dependencias, se coloca una capa de lógica antes de acceder al back end.
La capa que se integra al back se simplifica mucho al usar hibernate con anotaciones.
(Aunque muy cuestionable por algunos el hecho de usar anotaciones debido a la carga extra en el servidor)
Referencia:
http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/
http://code.google.com/p/springextjs/downloads/list
http://www.dosideas.com/wiki/Hibernate_Annotations_con_Spring
- paranoid_android's blog
- Inicie sesión o regístrese para enviar comentarios
Spring Javascript
De hecho hay un proyecto de Spring que se llama Spring Javascript (spring-js), que abstraen la complejidad de frameworks o librerías JavaScript para poder ocuparlas en aplicaciones web Java con Spring MVC y/o Webflow.
Lo malo es que está en temprano desarrollo y al momento solo hay implementación para Dojo toolkit.
Buen post.
Saludos.
JQuery
Acabo de entrar a este framework de jquery, lo probe en unas app que hice y me gusto como quedaron, mas adelante hare un post con lo que hice en estas app espero a alguien le sirva.
Saludos
JavaScript en Cliente
la verdad yo prefiero hacer la divición Tec Cliente y Tec Sevidor, en JavaScript prácticamente hago toda la interacción con el usuario manipulo el dom, cargo json envió info al serv, etc, y en servidor realmente solo creo lo que se necesita consultas operaciones con archivos, cosas que requieren que se hagan, regularmente respondo un JSON, lo que me gusta de esta forma de trabajo es que tu iterface cliente queda prácticamente libre de la tecnología que estés usando en el servidor y migrar de un a otro lenguaje en servidor se vuelve tarea sencilla, ya que en el cliente incluso puede ser solo un .html normalito y con javascript te vas llamando lo que necesites al server que puede ser o no la respuesta de algún proceso en el servidor, hasta aquí lo único que te interesa es enviar y recibir información, ya el servidor encargara de hacer lo suyo, que si usa un lenguaje una bd o cualquier cosa, esto hace que incluso la división de trabajo se pueda hacer en grupo, ya que el que programa en JS se abstrae por completo de lo que pase en el server, el solo dice.. cargo este envío esto, recivo esto, hago esto, mientras que el server se encarga de me conecto a este recurso, la sesión es valida.. etc,.. y esto en el lenguaje que sea, haces una aplicacion realmente portable ya que al final tu backend es un cliente de webservices en JS. ademas de eso en tus lado server se queda libre de todo JavaScript/HTML/CSS revuelto que como es difícil leer.
ami me late mucho esta forma en como lo he estado manejando, lo malo es que es programación al extremo con JS, pero igual te puedes apoyar de un tolkit/framework para hacerte la vida fácil, sin firebug no sobreviviras, jQuery es una exelente libreria, lo único que no me gusta es que no esta orientada a objetos =(.. pero rapido te acostubras a usarla, ahora que si quieres seguir programando en Java mas o menos de la forma que te cuento.. pues GWT es un framework que promente mucho, aunque realmente no se me hace sentido programar en el cuando se puede hacer directo en JS, pero bueno cuestion de gusto!, aunque esta estupedo para cuando quieres ofuscar tu codigo fuente JS y que quede un tanto "privado"
RE: JavaScript en Cliente
Es correcto. Hay otras tecnologías que sirven en la capa html / jsp gwt, jsf – para web 2.0, Flex + java, vaadin. Pero esta entrada es de implementaciones de frameworks JS con Java.
Como dicen los buenos consultores todo depende... jajaja
Mi opinión:
Me parece que en la mayoría de los casos la lógica que queda en las capas Back End por lo general es más segura y reutilizable. (Dependiendo de la calidad de la arquitectura, del código, etc.)
Aunque ... una cosa es la lógica para administrar las pantallas y otra es la lógica de negocio pura. En ocasiones es muy difícil de separar sobre todo cuando no se piensa desde el principio así. Luego se vuelve imposible de separar y mantener.
Mi sugerencia revisar la arquitectura de la aplicación y el diseño. Si la asignación de responsabilidades te permitirá reutilizar componentes y si es posible aislar la lógica de negocio de la mejor manera.