Hi John,

1. Capitalise on what I already know, but maybe dispense with Struts (using Spring MVC instead). I.e., go with Spring MVC, Spring, Hibernate.

2. Go with Wicket, which looks interesting.

3. Go with RIFE.

Which do you recommend? :-)

Hehe, trick question ;-) We do everything with RIFE so I would recommended that of course. However, Wicket is a fine choice too.

You can using Spring together with RIFE, and Hibernate also. We actually advocate using Spring as an IoC reference factory since we didn't bother writing our own, we only focused on the injection part. You will however miss out on some of the nice integrations of our persistence layer when you use Hibernate. However, nothing prevents you from using Hibernate for certain things and use our ContentQueryManager when you want easy integration with our content management framework, for instance (http://rifers.org/wiki/display/ RIFE/Content+management+framework).

While I only briefly glanced at SpringMVC, I wouldn't recommend it. It seem too difficult and not very intuitive. When I spoke to some Spring guys they actually said that it was a framework to build other frameworks with.

Seriously, I'd be interested to hear your impressions of Wicket and how it compares with Rife (or more accurately, part of Rife).

Comparing RIFE with Wicket is difficult since you're comparing totally different approaches. What I don't like about Wicket is that you're forced to think of everything as being a component, while many web functionalities really are simple request/response actions. RIFE combines both of these and make any action handler a reusable component (http://rifers.org/about).

The thing I like most about Wicket is also the biggest flaw imho: you do everything in Java in a similar fashion as Swing. During the coding this is certainly very nice and you can write everything here and now. However, when looking at code that someone else wrote, you have to read all the sources to get an idea of how everything relates. There's no single overview that summarizes the logic flow and data flow for you. It's thus very difficult to gets a complete view of how your web application interacts with the outside world (ie. the RESTful API of your application). Note that RIFE doesn't force you to use XML for your declarations, you can do them in Java too if you want (or Groovy or Janino: http://rifers.org/wiki/display/ RIFE/Site+structure+and+element+declaration+without+XML).

Some approaches are the same: we both allow reusable component libraries to be packaged as jars and we also both value logicless templates. Wicket's template engine is however totally geared towards (X)HTML, while we use it for anything text related (email messages, XML generation, SQL, ...) (http://rifers.org/wiki/display/RIFE/ Bidirectional+template+engine).

Something you also don't get with Wicket (nor any other Java web framework that I know of) is our constraints feature. You declare rich meta-data on your beans and they are automatically picked up by all the other layers in the framework. This provides you with a single point of declaration that propagates consistently through your entire application (http://rifers.org/wiki/display/RIFE/Constraints).

I also suggest that you read over a mail that I wrote when someone asked about a WebWork/RIFE comparison, it contains a number of points that I didn't repeat in this mail: http://www.uwyn.com/pipermail/rife- users/2004-September/000643.html

I hope this will make it easier for you to make a choice.

Best regards,

Geert

--
Geert Bevin                       Uwyn bvba
"Use what you need"               Avenue de Scailmont 34
http://www.uwyn.com               7170 Manage, Belgium
gbevin[remove] at uwyn dot com    Tel +32 64 84 80 03

PGP Fingerprint : 4E21 6399 CD9E A384 6619  719A C8F4 D40D 309F D6A9
Public PGP key  : available at servers pgp.mit.edu, wwwkeys.pgp.net


_______________________________________________
Rife-users mailing list
[email protected]
http://www.uwyn.com/mailman/listinfo/rife-users

Reply via email to