Desarrollo aplicaciones WEB

Hola buenas tardes soy nuevo en esta comunidad, desarrollo aplicaciones java pero SWING, estoy por comenzar con aplicaciones Web me podrian dar una breve introducción o links para algun manual.

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

Tapestry

Lo mismo que le dije a otra persona que esta por aprender desarrollo web en Java:

Aprovecha que no has tenido el infortunio de trabajar con JSP's y horrores similares, y metete de lleno a Tapestry. Es un framework para aplicaciones web, esta en el sitio de Apache, es software libre y es de las mejores soluciones para desarrollos web, porque no te tienes que meter tanto al rollo de servlets y todo eso (de hecho no te tienes que meter nada). Es como siempre debió haber sido: una página es html normalito sin tener que usar tags raros ni meter código directamente en la página (o encapsular pedazos de código en tags que luego van con codigo raro de todas formas en la página). Y todo el código va atrás en una clase Java normal que no tiene que heredar de nadie y los datos que muestras en la página son propiedades de esta clase. Requiere Java 5 o 6 porque usa varias anotaciones para toda esta magia, pero vas a ver que cuando lo conozcas, si despues ves JSP, JSTL, JSF, etc te va a dar mucha hueva porque todo eso es super enredado.

http://tapestry.apache.org/ (usa la version 5, se supone que sigue en beta pero estan muy proximos a sacar ya el release oficial y el beta esta muy estable)

Sobre todo si ya conoces desarrollo Swing, te va a costar menos trabajo usar Tapestry que aprender toda la bola de acrónimos que necesitas para JSP. Lo único que siempre tienes que tomar en cuenta en desarrollo web, uses el framework que uses, es que cualquier código que pongas puede ser invocado muchas pero muchas veces por segundo, por varios usuarios distintos, así que hay que pensar en uso de memoria, pools de objetos/threads/conexiones/etc y optimizar el uso de recursos.

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley

Imagen de 1a1iux

Mejor Spring

Hola, que tal.

Estoy de acuerdo, no te claves en el aprendizaje y dominio de JSPs y Servlets, que es lo que tradicionalmente uno se encuentra cuando se inicia en el desarrollo de aplicaciones web.

Yo diría que le dediques muy poco tiempo a estas APIs, sólo por "cultura general", y para que entiendas a la perfección como es que se construyen frameworks sobre estas tecnologías.

Ya que medio entiendes que son estas APIs y para que sirven, lo que recomiendo es que te vayas por el uso de algún framework para el desarrollo de aplicaciones web, de esos hay para escoger.

http://java-source.net/open-source/web-frameworks

Y te recomendaron Tapestry, yo te recomiendo Spring, alguién más te recomendará Struts, y quizás otro vote por Faces.

En fin... creo que la idea de todos los frameworks es que puedas construir aplicaciones web de una mejor manera que sólo usando JSPs y Servlets.

Y por cierto, no creo que exista EL MEJOR framework de todos, es sólo cuestión de gustos o requerimientos o necesidades u otros factores.


Sale y vale
Byte

Imagen de ezamudio

Tapestry + Spring

Tapestry y Spring no son excluyentes. Tapestry incluye sopote para Spring y de hecho asi lo estoy usando y es lo mejor porque todos los componentes que serían EJB de otra forma, simplemente son beans que me administra Spring, y Tapestry es solamente para la interfaz. Es decir Tapestry es para hacer aplicaciones web, y tiene algo de infraestructura si quieres meter algo de administración de beans similar a lo de Spring, pero no están peleados ni tienes que escoger entre uno y otro.
El desarrollo de aplicaciones web con puro Spring implica usar JSP lo cual esta bastante gacho, Tapestry es un paradigma completamente distinto a JSP, pero puedes seguir usando Spring. De hecho una muy buena combinación ya que conoces de todo un poco, es Tapestry + Spring + Hibernate.

Struts y JSF simplemente son capas encima de JSP, el problema es que no dejas de usar JSP, simplemente es JSP con esteroides por decirlo de alguna forma. Struts y JSP siguen teniendo XML-itis; incluso Spring que usa bastante XML es completamente justificado y con lo que metieron de anotaciones se simplifica un poco el XML para configurar beans. con Struts y JSF siempre me acuerdo de ese bonito refrán que dice El XML es como la violencia; si no te ha resuelto el problema es que necesitas usar más.

Como bien dices, no hay un framework que sea mejor que todos los demás. Pero sí hay muy buenas combinaciones y Tapestry + Spring + Hibernate es de lo mejor que he probado (tengo ganas de probar Cayenne en vez de Hibernate pero no he tenido tiempo).

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley

Imagen de iberck

He escuchado muy buenos

