May 20, 2010 by huionn
Today my boss asked me to propose a platform for rapid prototyping/RAD. Instead of Spring ROO, I suggested to use JBoss SEAM as the platform.
After using the existing application developed in Oracle ADF UIX (UIX is a de-supported technology which preceded JSF), I realized that it is bloated but interaction-rich application. There are a lot of dynamic web components in every pages. In my opinion, JSP is more suitable for web sites whereas JSF is more suitable for complex web applications. The display logic and event handling of each web components in JSF are encapsulated in the managed beans. It is good because of “separation of concerns”. In MVC of JSP, controller handle the events and the display of components are coded in EL, scriptlet and/or JSTL/tags.
In addition, JSF is more natural for developers used to visual development in Oracle ADF. Considering Oracle ADF, JDeveloper provides very nice visual development. The web components can be drag-and-drop into pages. The data binding (xml) behind it is very complex. Oracle promotes its data binding in JCP 227. Fortunately, JSR 299 – CDI which is relatively transparent was adopted instead. Yeah, JBoss SEAM was behind JSR 299 – CDI and its reference implementation is now Weld (split from SEAM).
There are many advanced concepts in SEAM such as dependency bijection and stateful conversation (available in Spring Web Flow and Oracle Taskflow too).