Should we change AppFuse to be Struts 2-specific?
Dusty recently posted an interesting idea to the AppFuse developers mailing list:
After thinking/coding/reading for a while I think the more interesting
task is: Retool AppFuse to be one or more Struts2 plugins based on
various higher level app patterns. (AppFuse Facebook, AppFuse
Employee DB, AppFuse Blog, AppFuse Basic LDAP, AppFuse Basic Crowd).
This all comes from the fact, that I have been wanting to refactor the
AppFuse web layer for Struts. One of the interesting aspects of
AppFuse is that it works pretty much the same across all its web
frameworks. It does so with some lowest common denominator
abstractions that can be ported and look and work the same across
frameworks. I have picked my tool(s): Struts 2 and Ruby On Rails when
I want to pretend I am young again. I know Spring MVC, JSF, etc. but
I have no desire to build significant apps on those platforms. It's
not because they suck and Struts2 rules, it is because I know Struts 2
the best, I am most efficient there and it provides everything I need
to build great webapps (Let's not devolve to a framework debate). So,
I would rather have a more Struts 2-specific web stack, that really
leverages conventions born and raised there. The nice thing about the
Struts 2 web stack is that it is complemented nicely by AppFuse's data/service layer, since unlike Grails or Rails, Struts 2 has no data or service layer.
[Read More »]
Seems like a good idea to me. What do you think?
Someday I'd like to come up with a "compatibility test" that allows others to improve upon the ideas in AppFuse and develop their stacks independently. A suite of Selenium tests that require extensionless URLs might be a good start.
Posted by 217.194.34.103 on May 29, 2008 at 03:56 PM MDT #
Posted by Matt Raible on May 29, 2008 at 04:15 PM MDT #
I'm not so sure that Dusty's idea replaces Appfuse, so much as adds to it. There's a need for Appfuse for those that are studying/comparing web frameworks - or that want a boost when starting an application.
But there's a lot left unsaid by Appfuse that are still the core parts of any application. And more and more of us are looking at specialized application types such as FaceBook, Blogs (one of my current apps needs an integrated blog now), etc.
For example, Appfuse' registration/signup is not at all like the signup process on most web apps you will find out there - i.e. you signup, and email gets sent, your click on it to activate the account. I can understand why that is not a part of appfuse as it would have to be done in all the frameworks. But it would have real value if it could be done as a plugin or packaged in a similar manner.
With all the rev's going on in all of the frameworks, keeping up can be tough - Matt and crew have done an admirable job. I cannot believe the hours I see them spending answering the same noobie questions patiently, over and over. Thanks!
I'm not saying to drop Appfuse, but maybe concentrating on some application plugins for Struts2 as Dusty suggests would be a good thing.
Posted by Richard on May 29, 2008 at 05:16 PM MDT #
I'm not sure how you could make this portable as well.
It'd be great to have appfuse have a "make me a site" wizard that lets you do checkboxes for:
etc. but this is far beyond what the intended goal of AppFuse was (to jumpstart you into a web framework w/ a reasonable layout of files/directories and build files). This would be more of a web site jumpstart feature on top of AppFuse, but I have no idea how you'd be able to maintain all the features across all the frameworks AppFuse supports. It'd probably be a royal PITA :-P
On the other hand, this would also give you an idea of how well each of the frameworks handle optional features which would be enlightening for those of us who have enjoyed your framework comparos...
Posted by Ken on May 29, 2008 at 05:42 PM MDT #
Having spent a lot of development time with Rails in the last two years I must say that Java is far behind when developing web apps.
IMHO it would be a good idea to concentrate on one framework because one thing I like about Rails is that it is "optionated software". Some clever guys did all the work and provided a full featured stack for me ready to get started.
The Java world needs something like Rails but I doubt it can be Grails. Grails uses Spring and Spring is today what EJB was 6 years ago. On the one hand it's brilliant, but on the other it's bloated and too academic (look at all these weird class and interface names).
I'm writing an application using Spring and Struts2 at the moment and it's so slooooooooooooooow to develop with compared to Rails. But having used SpringMVC in the last large project, I'm glad to return to WebWork (Struts2).
AppFuse is one of the best things ever happend in Java land. It saves me so much time. So - thanks Matt - you're brilliant!
Posted by Lars Fischer on May 29, 2008 at 07:53 PM MDT #
If Appfuse Lite kicks around I wouldn't be effected.
We spent a year working with Struts 2, and at that point decided to change to Wicket.
There has been no looking back.
I hope I never have to use Struts 2 again.
(the answer to the simple maths question is 42 ;) - that gave me a smile)
Posted by Ned Collyer on May 29, 2008 at 11:56 PM MDT #
Posted by Matt Raible on May 30, 2008 at 12:08 AM MDT #
Posted by Sing Chyun on May 30, 2008 at 03:15 AM MDT #
>>Ned - what do you mean by "kicks around"? It sounds like you're not an
>>AppFuse user and your main opinion is you prefer Wicket over Struts 2.
Kicks around = stays :)
It's not that I prefer wicket really.. its that i do not prefer struts to the alternatives.
Given the choice, I would use SpringMVC over Struts2, or delve into Tapestry.
So tooling for those other technologies would be much more useful for me than tooling/patterns for struts.
I have a distaste for Struts 2.
Last time I mentioned my frustration (on this blog), a Jira bug in struts got a lot of attention - merely because I mentioned it here where the public could see.
Anyway, a few months later it got closed because it was too difficult to fix. This was simple handling of checkbox lists - and "unchecking" them if the backing object was in the session.
That approach annoys me.
All personal opinion of course.
Posted by 202.171.174.101 on June 02, 2008 at 11:18 PM MDT #
Hmmm, I suppose the title "Should we change AppFuse to be Struts 2-specific?" expresses in fact the essence. Therefore my plain and totally biased opinion: no.
Val.
Posted by 217.194.34.103 on June 04, 2008 at 09:09 AM MDT #
Posted by Tony on November 17, 2008 at 05:37 AM MST #