Monday, April 14, 2008

Net Beans (6.1) Page Flows

I like NetBeans... I no longer use it professionally, but I like to keep tabs on it. Every few months they add something pretty cool, and if you watch closely you can see some interesting trends.

My favorite part of the latest NetBeans (6.1) is the "Page Flow" view that you can get when looking at the JSF configuration file "faces-config.xml":

(NetBeans Screen Shot)

I like diagrams. I like being able to see what's going to happen when I click on the "Create Button" on "Page1". It's not so much that "Pictures are Worth 1000 Words"... It's a matter of clarity. There's no ambiguity about what's going to happen.

Professionally, I do all of my software development using a Process Model oriented development environment (Lombardi Teamworks). I create Process Models and those Models are executed by an Engine.

(Obligatory notice: I am an employee of Lombardi Software, but the opinions and advice presented here are my own.)

My Models are mostly represented by Diagrams... many implementation details are still Language Based, but to get to those Language Based assets I can drill-down through the elements of my Diagrams.

NetBeans' Page Flows are reminiscent of my Process Models. They graphically depict the flow from one page to the next. I can drill-down through the elements of the Page Flow to get to the definitions for the JSP pages.

(Teamworks Screen Shot)

My Process Modeller and NetBeans both handle all of the navigation between the configuration files and source files for me... I don't have to track down references... the tool does is for me.

I have not seen a lot of evidence that the NetBeans guys are consciously heading towards making Page Flow the centerpiece of the NetBeans IDE... but perhaps they'll stumble into it. It's a short trip from a Page Flow Editor to a Graphical Programming Environment...

We are overdue for an IDE shakeup... For the past 10 years or so, the Navigation aspects of IDEs have pretty much stagnated. Open up pretty much any IDE (NetBeans, Eclipse, etc) and you'll see a hierarchical tree of Folders on the left side of the screen. The items in the hierarchical view may differ, but they're usually either files or an object hierarchy... very useful for navigating the structure of the code, but almost useless for relating an aspect of a running application to the code that is responsible for that part of the application.

I'd like to see someone take a crack at replacing the Hierarchy Oriented Navigator in NetBeans with a Model Oriented Navigator...

When working with a Web Application, the Page Flow is the "Model": So why is it buried several levels down in a Folder Tree?

The Page Flow and the Web Pages are the most visible aspects of the Web Application, and they are the places where you are most likely to turn whenever you need to fix or extend the application in the future... Shouldn't they be the most prominent aspect of the Web Application Navigation Pane?

For those of you who actually work on the NetBeans project... You're probably thinking that I'm a nut. The Project Navigator simply reflects the structure of the files in the underlying Java Frameworks... As far as NetBeans knows, "faces-config.xml" is just another configuration file, so that's why it shows up with the other configuration files.

So who should lead? Should NetBeans nudge us down the Model Driven path, or should a Model Driven Framework nudge NetBeans towards becoming a Model Driven development environment? Or is the status quo in IDEs just fine?

Post a Comment