This week's book giveaway is in the General Computing forum.
We're giving away four copies of Emmy in the Key of Code and have Aimee Lucido on-line!
See this thread for details.
Win a copy of Emmy in the Key of Code this week in the General Computing forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Junilu Lacar
  • Jeanne Boyarsky
  • Bear Bibeault
Sheriffs:
  • Knute Snortum
  • Devaka Cooray
  • Tim Cooke
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • Ron McLeod
  • Carey Brown
Bartenders:
  • Paweł Baczyński
  • Piet Souris
  • Vijitha Kumara

WebWork, OpenSymphony

 
Greenhorn
Posts: 18
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Mr. Porter

I understand WebWork runs on OpenSymphony. Are these both "free" frameworks or is there licensing? Can you give a quick comparison between WebWork and Tapestry, and in particular what would you say the learning curve might be like compared to Tapestry? Or perhaps you could let us know if WebWork might be more extensible than Tapestry?

Excuses in advance if my questions are too many and too broad.

Thanks,
Peter
 
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
WebWork/XWork, along with Sitemesh, Quartz, OSCache, and a few other projects, are part of the larger OpenSymphony project/consortium, similar to Apache or Codehaus. All of the projects are available as open source and license under the OpenSymphony License, which is a modified Apache license. (For clarification, most of the projects will be moving to an Apache License v.2 in the near future).

Inside of OpenSymphony, there is a project called OSCore which includes a number of general utilities. WebWork and XWork both utilize this small library.

With regard to a comparison of WebWork and Tapestry, I will attempt to answer this question as best as possible; however, please realize that I am far from a Tapestry expert. My experience is limited to playing to see some of the slick things it can do. Please feel free to correct any mis-statements I make.

WebWork is designed around the principle of the command pattern. In fact, it is really a wrapper XWork - a generic command-pattern framework. Wait... wait... Wrappers, command pattern, etc. Does one need to know this all in order to write effective WW code? Some may disagree, but I think not. As a WW developer your focus is primarily on the execute() methods of your Actions. This method contains the logic that is responsible for executing your logic and then sending the request to some "view" for output. For example, a basic CRUD Action would look something like this:



Inside of the view code, parameters are being passed in for user.firstName, user.lastName, etc. These are set directly on the User object provided by the getUser() method above.

With WebWork, an underlying goal is get away from the intricacies and problems associated with the HTTP/HTML world as fast as possible. The application logic is separated away from the view technology as much as possible. Most WW developers advocate staying away from the request and response objects as much as humanly possible. For example, one of our internal has a few dozen Actions with only 2 tied to the servlet API. This makes it significantly easier to test and develop with the use of mock objects.

From my brief introduction to Tapestry, it provides a component driven model. With this, you get the framework involved in it - a powerful framework once you overcome the learning curve and the inability to potentially leverage current skill base - JSP, Velocity, Freemarker, etc. Personally, I think tapestry is tied into itself too much and is too heavy.

Personally, I found the WW framework significantly easier to learn and to teach others. I hope that answers the question or starts you on the right path (WW ). Feel free to ping me with any additional questions.


Cheers,
Matthew
 
a wee bit from the empire
Java file APIs (DOC, XLS, PDF, and many more)
https://products.aspose.com/total/java
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!