I am someone who tends to learn and retain things better when I have some practical way of applying the theories and techniques I am studying. So it was fortunate that about the time I decided to take a serious dive into JSF, I knew someone who was looking to construct a web-based work order management solution for their privately held logistics company.
As a firm believer in the Open Source movement and a fan of the Apache Software Foundation, I decided to work with the MyFaces project and leverage the Tomahawk component library. I became intimately familiar with David Geary and Cay Horstmann's "Core JavaServer Faces" book (both the first and second editions and I am anxiously awaiting the release of the third edition). The experience was immensely rewarding and extremely educational!
It was equally frustrating and tiresome. My frustrations primarily arose from from two sources:
- backing beans and database persistence
- XML configuration files
The first point was a pain I brought on myself by electing to not use Seam and Hibernate. In my defense, this project was intended to be a learning experience and as such I wanted to stay as close to the metal as I could. I also subscribe to the notion that if you are forced to do things the hard way, you are in a better position to appreciate all the benefits that frameworks such as Seam and Hibernate have to offer.
Dealing with XML configuration files was not hard, it was just tedious. While I cannot cite specific sources, I recall reading that the architects of JSF did not intend for programmers to deal directly with these files. The intent was that the Integrated Development Environments (kudos to the Java Studio Creator team) developers would use as they dragged and dropped their way to building and deploying amazing JSF-based applications would be responsible for maintaining configuration files in the background.
However, my enthusiasm for the JSF framework remained steadfast and I followed the developments of the 2.0 iteration of the spec with great interest and anticipation. I frequently read Ed Burns, Jim Driscoll and Ryan Lubke's weblogs as the reference implementation was developed under the Mojarra Open Source project. Andy Schwartz has a great summary of the new features included in the JSF 2 platform.
I hope to use this blog as a way to share my experiences developing applications with the JavaServer Faces framework. If you have made it this far and are interested in reading a little more, I wrote a tutorial guiding one through the process of getting the JSF 2 framework running on the Google App Engine platform.
No comments:
Post a Comment