...
HTML |
---|
<div id="bar"> |
...
HTML |
---|
</div> |
HTML |
---|
<div id="col"> |
News
Blog Posts | ||||||||
---|---|---|---|---|---|---|---|---|
|
HTML |
---|
</div> |
HTML |
---|
<div id="content" class="big-col"> |
What is Tapestry?
Tapestry is ... a web framework for Java
Tapestry applications are written in Java, the most popular
enterprise applications development language. Tapestry combines
simple Java classes with straight-forward templates to form
components and pages. Tapestry takes care of all the
"ugly plumbing" of a typical web application. Tapestry embraces
convention over configuration. Say goodbye to endlessly editing
XML configuration files!
Tapestry is ... component based
Tapestry applications consist of pages and components. Components
are easy to write, and easy to hook together. Tapestry always has an overall map of
your application, because it knows all the pages
and all the components within the pages ... this lets Tapestry do
all the "dirty plumbing" of web application development.
Tapestry is ... agile
Easy to code, easy to test, easy to deploy. Tapestry encourages you
to work in small increments with immediate feedback so you are
always making fast, forward progress. Want to code in Groovy or
Scala instead? No problem!
Tapestry is ... fast
Tapestry is pure Java. It doesn't use Java reflection, and is built
to cleanly support large numbers of concurrent threads. Better yet, it
automatically includes standard performance-enhancing strategies such
as GZip content compression, JavaScript aggregation, and far future
expires headers ... all of which cut down response size and the number
of client requests.
Tapestry is ... productive
Code and templates are lean and mean. Live class reloading means
that the time between seeing an error and providing the fix
is seconds, not minutes. Advanced exception reporting gives you all
the tools you need to fix your problem: not just
a stack trace, but every bit of information you need to know about
what Tapestry was doing, why it was doing it, what went wrong, and how
to fix it.
Tapestry is ... scalable
Tapestry works well for everything from a lone developer working on
an application with just a couple of pages,
all the way up to large teams and applications with hundreds of
pages and custom components. For big teams, Tapestry's
pages and components design keeps the efforts of different
developers automatically integrated.
Tapestry scales up big on a single server, but also gives you great
options for when you need to switch to a cluster. Tapestry makes
it easy to store information on the client (as hidden fields or
query parameters) or on the server (in the session).
Tapestry is ... adaptable
Tapestry's architecture is open and extensible. Don't like how
Tapestry operates? There's a clean way to add your own
logic, or substitute some of Tapestry's logic with your own. Tapestry
modules make it easy to create components and package them
for reuse in your current application, or across many applications.
Tapestry has built-in modules for integrating Tapestry with the popular
Hibernate and Spring projects, and third-party integrations with other
tools, such as Quartz.
Tapestry is ... global
Tapestry has built-in support for more than a dozen different
languages, and makes it easy for your application to cleanly
support multiple localizations. Tapestry automatically tracks the
user's preferred locale and makes it easy to access
user-localized messages across the entire application.
Tapestry is ... dependable
Tapestry's roots go back to 2003 as an Apache project, and even
earlier as an open-source project. Thousands of applications
run on Tapestry, including high-throughput sites such as SeeSaw.com.
Tapestry applications have a history of running glitch-free.
Tapestry is ... fun
Tapestry removes the tedium of developing web applications, leaving
just the fun parts. Tapestry keeps you "in the zone", having
fun and coding up a storm! Tapestry: code less deliver more!
More on Tapestry philosophy
Who is using Tapestry?
HTML |
---|
<div id="references"> |
<div class="clearer"></div></div>
</div><div class="clearer"></div>This page has moved to Index HTML