betterFORM is a full implementation of the W3C XForms 1.1 standard. XForms became a recommendation in October and is described as “the next generation forms language for the Web.” As an embedded XML language, it is typically used in conjunction with XHTML. XForms has a Model View Controller architecture and allows datatyping and complex validations and calculations, and has a full action and event model.
As a server-side platform, betterFORM generates full, highly dynamic AJAX web applications from XHTML/XForms input documents without coding JavaScript or Java, as is typically necessary with other tools.
If your applications already use XML, XForms and betterFORM are a natural fit. Together they provide a powerful, fast way to develop single-page applications that can load data, process it in complex ways, and submit it to various endpoints. Forms can access any data source through standard protocols such as http, file, smtp, and others. betterFORM also has a pluggable connector interface that makes it easy to add other protocols if you need to.
betterFORM developers Lars Windauer and Joern Turner say XForms compliance is currently between 95 and 98% depending on the browser used; Chrome 4+5, Safari 4, IE 7+, and Firefox 3+ are currently supported. “Other browsers might work too but are not actively tested.”
The most recent release of betterFORM, which came out earlier this month, contains a unique feature that allows it to work with dynamic subforms that are loaded at runtime. The feature is implemented as a small extension to the standard, and it allows the software to build more complex interfaces that can’t be created statically.
Windauer and Turner built betterFORM after “wandering for years in XForms land. We gathered a lot of experience with a former implementation called Chiba, but we decided to make a fresh start building on top of that experience.
betterFORM implements the core XForms processor in Java, running on the server side, feeding browser clients with update information which is applied to the client DOM via JavaScript. It employs XSLT for the transformation of XForms into HTML+JavaScript. To provide attractive, accessible, and consistent user interfaces, betterFORM uses the Dojo Toolkit. Also involved in XForms are XPath, XML Schema, and CSS for styling and layout.
The developers host the project on SourceForge.net, as they have done with other projects since 2001. “We like sf.net for the quick project creation and the source control and web features. I always liked the statistics feature to gain feedback about the adoption of the software. And of course as one of the biggest attractors in open source it is a prominent place to put your software; many people come along to look for solutions.”
Windauer and Turner plan to make at least two major releases a year and several minor ones to implement important fixes or improvements. “We welcome contributors. We can create branches for external developers which will be re-integrated when stable. People with good skills in JavaScript and Dojo are highly welcome to expand our palette of controls. And for the core processor implementation, Java developers with good skills can help us with the implementation of XForms features.” Developers interested in contributing can contact the developers via the project’s mailing list or by direct mail.
What’s coming up in those future releases? Turner says, “As a forms language the attractiveness of the user interface has a major impact on the acceptance of the software. We will continue to integrate new controls such as trees, grids, timelines, and a whole bunch of derivatives of the existing controls, such as masked inputs and currency and numerical controls, and also improve layout containers to simplify the life of page authors. As XForms itself continues to evolve as a standard we will work on implementing new features that come up.”