This document is meant to give you the
fastest possible introduction to Barracuda, so you can decide whether or not you should
bother learning more.Barracuda is an open-source Presentation Framework
designed to make it easier to build servlet based webapps by applying proven client-server
patterns to the web development paradigm.
Key features include:
The basic idea is that you compile *ML templates into DOM
objects, which can then be manipulated programatically--you insert the data and then
render the DOM. This yields clean separation of code from content.
UI component model that provides a series of server
side widgets (table, list, template, etc) that make it easy to manipulate DOM structures.
Strongly typed MVC interfaces just like in Swing. Support for multiple
markup languages (HTML, WML, XML, etc).
The basic idea is that you can use components to do the DOM
dirty work--you put your data into the components, and let the components render it into
the DOM. Components support URL rewriting, disabling the back button, and much more. Some
components even allow you to add event handlers to them so that you can be notified when
something happens on the client. Cool.
Event model that provides Model 2
style flow control and allows for true event driven programming on the server. You can add
listeners to components and your server-side event handler code will automatically get
notified when an action occurs on the client.
The basic idea here is that event driven programming makes
for looser coupling with higher cohesion--the Barracuda event model makes it possible to
use events in a web paradigm. You can easily control program flow, and events can
hierarchies can be gerneated declaratively from xml. You won't find a more flexible,
powerful approach to events out there.
Form mapping and validation framework that makes it
possible to easily convert HTTP Request form parameters into first class Java objects and
validate them.
Localization services that extend the XMLC compiler to
make it really easy to localize DOM templates and then load them based on target locale
Barracuda builds using Ant 1.4, and includes several custom
taskdefs to streamline the development process.
Based on the Servlet 2.2+ API (so it'll run in any
decent app-server).
And of course it's available as open source under the Enhydra Public License
(EPL)! ;-)
For more details, check out the website--source
is available under CVS, there's a rapidly growing user base, a mailing list to ask
questions, lots of documentation, sample apps, yadda, yadda, yadda. |