lunes, 24 de mayo de 2010

Documentación sobre Apache Tapestry

Apache Tapestry
Apache Tapestry ha sido para mi, con diferencia sobre el resto  (JSF, Struts 1 y últimamente Grails), el mejor framework para desarrollar aplicaciones web en Java que he probado, además de ser un placer programar con él siempre que he podido. También he leído bastantes buenas críticas y argumentos en varios blogs y artículos destacando varios de sus aspectos y comparándolo con otros frameworks similares (Wicket, Struts, JSF y algún otro). En esta entrada quiero ir recogiendo todos los enlaces de documentación que vaya encontrando sobre este framework ya que a pesar de que el framework es excelente la documentación a día de hoy no es tan abundante no toda está centralizada en la web del proyecto, lo que puede ser un problema para alguien que este empezando. Por fortuna, la documentación es suficiente para llegar a comprender como funciona y hay algunos buenos libros publicados. Este framework le hace la vida más fácil al programador en varias de las tareas más comunes de toda aplicación web. Así que si estas cansado de JSF, de Struts o de el framework [pon aquí el que uses] que no te permite disfrutar mientras desarrollas o te complica las cosas más de lo necesario te animo a que pruebes Tapestry quizá sea lo que estás buscando. Puedes empezar por el video tutorial de 10 minutos (en inglés).

Del proyecto
Documetación

Libros
Documentación básica para cualquier persona que empiece con Tapestry que explica desde el principio cada uno de los conceptos de una forma más formal y detallada.
PlugIn Tapestry: Desarrollo de aplicaciones y páginas web con Apache Tapestry (Tapestry 5.4)
Tapestry 5 - Rapid web application development in Java (Tapestry 5.3)
Tapestry 5: Building Web Applications (Tapestry 5)
Enjoying Web Development with Tapestry (Tapestry 4.1)
Tapestry In Action (Tapestry 3)

Webs
Fuentes de información y de referencia de los propios componentes de Tapestry y de los conceptos de Tapestry (desarrollar componentes, Ajax, localización, validaciones, persistencia, navegación componentes, parámetros, ...)
Apache Tapestry
Apache Tapestry (4.1)
Apache Tapestry (5.1)
Tapestry5HowTos (Wiki)
Tapestry5Training (Wiki - Vimeo)
Vídeos de presentación sobre Apache Tapestry 5
Java Magic
Screencasts
Tapestry 5 Blog (Blog de uno de los committers del proyecto en el que explica como sacarle todo el provecho al framework)

Ejemplos
Viendo ejemplos de código fuente se puede aprender más rápidamente como hacer una determinada cosa, es una fuente de nuevas formas de hacer las cosas y permite tener un ejemplo funcionando sin mucho esfuerzo.
Hola mundo con Apache Tapestry 5
Hola mundo con Apache Tapestry (4.1)
Hola mundo con Apache Tapestry (5.1) en Google App Engine
Entorno de desarrollo para Apache Tapestry 5
Componente Cache para Tapestry 5
Componente Lista para Tapestry 5 (paginable y anidable)
Componente AjaxSpinner para Tapestry 5
Componente selector de fecha para Tapestry 5
Usar Apache Tapestry 5 con Groovy (u otros lenguajes de la JVM)
Seleccionar el lenguaje (locale) según el dominio en Apache Tapestry
Como devolver un archivo con Apache Tapestry
Como enviar un archivo con Apache Tapestry
Tapestry JumpStart (excelente web con un montón de ejemplos utilizando Tapestry 5 que se pueden probar)
Tapestry 5.1.0.5 Demos
Aplicación Tapestry con ejemplos en Google App Engine

Del blog del autor de Tapestry
Colección de artículos que el autor de Tapestry ha publicado en su blog y me han parecido interesantes
Why choose Tapestry?
"Simple" JSF 2.0 Component vs. Tapestry Web Framework Smackdown: Tapestry
A Better Web Framework: Tapestry's Response Speeding up Tapestry 5.1

Artículos (en castellano)
Introducción a Tapestry (Arume Informática)
Introducción a Tapestry 5 (Java Mexico)
Motivos para elegir el framework Apache Tapestry
Peticiones Ajax en Tapestry
Peticiones Ajax en Tapestry (II)
Conversiones de datos entre el cliente y servidor en Apache Tapestry
Validaciones de datos de formularios con Apache Tapestry
Extender las validaciones de Apache Tapestry
Páginas PageCatalog, ServiceStatus e HibernateStatistics de Tapestry
Integración de Apache Tapestry con RESTEasy
Skinning de web usando Apache Tapestry
Seguridad en aplicación web con Apache Tapestry (autenticación, autorización)
Seguridad en aplicación web con Apache Tapestry (II) (XSS, inyección Sql)
Solución al problema de seguridad CSRF en Apache Tapestry
Persistencia con JPA y Apache Tapestry
Transacciones en Apache Tapestry
Integración y transacciones con Spring en Apache Tapestry
Mantenimiento CRUD en Apache Tapestry
Personalizar las páginas de error (404, 500, ...) en Apache Tapestry
Personalizar la página de informe de error en Apache Tapestry
Solución al doble o N-envío de peticiones en aplicaciones web
Desarrollo de Aplicaciones Web con Tapestry
Tapestry 5: Introducción histórica (Parte 1)
Tapestry 5: Introducción funcional (Parte 2)
Tapestry 5: Introducción componentes, inyeccion e internacionalizacion (Parte 3)
Tapestry 5: Introducción integración con spring (Parte 4)
Tapestry 5: Introducción sesiones, validaciones, ajax (Parte 5)
Apache Tapestry 5.3 publicado

Artículos (en inglés)
Artículos que hablan sobre Tapestry y van desde montar un entorno para desarrollar hasta comparaciones con otros frameworks similares y artículos de «evangelización».
10 Minute Demo of Apache Tapestry (Video)
Tapestry Web Framework evaluation and test (muy completo y de recomendable lectura)
Why you should consider Tapestry 5
Tapestry 5 - Setting up the environment
Task 1 - Create a skeleton Tapestry 5 project and run it
Task 2 – Explore the Tapestry 5 project structure and learn where to put your stuff
Task 3 - Rapid turnaround in Tapestry 5
Task 4 – Customize Eclipse for Tapestry 5 template editing
Task 5 - Customize Eclipse for Tapestry 5 code editing
Task 6 - Create Tapestry 5 components library
Scrolling pages : tapestry5 & onScrollBeyond
Tapestry and ‘Editable for Bootstrap’
Tapestry for Nonbelievers
Boost Your Productivity Using Apache Tapestry
Tapestry Load Testing - Round Up
Tapestry and Wicket compared
Choosing Web-Frameworks (Apache Tapestry)

Librerías de componentes
Si los componentes que ya ofrece Tapestry de por si te parecen pocos aquí puedes encontrar más ya hechos y listos para usarse que amplían sus funcionalidades.
Modules, Tutorials, IDE Integrations, Extensions (& community)
Chenillekit (tiene aplicación de demostración)
equanda-tapestry5
Tapestry5 treegrid
Ars Machina

IDE
Si quieres que el entorno integrado de desarrollo te ayude al escribir la aplicación los siguientes IDEs ofrecen soporte a Tapestry.
IntelliJIDEA

Otros
http://tapestry.apache.org/community.html
https://github.com/lguerin
https://github.com/got5
https://github.com/spreadthesource
Y como no: Google :)