He escuchado muy buenos comentarios de tapestry, incluso se comentó en la segunda reunión de springhispano....
creo que es momento de hecharle un ojo ;)

Imagen de 1a1iux

Muy buena observación

En efecto Spring es muchísimo más que un framework para desarrollo web, y una de sus principales bondades es la capacidad de integrarse con otras tecnologías. Retomando el tema web, Spring permite el uso de JSPs/JSTL, Velocity, FreeMarker, JavaServer Faces y por supuesto Tapestry. Hay de dónde escoger.

A su vez, el desarrollar aplicaciones web seguramente llevará al uso de alguna tecnología para bases de datos. En este punto recomiendas el uso de Hibernate, yo agregaría que también se evalúe el uso del API de persistencia JPA / Toplink. Es lo que a mi me convence.

En fin,


Sale y vale
Byte

Imagen de ezamudio

Tapestry 5

Asegurate de revisar la versión 5. Es una maravilla, es como el antídoto a la XML-itis que ya está tan fuerte en J2EE (tanto que incluso el EJB 3 usa anotaciones para quitar algo de XML porque ya era demasiado).

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley

Web Frameworks

Yo te recomiendo de web frameworks Basadas en Components Tapestry5, Wicket o ZK. Basadas en acciones/MVC Spring MVC. Depende que es lo que vas a construir si va a ser un sitio web con bastante trafico Spring MVC es la solucion, si va a ser una Aplicacion Web(Como un programa desktop pero en el web)Tapestry,Wicket o ZK.

Tapestry 5: Esta basada en mas programacion declarativa, por ejemplo usas mas anotaciones y mas XML de plantilla pero te hace mas magia en el codigo por ejemplo si anotas una propiedad con la anotacion @Property ya no necesitas definir setters y getters, Es fantastica esta framework.

Wicket: Esta basada mas en programacion imperativa, pasa completamente toda la logica a codigo Java, solamente en la plantilla manejas pura estructura y ID's de referencia eso es todo, igual esta muy completa , hasta tiene clases para manejar autorizacion y autentificacion.

ZK: Esta basada completamente en Ajax, todos los componentes son Ajax, utiliza en plantilla Xul para declaracion o puedes codificar todo en Java tambien si quieres es muy secilla y flexible.

Otras opciones seria tambien vale la pena checar es Google GWT pero estoy apenas yo empezando a manejarla.

Para el backend Spring desacopla tu logica de negocios mas otros servicios como DAO's y email etc, Hibernate/JPA para la persistencia de datos. Todas las frameworks que mencione soportan perfectamente Spring y Hibernate para tu logica y persistencia. Usa Spring de verdad es un milagro esta framework.

Hablando sobre Spring MVC es muy simple de usar y con anotaciones mucho mejor, olvida Struts, Struts es una mounstrocidad comprarada a Spring MVC y como tambien esta basada en acciones y MVC es muy buena para sitios web te la recomiendo.

Lo mejor es agarra un tiempito y haz algunos ejercicios para ver cual es la que mas te gusta.

Yo por el momento estoy utilizando Spring MVC con JQuery para sitios web, Wicket para una applicacion de intranet y ZK para unos portlets. Por supuesto todo usando con Spring y Hibernate/JPA.

Saludos.

De Chile, de Mole y de Manteca

De Chile, de Mole y de Manteca, es como dicen en mi pueblo. Y eso me encanta, tener tanto de donde escoger.

En lo personal, yo utilizo Spring + Hibernate; y SI, hay que meter codigos raros (tags) en el JSP para mostrar la informacion. Ultimamente he leido sobre Trapestry y lo he empezado a probar, pero como en lo general utilizo AJAX para la recarga de Contenido, no tengo que estar moviendome entre tantas paginas.

Aunque eso diverge mucho, porque hay quien dice que no puedes tener tanta funcionalidad en una sola pagina y que lo ideal es estar cambiando entre pagina y pagina, pero a mí, andar navegando por aqui y por alla se me hace muy aburrido. Al final todos queremos hacer aplicaciones Web 2.0.

Como consejo yo te diria que antes de empezar a teclear, analices bien que es MVC y como lo puedes aplicar; porque asi tuvieras un super-mega Framework, sin ese concepto tan basico, lo harias todo como Dios te dio a entender. Una vez que ya tengas bien claro que capa hace que cosa y como defirnir una buena estructura, busca como hacer un simple 'Hola mundo'. Despues, intenta hacer una busqueda en una base de datos y mostrar el resultado en una JSP y asi hasta que puedas entender porque usar un framework para una tarea y por que no hacerlo.

De principio puedes utilizar cualquier IDE, yo utilizo NetBeans, y un contenedor para JSPs, como lo es tomcat.

Asi que hechale muchas ganas y si quieres hacer algo mas especifico, yo te puedo ayudar.

