4. Summary: NetBeans RCP and the DCI Architecture

DCI is a natural fit for Agile software development. It allows programmers to connect directly with the end user mental model

article at Artima about DCI

4.1. A New Vision of Object Oriented Programming

Figure 3. "Augmented" DCI in the NetBeans RCP

"Augmented" DCI in the NetBeans RCP

In these short essays we've seen how NetBeans Platform programming naturally fits the DCI Architecture.

  • You use Java interfaces and classes, inheritance and composition to represent what objects are. You use NetBeans nodes to represent how objects are visually presented to the user.

  • You use Java interfaces ("Cookies" in the old NetBeans terminology) to represent what objects can do, to build the so called methodless roles in the DCI terminology. You implement those interfaces to build "methodful roles".

  • You use the NetBeans Lookup Library to glue what-objects-are and what-objects-can-do.

  • You use Swing actions (or its derivative "Context aware actions") to represent interactions explaining how the user interacts with the GUI. The NetBeans Platform contains a great set of predefined actions for saving, printing, editing, opening and closing files, compiling projects, etc. You can reuse these in your own GUI applications, so you don't have to code them again and again.

  • The NetBeans Platform holds a context that automatically enables or disables actions for you, and selects which actions are relevant to a use case. This context modifies the pop-up menus and even the window contents depending on the objects you select in the GUI. You don't have to program this functionality, and it comes "for free" when you use the NetBeans Platform for GUI development.

  • Finally, the NetBeans Platform separates what-objects-are from what-objects-do from how-objects-are-represented, by means of the NetBeans Nodes API. This further improves mainteinance and flexibility.

Add to that a whole bunch of functionality, ranging from integration with Ant, lexers and parsers, powerful Swing editors and components, a best-of-class Windows API, support for templates, to-do task management, J2EE support, powerful XML visual handling and powerful Swing components to support for modern dynamic languages suchs ar Ruby, PHP or Scala.

Mix all that with a ten-year experience, tight API reviews, a sound modular system and a vibrant Community and you have a sound and powerful way to build applications based on the "New Vision of Object Oriented Programming", today.

4.2. Further reading

There's a lot of documentation out there to learn NetBeans RCP development. Some links you may find of interest are these:

As a final word: as far as I understand the NetBeans Platform is the quickest way to this "New Vision of Object Oriented Programming". I'm happy I started learning NetBeans RCP ages ago. It takes a little bit getting used to it, but in the mid term the NetBeans Platform pays off.

I wish you enjoy the NetBeans Platform as much as I do. If you decide to learn it then all I can say is "Welcome to the New Vision of Object Oriented Programming!!".