DZone recently sat down with Jay Balunas, JBoss RichFaces Project Lead and author of the DZone RichFaces Refcard. In this interview, Jay delves into some of the key features of the RichFaces component library, reviews some of its constituent tag libraries and provides a brief preview of what we can expect to see in RichFaces 4.0.
Special Offer: DZone has also partnered with Apress to give away a free copy of Practical RichFaces, by Max Katz. In order to qualify, simply download your free copy of the JBoss RichFaces Refcard. The winner will be announced on this thread.
DZone: Jay, can you tell us a little bit about yourself and what you're working on these days?
Jay Balunas: Sure, my name is Jay Balunas and I recently became the RichFaces project lead for JBoss. Prior to that I was working primarily on the Seam framework. I have been architecting and developing enterprise applications for over ten years specializing in web tier frameworks, UI design, and integration.
Recently I have been focused on planning the 3.3.1 and 4.0 versions of RichFaces with the team. There is a lot to be considered while JSF 2.0 is being finalized. RichFaces 4.0 will be a major release for the project with full JSF 2.0 integration. I'm also focused on building RichFaces community and making the project easier to develop, and contribute to.
DZone: What are some of the biggest challenges associated with RIA UI development today?Jay: RIA UI developers must overcome many hurdles especially if attempting build an AJAX application without the assistance of the component library such as RichFaces. Tackling the various browser issues and the complexity of Java Script can be daunting. This is compounded by the ever present threat of shifting requirements and how to manage those changes in your application.
DZone: How is RichFaces differentiated from other RIA frameworks?
Jay: RichFaces is a large, mature component library with many examples and an active user base. This means that it is heavily tested with good browser support. RichFaces also offers many options when it comes to the design and functionality of your application; you can use components as is, or construct your own functionality from core tags. Through it's integration with the Seam framework, JBoss Tools, Portal containers, etc... RichFaces can be used in many environments and for many applications.
DZone: RichFaces has two main parts: AJAX enabled JSF components, and the CDK (Component Development Kit). What exactly are these and how do they work together?
Jay: The AJAX enabled components are pretty much self explanatory, but do come in two flavors in RichFaces. Core a4j: components and ready to use rich: components. The CDK provide users with the ability to create custom AJAX enabled components easily to construct nearly any functionality they require.
DZone: What's the difference between the a4j: and rich: tag libraries?
Jay: This is how I like to envision the difference. Think of the a4j: components like the aisle at the hardware store with sinks, plumbing, and adapters. You can build a really nice sink just the way you want, and even use some of your existing hardware. The rich: components are more like sinks and bathrooms that you pick out of catalog and they arrive ready to install with all the options available.
DZone: Which IDE would you recommend for developers for RichFaces?
Jay: I would recommend JBoss Tools, a set of plugins for Eclipse. It provides excellent integration with RichFaces and many other technologies like JSF, Seam, and Hibernate.
DZone: What exactly is Skinning in RichFaces?
Jay: Skinning is a nice feature that allows users to completely change the theme and style of their applications easily and at runtime if needed. You can create custom skins and reference the values in any part of your application for a consistent style and color scheme.
DZone: What are some of the most popular components for building business applications?
Jay: There are many - the various data grid components, calendar, list shuttles, and others. There are also some new components that I think will be interesting to many users, especially the WYSIWYG editor for formated text entry, and the queue components that allows throttling of your server requests. I encourage the readers to check them all out at the RichFaces project page .
DZone: How will JSF 2.0 affect RichFaces development?
Jay: The goal of RichFaces is to make the transition to JSF 2.0 as simple as possible for our community and make it easy for them to use the new functionality. RichFaces 4.0 is going to be a huge release for us and its primary feature will be JSF 2.0 integration. Not just compatibility but really taking advantage of the new features in JSF 2.0. Several of the updates in JSF 2.0 have a RichFaces heritage, and Alexander Smirnov has been working on the JSF 2.0 expert group to make sure that it will fill the holes in JSF 1.2 AJAX support. You can track and participate in the discussion at the RichFaces design forums .