Essential NetBeans Platform Refcard Released: Meet the Author
Join the DZone community and get the full member experience.
Join For FreeThis week we release our Essential NetBeans Platform Refcard, introducing you to the NetBeans APIs, while giving you an overview of everything that the NetBeans Platform can do for you. Here we catch up with one of its six authors, Geertjan Wielenga, to find out more about this refcard. It is as editor here at JavaLobby and NetBeans Zone that our readers will know Geertjan.
DZone: Hi Geertjan, you're one of the people behind the newly released
NetBeans Platform Refcard. What's the reason for writing it?
Geertjan: Well, at this point there are several books and many tutorials that
describe how you can create Swing applications on top of the NetBeans
Platform. However, one thing that's missing is a NetBeans Platform reference manual with
lists of properties and attributes and so on, i.e., one place where
common low-level nitty-gritty issues per each of the many classes of the NetBeans APIs can be resolved. More than a FAQ, which we have, what we've needed for some time is something like a complete and thorough reference manual, containing thorough documentation on each and every piece of the NetBeans APIs, something similar to our Javadoc, but structured in logical groupings and organized concisely, coherently and, especially, exhaustively.
The NetBeans Platform Refcard aims to provide an inkling of what that final all encompassing NetBeans Platform reference manual will look like. We're hoping there'll be a lot of feedback to the NetBeans Platform Refcard so that, with the release of NetBeans Platform 6.9, we'll be able to move towards providing that fullblown NetBeans Platform reference manual that clearly needs to be written, though the various books, tutorials, FAQs, and Javadoc are holding up quite well for these purposes in the meantime.
Also, a lot of developers starting out with the NetBeans Platform tend to have a hard time figuring out the context and scope of all the features that the platform offers. That's the main reason that the screencast series "Top 10 NetBeans APIs" has become quite popular, since it gives NetBeans Platform newbies a relatively thorough overview of everything.
As Dale Thoma, from Saab Systems Grintek, software supplier to the South African National Defence Force, recently said (in an interview here):
Getting started with the NetBeans Platform is easy. I recommend going through the Top 10 NetBeans APIs screencast series. This provides context and scope and gives an understanding of what is available for a programmer on the NetBeans Platform. I also recommend the tutorials provided by either the NetBeans IDE (FeedReader and Paint Application) or to pick a tutorial from the NetBeans Platform learning trail. Make sure that you understand the Look-up API - it’s fundamental for module interaction and behaviour (high-cohesion, low coupling).
This refcard goes very far beyond the screencast series, however, and gets into a lot more details, providing tips & tricks, such as a table of handy APIs that existing NetBeans Platform developers might not even be aware of.
DZone: How is the document structured to help its users get the most out of it?
Geertjan: The main part of the document is broken down per API. So, there's a
section on the Module System API, listing the most important NetBeans-specific keys
that can be set in the manifest file, there's a section on the Window
System API listing all of its classes, there's a section on the Nodes
API listing all the Node classes, and so on.
Per section, there are also some common questions and code snippets that
should help you get started and, also, to help you get further when
you're stuck.
DZone: The NetBeans Platform seems really large. Does that cause a lot of
overhead when you're using it?
Geertjan: Not really. Only 5 modules (consisting of JAR files that add up to
about 20 MB) are actually mandatory. Those form the runtime container,
comparable to an application server in the web world, e.g., GlassFish v3
does for web applications what the NetBeans runtime container does for
Swing appllcations -- it offers a set of services relating to deployment
and lifecycle management of deployed modules. As a result, your own
application doesn't need to provide a start up and shutdown sequence,
since the runtime container does that for you.
But that's all you need to use of the NetBeans Platform. Hence, you
could have a CLI application, without any UI at all. Your CLI application
would then have a module system and a filesysyetm for free, as well as
the other services offered by the runtime container.
DZone: But, more generally, developers tend to build large applications atop
the NetBeans Platform, right?
Geertjan: Correct. As with any large set of APIs, a learning curve is involved
and that can be as steep as your needs happen to be. I.e., the more you
need to use, the more you need to learn. But, in the final analysis, the
benefits far outweigh the costs. It's the same as in the world of web
development. Sure, you can continue creating JSPs and servlets, if
that's what you want to do, without using any framework at all. But as
soon as your application becomes larger, and as soon as you have more
than one application within the same organization, you're reinventing
the wheel over and over again, if each application needs to be started
again from scratch. A framework just makes sense.
By and large, most organizations using the NetBeans Platform are in the
business of building large, mission critical applications, such as at
Boeing and Northrop Grumman:
And that's just the tip of the iceberg, as can be seen here:
http://platform.netbeans.org/screenshots.html
DZone: Quite a few student projects are based on the NetBeans Platform too,
judging from the screenshots page.
Geertjan: Right. And that makes a lot of sense. If you're creating a graduation
project for your college or university, do you want to start by creating
a window system and a menu bar? No, you want to start right away with
the business logic of your application, i.e., you want to display the
analysis results in a window and that's exactly what the NetBeans
Platform provides out of the box.
DZone: So, aside from lifecycle management and a window system, what else do
you get from the NetBeans Platform?
Geertjan: The refcard lists all the main components, so have a look there! Lots
of Swing components geared towards large applications (i.e., for loading
and displaying data asynchronously in a tree) are provided out of the
box. And, since it is all Swing, you can adapt everything to exactly how
you want it and change its look and feel as well, such as via the NetBeans-OfficeLAF:
DZone: What does the future of the NetBeans Platform look like?
Geertjan: A lot of new support is being planned specifically for enterprise RCP developers, as can be read here. One much-requested enhancement is support for OSGi, which is one of the things being planned for NetBeans Platform 6.9.
DZone: Thanks for the interview!
Visit the DZone Refcardz site to download the Essential NetBeans Platform Refcard now!
Opinions expressed by DZone contributors are their own.
Comments