Well, even though the original WebWork was touted as a general-purpose
command architecture, 99% of those who participated on the lists were using
it as a web framework. In this current generation, the distinction is made
even more clear. XWork gives you a basic command infrastructure, and
WebWork2 adds utility classes for web-specific work on top of XWork. So
WebWork2 is basically a web-specific development framework, ala Struts.

In my opinion, and the opinion of many on the early lists, is the Webwork is
very similar to Struts in capability, but much simpler in its design. The
main differences (as I see them) are:

:) 1. The WebWork framework is much smaller than Struts making it easier to
understand the inner workings of the framework. To many, understanding the
innards of a framework is secondary to the ease of a framework's usage, but
I disagree. I am much more in control of the entire development process
(esp. maintenance and debugging) when I truly understand what is going on in
every class. This includes the framework.

:) 2. Building WebWork applications is easier (IMHO) because there is one
less class needed per view. Struts uses an ActionForm bean to function as
the controller in the MVC design, while WebWork combines the controller and
the model into an Action. I prefer WebWork's default approach because I like
the tight binding between these areas. You can always mimic Struts approach
if you don't want this, but it is one less set of classes to develop and
maintain. (That would be nearly 350 additional classes in my current
application.)

:| 3. Both projects enjoy a large user base and developer base. Both
projects have a talented group of core developers.

:( 4. Struts has much more exposure. There are seven Struts books available
as listed on the Struts web page. Struts has an enormous amount of
documentation and quality examples. WebWork is sorely lacking in this area
(a chapter or two in a forthcoming book is a start, but not much). WebWork2
will need to improve its documentation effort greatly, because of the new
pluggable nature of the framework. With more configuration options comes a
need for more documentation. We also need a best practices handbook, and
well-documented examples, not just examples for example sake. And it needs
to be free (as in beer).

:| 5. Organization affiliation. The Apache group has enormous influence on
corporate and media mindshare. They have a well-deserved reputation, and we
all depend on their libraries for nearly every major Java project,
opensource or not. OpenSymphony is a much different organization (size,
scope, $, member base, mindshare, IBM.Sun backing, etc.), but I would
consider that a push. OpenSymphony is more nimble and focused.

:( 6. Stability of codebase is definitely in Struts favor, and it should be.
Struts is older, but not more mature. When deployed, WebWork2 should have
every capability that Struts has in a more compact and easy to learn design.
We should also have more opportunities to configure and extend the framework
for precisely this reason. However, it becomes extremely difficult to
produce worthwhile documentation if the codebase is changing too quickly. I
hope that once XWork/WebWork2 is released, the focus will be on
documentation, bug fixes, and performance improvements for at least a year.

:| 7. Struts has a very componetized view technology, while we will have to
wait until WebWork2 is released before this is fully integrated. I call this
a push, because not everyone likes this approach. We use Velocity for most
of our larger projects, and JSTL for the smaller ones. I have typically
shunned the WebWork taglibs because of the difficult (IMHO) expression
syntax in WebWork 1.3's taglibs. Maybe OGNL support (or JSP 2.0 EL) will
improve upon this, but I believe that Velocity's performance and simplicity
will continue to define our future.

Making a Choice
===============
When deciding which web-based framework you will use for a project, consider
the needs of the project, the skill set of the developers, the long-term
viability of the framework development, any organizational biases or
precedents, and the service and support of the community.

You, as the technical decision maker often need to compare and contrast
frameworks, and from experience, I say that you aren't going to do a very
good job at this if you compare a list of feature bullets. That's marketing,
and you as a tech guy don't give a damn about marketing. You have to roll up
your sleeves and actually use the frameworks.

Fortunately, there is at least one, very well-written application that
provides a hands-on comparison of both struts and WebWork 1.3. I highly
recommend you get the xPetstore project (http://xpetstore.sourceforge.net/)
downloaded ASAP, build it, deploy it, read thru the code and understand it.
(Major kudos to Herve Tchepannou) Only then, will you be able to make a
quality decision.



-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork

Reply via email to