|
Tapestry is an object-oriented Java
web application framework to implement applications
in accordance with the model-view-controller design
pattern. Tapestry was created by Howard Lewis
Ship independently, and was adopted by the Apache
Software Foundation. Tapestry emphasizes simplicity,
ease of use, and aims to avoid forcing programmers
to create enormous blocks of "glue code".
Tapestry uses a modular approach to web development,
by having strong binding between user interface
components (objects) on the web page and their
corresponding Java classes. This component-based
architecture borrows many ideas from WebObjects.
Tapestry web applications are broken
down into pages and components. Pages dictate
component layout, whereas components dictate functionality.
This approach separates complex applications into
easily manageable snippets of code which handle
user interactions, business logic, and persistent
data. Components are broken down further into
core and supplemental types. Core components are
the basic building blocks to the application,
such as form validation, interface assets, or
persistent objects. Supplemental components define
how a group of any core components may interact
with other in the group.
Component templates in Tapestry are
XHTML files. Typically an XML file defines the
mapping between Java classes and the XHTML objects
they control. The communication between the backend
Java and frontend (web application programming)
XHTML objects is handled though OGNL. The code
is marked up differently from the typical mechanism
used by PHP, ASP, and JSP, which use special tags
to enclose template variables and code.
Tapestry has remained relatively similar
throughout its versions with the exception of
Tapestry version 5. This version began development
shortly after version 4 was released. The developers
of tapestry version 4 quickly realized that their
original architecture would not solve many problems
plaguing its web developers using its framework.
These problems included complex component architecture
and persistent data mapping. As well as the need
to recompile, archive, deploy, and restart their
servlet. This process needed to be done for every
change made to the application. These problems
affect a majority of all popular web application
frameworks. Ultimately the worse problem afflicting
tapestry developers was the lack of backwards
compatibility.
Tapestry version 5 which is scheduled
to be released in the fall of 2007, has been redeveloped
from the ground up. This version is designed to
be 100% backward compatible for future version
releases though the adoption of Java annotations.
This version also allows for instant development.
There is no need for the developer to redeploy
and restart their servlet container. Tapestry
has accomplished this though the evolution of
HiveMind and IoC. The implementations of these
technology do not require developers to use XML
to link the back-end Java classes with their respective
front end XHTML objects. The tapestry core modular
automates this process entirely. This version
also integrates AJAX interfacing fully into its
control structure, allowing for developers to
create rich immersive web application with very
little amount of code.
All about Apache
Tapestry
Download
Apache Tapestry
|