:: mto ::

Imagen de benek

Con Tapestry se complica

Con Tapestry se complica utilizar Ajax?¿

También estoy pensando utilizarlo, pero al igual que tú me gusta hacer mis páginas con Ajax.

Con respecto a lo que comentas de que está mal juntar todo en una sola página opino que depende de la funcionalidad, hay
situaciones en las que al meter Ajax le resulta comodísimo al usuario. Aún así he visto como algunos desarrolladores se
exceden en el uso de esta técnica y la página queda (al contrario del objetivo) con problemas de usabilidad importantes.

--
Javier Benek

Con Tapestry 5 creas tu components Ajax

Tapestry 5 esta pensada en eso en Crear components basados en Ajax si quieres. Un componente Tapestry es solamente un POJO con una plantilla xml, le metes codigo Javacsript con un framework por ejemplo JQuery y ahi lo tienes tu componente Ajax.

Una aplicacion en Tapestry 5 se va formando por composicion de componentes y eventos, Si alguein llego a usar Delphi se van acordar que es muy similar. Tapestry 5 es un framework bastante robusta, facil y moderna.

Chequen el componente BeanEditForm, con un Modelo en persistencia te va rellenando la forma con los campos del modelo y aparte la validacion en cliente utiliza Ajax. Si ven en el codigo fuente de Tapestry 5 se puede apreciar como se construyen componentes Ajax con esta framework es muy simple.

Yo opino que ahora tengo mucho mayor productividad con Tapestry 5 que con otras frameworks o podria decir que Tapestry 5 da mas productividad y performance que Rails.

PS.Tapestry 5 utiliza el patron de diseno MVC(Model View Controller) pero esta basada en componentes, no como Struts o SpringMVC que son basadas en acciones. Otras frameworks parecidas con mucha productividad tambien son Wicket y ZK.

Imagen de iberck

Pocas implementaciones de ajax

He estado leyendo un poco acerca del framework y pienso que todavía esta verde en la cuestión ajax. Me explico:

Para poder utilizar cierta funcionalidad de x librería javascript tienes quedefinir un componente y otro y otro, lo cual no es tedioso pero si quita bastante tiempo.
El framework soporta ajax por medio de componentes y algo llamado mixins los cuales sirven para agregar funcionalidad extra a componentes.

Por default tiene soporte para prototype y script.aculo.us pero aún así no existen implementaciones para utilizarlas directamente dentro del framework. Existe una librería llamada t5-components pero tiene 0 documentación y dichos componentes solo están creados sobre prototype/script.aculo.us.
Por ejemplo si deseas utilizar jquery podrías hacerlo pero tendrías que estar definiendo tus componentes a mano para poder utilizarlos en los templates.

Por tanto, la estructura del framework soporta ajax pero en mi opinión el soporte es pobre ya que no hay librerías de externos que implementen componentes para solo utilizarlos.

Imagen de ezamudio

Buena oportunidad

Lo cual es una buena oportunidad para implementar algo asi, si tienes los conocimientos necesarios de AJAX, jQuery, etc solamente necesitas ver un poco de Tapestry para crear algo de soporte y aportarlo como una librería externa.
Toma en cuenta que Tapestry 5 está apenas por salir de beta a producción, aunque ya está bastante estable, pero es algo muy nuevo aun. Con el tiempo el soporte de AJAX irá aumentando, siempre y cuando haya quienes hagan los aportes necesarios.

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley

Imagen de iberck

Exacto

Exacto, es una buena oportunidad para crear una librería de componentes aunque leyendo algunos comentarios parece que aún no existe ningún soporte para jquery/YUI y todavía estan indecisos de qué librería implementar y cómo hacerlo para que sea genérico.

Otro punto a débil pero ajeno a tapestry5 es el soporte en entornos de desarrollo, me gustaría que hubiera algún plugin donde doble click a un archivo y abrieran 3 pestañas (La pagina, su componente, su archivo de recursos si existiera) y además .... autocompletado, con eso de verdad que se podría hablar de desarrollos ágiles.
Me encontre con loom pero parece que solo tiene la funcionalidad para cambiar entre el componente y la página, pero bueno, algo es algo .....

Tapestry

Bueno he leído todos los comentarios y parece que para lo que estoy buscando lo mejor es Tapestry.
Así que quien conozca de donde puedo descargar un manual favor de mostrar el link.
saludos

Imagen de ezamudio

sitio oficial

En el sitio oficial puedes encontrar documentación. Asegurate de usar la versión 5...

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley

Tapestry

Si gracias hermano, ya lo he descargado ahora donde puedo obtener documentación en español.
Crees que para el desarrollo web sea mejor Struts o Tapestry.
Dime tu criterio.
saludos

Imagen de ezamudio

