I want to introduce a question that perhaps some of you are wondering. Even if you are not,
you should be.
Should I be using Seam?
If you are using
JSF, my professional recommendation is that you would be crazy not to use Seam. Adding Seam to your application does not take away from your JSF investment in any way. It doesn't make your application less "pure". And it doesn't lock you in to
JBoss AS in any way.
What Seam does do for you is make your JSF problems just melt away and it gives you far more control over each request. Just to name one feature (and what got me into Seam) is the front controller (called page actions) that it brings to JSF. It also makes you a heck of a lot more productive. I have yet to hear and argument as to why you shouldn't use Seam if you are using JSF.
As for the rest of you, Seam has something to offer that few other frameworks provide. Conversations and state management. When you are developing a
Struts or Spring MVC application, where do you store variables? Do you store them in the HTTP session? That gets you into trouble with memory and cross browser tab interference. Do you store them in hidden fields? That sure is a lot of work and how to you preserve object identity? Do you use request parameters? Request parameters are the same thing as hidden form fields. Seam gives you either the page or conversation scope where you can store data for a sequence of requests. The conversation is especially useful because it works even when using ad-hoc navigation.
As I always say, software is never perfect. But Seam has stuff that other frameworks simply don't have. The best part is, if you are Spring developer, you don't have to give up Spring to use Seam because the integration between the two is quite good.
As a final
word, I will say that if you are serious about learning Seam, then you have the best chance of achieving your goal if you read Seam in Action. This is not a shameless plug, this is a service to you. I put every last ounce of energy into identifying all of the ins and outs of Seam and distilled them into one convenient location for you to consult. The more successful you are with Seam, the happier I will be.
[ August 06, 2008: Message edited by: Dan Allen ]