Latest Changes (since Mar/2006)
- 11/Jun/2006 (guara-0.7.5 on svn TRUNK)
- Moved guara source tree to svn
- May/2006
- replaced JCL by SLF4J
- Added template mapping (like struts) to determine which template should be rendered after controller/action execution
- Moved Factory component to xingu-creator
- 04/Mar/2006 (guara-0.7.3 on cvs HEAD)
- Changed module Outcome code to String
- Mapping methods on Outcomes
- Exporting mock classes as part of the public API
Overview
Guara is a really simple and small web application framework,
with a minimum set of dependencies that should serve
as a base to build other frameworks.
Today we provide a basic configuration that resembles
Turbine Functional Specification
were applications are composed of modules (Actions and Screens)
performing business and presentation logic
and different template types (Layouts,Navigations and Screens)
that are glued together by a template engine.
Motivation
Guara was inspired by Turbine's
accomplishments and mistakes.
One of the things that we really like about Turbine is the ability to build
the page from different chunks (templates) of data, promoting greater code reuse
at the template level.
Some of the the many things we don't like about Turbine are :
- Turbine is too big: this is a problem with lots of web frameworks I have seem
- Turbine is both a framework and a set off components/services put together
- Most of the Turbine components are tied to the framework some how
- Turbine enforces a particular workflow to serve the user request. Read more
- Turbine page generation is complicated and difficult to customize or extend
- Turbine removed support for Freemarker
- Turbine doesn't provide a good module initialization scheme
- Huge release cycles
Maybe, I'm giving the impression that I don't like Turbine, but I started to learn about
frameworks using Turbine and developed more than 10 web applications using it and it's
mailing list support. Thanks very, very much !
Features
Guara tries to be as simple as possible. At it's core, the framework comprises :
Guara fulfills all user request executing a selected
Pipeline.
This enables Guara to be particularly proper to
ajax integration maximizing code reuse.