views:

71

answers:

1

I am building a large application that will be hosted on an AWS server. I'm trying to select a web framework for assisting me with code organization, template design, and generally presentation aspects.

Here are some points of consideration:

  • Require security/login/user authentication. I may add the ability in the future to allow more than just an administrator to access the web app, but it is not a public facing website.
  • AJAX support would be helpful. There are a couple widgets that I don't want to recreate. One is a tree object, where the user can expand/contract items in the list, can create new branches, add/edit objects. This would be better off in some dynamic view rather than all done in ugly html.
  • Generally, this is just to provide the application with a face for control, management, and monitoring. Having an easier time adding buttons, CSS, AJAX widgets are great additions though, but not the primary purpose.

I'm considering:

  • Wicket
  • Spring
  • Seam
  • GWT
  • Stripe

and the list goes on, as I'm sure you all know. I originally planned on using GWT, but then started to feel that GWT didn't cover my primary needs. I could be wrong about this, but there seems to be a lot of support for GWT AND Wicket/Spring. All of this 'getting lost in java frameworks' got me thinking outside the java realm for a framework that would suit my needs that was a clear option, like:

  • JRuby/Rails
  • Jython/Django
  • Groovy/Grails
  • Guice (just throwing this in there... I don't clearly understand the main purposes of all these frameworks. It doesn't seem like DInjection is something I need for a single purpose application)

Thanks as always. This community makes Googling for esoteric programming information an order of magnitude better.

+2  A: 

Your problem is perhaps that there are a lot of good options out there, making it hard to say one is "right" while another is "wrong".

I wonder if another way of looking at it may help. Is there one (or a combination) which you particularly want to learn and use? Any of them which you think would help you career-wise, e.g. lots of jobs in your area require Spring so that would be a good career boost?

Bottom line everything you mention is basically capable of building your app. They have very different characteristics so I don't think you'll find a technical solution to your dilemma.

Personally I would go for Spring and GWT but just because I like them :-)

Brian
Hey Brian, I agree with you. It does seem that most of them can do what I need. I have taken a more in depth look at GWT and really like what I see. I can't quite figure out what GWT is missing though as far as it being a complete 'application framework'. I imagine you know as you suggested Spring in addition to GWT. I am leaning on Wicket over Spring. Anyways, So what does Spring provide in addition to GWT? Thank you
Bijan
I like GWT for its slick, attractive UI (especially in conjunction with other toolkits, e.g. SmartGWT) which I can write using Java, not Javascript. I don't consider it a complete "app framework" in its own right though: Spring provides good security stuff, and good DB integration, plus it can integrate well with GWT's remote method invocation mechanism. In other words I see them as a good complementary pairing. Plus: both are popular and in-demand so you'll be well served by learning them.
Brian
Thank you for your thoughts Brian. I will take your comments into consideration. If I stick with Java (as opposed to Python), I will either be going with Spring or Wicket in addition to GWT.
Bijan
You're welcome. Enjoy!
Brian