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