Announcing Wicket RAD – Rapid Application Development with Wicket June 2, 2008
Posted by Wille in Java, Software Development, Wicket RAD.trackback
Over the past month and a bit, I have spent some time in my spare time distilling some of the most effective practices and lessons learned from a year of using Wicket into an open source framework, which I have (not so) imaginatively named “Wicket RAD”, among other things, it contains the following things:
- Open Session In View pattern implementation using Wicket and JPA: Simplifies creating database-driven web applications with Wicket by making transaction- and connection management transparent to the developer, and making lazy-loading simple as there is always a persistence context open and available.
- Annotation driven bean form generator Components: allows you to quickly generate forms without writing any markup by simply annotating Serializable java beans with appropriate input- and validation annotations such as @TextField, @CheckBox, @DropDownChoice etc, (and @Required, @Length(min=4, max=10) etc for validations).
- Components bringing together the two things mentioned above: Just drop your JPA- and bean form annotated bean into a DefaultCreateBeanForm to generate a form and persist the bean on submit, or a DefaultUpdateBeanForm to update. Creating forms and Creating, Reading, Updating and Deleting data in web applications has never been easier!
The project home page can be found here.
Any feedback/questions can be sent to the Wicket RAD Nabble forum.
The project is mavenized and should build nicely with Maven 2, if you simply follow the instructions in the provided README.txt file. The project is released under a commercial friendly Apache open source license.
I’m hoping to improve the documentation and code samples considerably over the summer, time permitting, as I do realize it is somewhat scarce on the ground.
The current version is 0.2, which means that API stability is not guaranteed, however, apart from making it easy to cleanly implement a larger variety of layouts, I wouldn’t expect the external API’s themselves to change much in the future.
Also, some credit where credit is due:
- DataBinder – haven’t used it, but I’ve read up on it’s concepts, and seems to do a similar thing to Wicket RAD’s OSIV implementation, but for Hibernate.
- London Wicket – My original idea for the bean editor was a continuation of material from the beaneditor presentation.
- Wicket – of course.. Brilliant, brilliant framework that made me enjoy web development again.
(On a final note, I hope the Wicket guys don’t mind my unimaginative name for this open source project. If there are any objections, do let me know and I’ll try to think of something better.)
UPDATE
Bumped up the version from 0.1 to 0.2 to reflect a quick update release fixing some minor bugs, making the build simpler and providing a sample application.
Since the latest release, databinder is ORM-agnostic. So far, it supports at least Active Object in addition to Hibernate. I believe Cayenne support is also in the works. I had great results with it!
Cheers, Thomas
Hmmm. Couldn’t you have been more imaginative, and called it something like, hmmm, Stumps? Bail? LBW?
How does this compare with Wicket Web Beans?
I like Wicket RAD because it sounds like “wicked, rad” surfer language
Michael:
Haven’t used WWB, so can’t give a definite statement, but looking at the WWB tutorials, I can sense the following major differences in approach:
- Annotation driven. Wicket RAD uses annotations to drive form generation (there are both pro’s and cons in comparing that to WWB).
- Wicket RAD makes customizations through Java code rather than properties files (WWB seems to use beanprops files a bit for customizing behavior).
- By default Wicket RAD is component oriented rather than page convention oriented – you can use the BeanEditPanels as a Panel in any page, rather than use WWB in pages by convention.
That being said:
a) I don’t know WWB to well.
b) the differences in approach will probably be appropriate to slightly different problem domains and people.
In general, I’d recommend you to look at the simple sample application that is available for download to get an idea, rather than trust my word for the differences, it will probably give you the best idea of the differences (and what you personally may prefer).
Looks nice! Thanks for contributing.
The JavaDocs could imho use a bit of work, and I was wondering whether you plan to put the code in CVS/ SVN?
Eelco: Code is already in SVN at the Sourceforge location I linked to (I believe it’s https://wicket-rad.svn.sourceforge.net/svnroot/wicket-rad or something similar, check the sourceforge page if that doesn’t work).
Haven’t checked in the samples yet, but all the “core” code is there.
Javadocs will definitely receive a bit of work shortly..
For some reason when I looked at the sourceforge page, it only provided links to CVS (which is empty).
Cheers!
Hi Wille,
Interesting, nice work!
Might be something for GlocalReach to look at, the Seam 2 Web Component framework have wicket integration for the view layer (and actions), so Seam would tie Wicket nicely with the rest of the GlocalReach Platform I think. And the easy form annotations you provide with WicketRAD looks quite appealing.
Cheers,
Nicolai
[...] by Wille in Java, Software Development. trackback Underlying reason/motivation of Wicket RAD Wicket RAD came out of the realization that around 90% (made up statistic, but probably accurate) of all Java [...]