Got a chance to explore JSF, EJB3.0 & Jboss-Seam in one of my projects. The Combination of JSF, EJB3.0 & Seam looks to me a best bet for rapid enterprise application development. Its quite interesting to move and think towards event/component based architecture. It requires some learning curve and unlearning of the traditional way of making j2ee applications with struts kind of framework.
JSF: JST is a java standard, which is being developed by Java Community Process(JCP)
1. JSF is a standard web user MVC framework for java.
2.Clean separation between presentation & business logic.
3.Unified Expression Language.
4.UI Components are stored in server.
5. Easy of Reuse/Plug and play 3rd party UI Components.
6.Facelets for templating & Layouting.
7. Multi client support using render for UI Components.
8.Rapid Application Development Approach.
10. Integration with JSTL.
1.Extensive use of Annotations and get rid of deployment descriptors.
2.Ease of development (All EJB's are simple POJOS with specials annotations).
4.Support for interceptors which is the natural way of aspect oriented programming.
5.Java Persistence API.
6.Lot of best practices from Hibernate is used.
Jboss-Seam(Avoid xml abuse):
Seam is an application framework built to wire EJB3,JSF and Rich Faces (any JSF UI library) to provide declarative application state management for java components. Seam components are stateful and helps state management automatically and avoid problems that arise due to manual state management. It is integrated with all Jboss suite of products (JBPM etc.) making it easier to develop application with one open source vendor.
It really suites for modern day rapid enterprise application development, and does take care of lot boiler plate coding that is required in wiring various components(EJB,JSF, UI library etc.) of web applications. it uses power technique of bijection (injection & outjection) which is one step ahead of IOC.
Jboss tooling plug in for eclipse is a great strength to provide rapid application development with seam. This come as a nice package in the name of Jboss developer studio.
I enjoy anything that reduce development effort and writing code that doesn't requires any intellectual thought. One thing still not clear to me is the kind of performance and scalability constraints of JSF natured applications.
Some Interesting links,