Tapestry

He usado Struts y la verdad no me gustó nada, ofrece apenas una ventaja muy leve sobre JSP simple. Tapestry es un paradigma completamente distinto y me parece que está mejor organizado, la manera en que funciona.

No creo que haya documentación para Tapestry en español. Si no puedes leer documentación en inglés te estás cerrando las puertas a muchísimos frameworks y librerías cuya documentación solamente hay en inglés.

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley

Tapestry

Bueno el inglés lo domino, pero no hay nada como tu idioma de origen.
Me llevaré por su consejo y comenzaré mi andar con Tapestry.
Mira encontré este proyecto o tesis que trata sobre Tapestry
http://personales.ya.com/juriver/pfc/htmlhelp/
Los conocimientos que tengo de Java son Estructuras de Datos, árboles, grafos y algo de lo básico. ?Crees que con eso puedo comenzar a trabajar con Tapestry?.
saludos

Imagen de ezamudio

Java...

Estructuras de datos, árboles y grafos son cosas de programación, y ni siquiera específicamente de programación orientada a objetos. No es algo específico de Java, todo eso lo puedes (y debes) manejar en C#, Ruby, Python, PHP o cualquier otra cosa.

Necesitas familiarizarte con algunos patrones de diseño como MVC que ya alguien más mencionó (Model-View-Controller), inyección de dependencia o inversión de control, anotaciones (las que aparecieron en Java 5 y 6), interfaces (por qué existen, cuál es su propósito, diferencia de las clases abstractas), algunas cosas así para entender mejor cualquier framework para desarrollo web, no solamente Tapestry (bueno las anotaciones se usan MUCHO en Tapestry, no sé en otros frameworks).

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley

Tapestry

OK Ya he estudiado algo de MVC pero en Frameworks PHP (CodeIgniter y ZendFramework). Espero que sea la misma filosofía, estaba tratando de ver como es que funciona Tapestry y como se instalan las librerías, uso sistema operativo Debian Lenny y tengo instalado Eclipse.
Ha, si conoces de algún lugar de donde pueda descargar algún libro o manual de Tapestry gratis favor de decirme, aunque sea en inglés.

Imagen de ezamudio

Sitio oficial o blog

Según yo el sitio oficial tiene algunas ligas. Un tutorial sencillo y cosas asi. Howard Lewis Ship, el inventor de Tapestry, hizo un libro pero es de la versión 3 o 4 no recuerdo, y no sé si hay versión electrónica (supongo que no, porque siendo informático, seguro sabe que si lo vende como un PDF mucha gente se lo va a piratear). Tapestry 5 salió apenas a principios de año, así que no creo que haya libros ya disponibles. Creo que gastar un poco en un libro a cambio de usar un framework por el que no pagamos nada, es una manera adecuada de compensar al autor de dicho framework por usar su trabajo.

Tal vez O'Rilley ya tenga algo o haya planes de publicar algo pronto. Pero si no, puedes leer el blog del autor, ahí publica mucha información de todo lo relacionado con Tapestry.

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley

Tapestry Book

Gracias hermano por la ayuda, bueno iré estudiando poco a poco.
De lo de comprar un libro, Bueno soy Cubano y aquí no se comercializan ese tipo de libros y si encontrara uno sería varias veces mi salario mensual, así que creo que mejor me leo las guías en inglés o busco un frameworks que tenga bibliografía en la red.
Suerte
¿Qué me recomiendas?
Saludos avali2

Imagen de benek

Mi estimado, he encontrado

Mi estimado, he encontrado para tí un par de lecturas en PDF disponibles en la página web del creador de Tapestry que menciona ezamudio:

Tapestry 5 Preview - http://howardlewisship.com/downloads/Tapestry-5-Preview.pdf

Introduction to Tapestry 5 - http://howardlewisship.com/downloads/NFJS-Tapestry5-2008-1up.pdf

Workshop Basics - http://howardlewisship.com/downloads/workshop-1-basics.mov

Ejemplos QuickStart: http://howardlewisship.com/downloads/quick-start/

Creo que es suficiente para que te inicies de manera correcta en este framework :-)

Saludos!

--
Javier Benek

Tapestry, lo has encontrado

Hola hermanos:
Gracias por el aporte, ya estoy descargando las guías, apenas tenga mi primer ejemplo lo subo al foro y ahí podemos debatir.
Todos aquellos que hayan hecho algo y puedan publicarlo pues bienvenido sea.

Bueno gracias.
Saludos avali2

Imagen de Thunx

Gracias por sus aportes

Gracias por sus aportes muchachos. Soy recién integrado a la comunidad, y me estoy pasando por sus aportes y pronto espero ayudar con algo para devolver un poco lo mucho que me han ayudado a mí.