Yee CN schrieb:
Hi Andrew,

Can you please share your experience with SEAM? It is production ready? I heard something like that it is hilariously slow in starting up…


I am not Andrew, but I can comment a little bit.
First both Seam and Shale are beta, so if that is an issue stay away.
Secondly both are developed by really experienced experts in their fields.

But now for Seam, don't even bother with the beta release, it has too many bugs, go straight for the CVS version. Besides that I did a small program with it and was very impressed, the thing I did seemed to be relatively bug free in its base (Seam), but I cannot say how it scales to a big program. Seam has the disadvantage it is an all or nothing approach you basically have to use the foundations, while Shale basically as I saw it does not force you to anything.

The plus sides of Seam is that it is definitely a huge lines of code saver, with many things done implicitly by the framework which normally add a certain code overhead.

The downside is, that the project setup and deployment currently is somewhat quirky, either you program into one of the example programs as a starting place or you will have a rough time to get the correct project and library layout upfront.

As for real world experiences in bigger projects, probably you should ask in the Seam forums on jboss.org, but have in mind, this stuff is beta!



Is there any gotcha? I had a quite look at it a while back, and find it quite interesting, although I was a bit turned off by it heavy lean towards ejb3. I find raw JSF painful to use – and I am seriously
Well seam basically is JSF interwoven with EJB3, the thing is, basically every session bean becomes automatically a backend bean, so you program the entire backend code all three tiers in EJB3. If you do not like that stay away. Also using ejb3 entity beans is implicitly forced upon you because you get all the benefits automatically, like injection of the entity manager, transactional handling. Seam adds to the mix injections of jsf contexts, handling of datalists data injection on the backend side, and a really interesting scoping with a @begin and @end annotation.

So if you do not like ejb3 you definitely will not become happy with Seam at all. After all Seam is a jboss baby, and they also have a financial interest into pushing EJB3. (Which in case of Seam is really forgivable, because it really brings a lot of new stuff to the table) Seam has the huge advantage that you get way less xml than with pure JSF, but there are many things which also can be achieved by other means.

I will give you a small comparison:

Annotated backend beans, this is stuff currently unique in Seam, but that soon hopefully will change. Scoping and dialog mechanisms: You get that in shale dialog, and with t:saveState in the Tomahawk extensions (the t:saveState is probably the easiest to use, because you just have to set a control, while Shale needs another XML file describing the dialog flow)

Binding into EJB3/Hibernate you can achieve some of this stuff also with Spring which allows transactional handling, also with annotations if you want instead of XML (Spring has Transactional annotations optionally)

All of this is still a tad more painful (except saveState) probably, but if you do not want to go with EJB3 or with some beta stuff, it is another option to the whole mix.

considering migrating to one of the combinations you mentioned once I got a chance to do so.

There are millions of ways to combine things, that is a huge strength in the JSF world, the people who did the standardization by far did not a perfect standard, but it is very good in being open, alterable and expendable.

Reply via email to