Since there are many java web development available, and each have their +ve & -ve sides. But they all try to solve a common problem ( Better scalability, standard, easy to use ..... etc. ). Then how to evaluate a pirticular framework. Which frame work to choose for a large project which requires performance and should be easy to maintain. Virtually every large project now a days uses Struts, some times with spring.
I don't have much experience on these frameworks. If you people have exeperience or knowledge of these framewokrks or some other. Then please provide your comments
Originally posted by Bear Bibeault: What makes you think a framework is necessary at all?
It's quite easy to create a simple Front Controller (if desired) without all the baggage that large frameworks bring to the party.
For me a framework is more the "collective experience of others" rather than baggage. It is more the question of who has the best implementation of our everyday needs than "do I use a framework?". Down the road I always come up solving the same problems over and over again. Why not use a framework which is polished and tested?
That aside when it comes to choosing the framework things get tricky. I've used JSF and Hibernate. JSF being on topic here as I guess the question is geared to the MVC side of frameworks.
When choosing I like to have two main criteria: -MVC: in the understanding that I can move from web to Swing practically overnight. -Testing: are test units easy to implement.
I found Struts to be to intrusive and more of an MVcvC (if you'll allow me the expression) type of framework. Making it harder to move from a servlet environment to a Swing.
JSF with its managed beans has a very easy way to create tests. It is also easy to move away from web to Swing. Except that JSF doesn't (at least as far as I know) provide a controller fro Swing. So you fall into doing your own controller.
I've been looking more and more into Spring with its WebController and BaseController and I think this is they way to go. Not only does it allow me to keep my logic away from "servletish" implementations and easy to test. It provides both a web and GUI controller. It also looks much more modular and lightweight than JSF.
For those interested here is a link to some documents showing how to move from web to GUI relatively quickly.
A framework MAY make life easy. But don't just use a framework because it's "cool" or because "you're supposed to", those aren't valid reasons. And certainly don't use a particular framework just because "it's what everyone else is using so it must be the best" or "it's company policy to use it", carefully select what you're going to use based on your particular requirements. Using Struts for something that will have a million lines of backend code all producing some output that will be shown using a single html page (more about that later) is the wrong choice for example. In fact using a web interface for that thing might be the wrong choice... It may well be far better to create a very small Swing application or applet.
I've seen applications where things were used for the wrong reasons and they're generally horrid both to use and especially to maintain as the developers had to twist and hack themselves into corners to make their requirements fit the tool/library/framework rather than selecting the tool to fit the requirements.