Java: A platform for platforms
Sun's reorg may seem promising to shareholders but it's also a scramble for position. The question now is whether Sun can, or wants to, maintain its hold on Java technology. Especially with enterprise leaders like SpringSource and RedHat investing heavily in Java's future as a platform for platforms

Also see:

Discuss: Tim Bray on 'What Sun Should Do'

Featured Whitepapers
Newsletter sign-up
View all newsletters

Sign up for our technology specific newsletters.

Enterprise Java
Email Address:

Can JSF speed up Web application development?

A test-drive of Java Studio Creator

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone

JavaServer Faces was developed with IDEs and rapid development of Web applications in mind. But is JSF living up to its promise? Can an IDE built around JSF potentially improve our productivity? Can such a tool help us create and deploy functioning Web applications faster than currently available options? The best way to answer this question is to test-drive one of the current IDEs that support drag-and-drop JSF development and attempt to develop a real Web application, a task I describe in this article.

My experiment includes the following particulars:

  • The tool selected: Sun Microsystems' Java Studio Creator (JSC), a choice that, of course, is debatable. Reasons for this selection include fairly good reviews on the Web, its selection as runner-up for Developer.com's 2005 Development Tool of the Year (behind Eclipse, so it's perfectly understandable why it was only a runner-up), and, price (9). There are a number of other tools in this space, many of which, based on a quick review, are worthy of deeper exploration. Some don't provide drag-and-drop functionality, but have other nice features. These IDEs include:
    • Borland JBuilder 2005 Enterprise
    • Eclipse with Exadel Studio Pro
    • Eclipse with Nitrox JSF IDE
    • IBM Rational with JSF support
    • Macromedia Dreamweaver with JSTL and JSF extensions
    • MyEclipse with JSF Developer
    • Oracle JDeveloper
  • The project: A simple Web application that searches an employee database.
  • The developer: I am a reasonably competent developer with infrequent flashes of astonishing brilliance balanced by equally infrequent flashes of profound stupidity; lots of Java development experience; quite a bit of experience developing Web applications with servlets, JavaServer Pages/JSP Standard Tag Library, and Struts; and a basic understanding of JSF. I'm fairly skeptical about using IDEs for real software development. Before starting this project, I spent a few hours playing around with JSC to get somewhat familiar with its capabilities.

Now that the particulars are out of the way, I'm ready to start developing.

Time: 8:00 a.m. I fire up JSC on my laptop at the coffee shop. The first screen looks like this (it may look a little different on your machine, depending upon how you've configured your panels):

Figure 1. Click on thumbnail to view full-sized image.

I select Create New Project. I type JSFExperiment for the project name and click the OK button. The initial design project comes up and looks like Figure 2.

The window resembles the NetBeans IDE, of course, because JSC is built on NetBeans. In the bottom left panel is the actual page I'm working on, with tabs for a visual layout and the page source.

To the left is a panel that allows me to navigate through the pieces of my Web application, including the pages, the session, and application beans. The top right panel has several tabs, which I explain in more detail below. By default, the project is created with a single JSP page.

The JSC download comes with the platform edition of Sun Java System Application Server, which eases the deployment and testing of JSF applications developed with the tool. Alternatively, we could install Tomcat and add/configure JSF support, but having a Web container included with the tool, with built-in JSF support is certainly helpful. There's also a SQL database server (PointBase) installed to support creation and testing of Java Database Connectivity (JDBC) functionality. In addition, a JDK is included along with plenty of documentation. All this makes for a large download, but the cost of a few (hundred) MBs is offset by convenience.

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comment
Login
Forgot your account info?
Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources