NetBeans Project Management Talk from DevIgnition at Oracle HQ

Ryan Cuprak is speaking at DevIgnition at Oracle HQ on NetBeans Project Management.

Ryan runs the Connecticut Java User's Group and works at www.enginuityplm.com. He is the author of a book on NetBeans.

(couple of people in the room use NetBeans from the poll that was just done in the room)

Agenda

  • Why NetBeans?
  • Choosing a project template
  • Configuring your environment
  • Creating a NetBeans Standard Project
  • Importing Eclipse Projects
  • Using Free Form
  • Starting with Maven

Why NetBeans

  • Tight Integration
  • Support for things like Maven
  • Intuitive Interface
  • Open Source
  • Is an application platform
  • Oracle supported
  • Powerful code editor
  • Refactoring support
  • VCS integration
  • Swing GUI Builder
  • Profiler
  • Debugger
  • JavaFX Composer
  • Project Wizards

Showing screens of the various tools such as running SQL queries, profiling, etc.

  • Server Integration
  • Suports Multiple Languages
  • Flexible Build System (ant, maven, etc)
  • Enterprise Support

...and it has a certification exam (if you put much stock in that)

Showing exam questions...getting a less then enthusiastic response from the audience. I don't think they put much stock in certification exams for their IDE either.

* birds twirping....I mean chirping *

Choosing a Project Template

11 project categories

If it isn't an existing project you do get a choice of Ant or Maven. That is pretty cool.

Need to consider: What type of application? (Java Application, Desktop, Class Library, JavaFX, Java Web, Enterprise, EJB Module, Enterprise Client, etc)

"if it is a new project I would suggest going with Maven"

Always like to see people suggesting Maven, but look at the Development Links under Build Tools for more info on the various build tools and the various pros/cons.

"NetBeans Standard Projects are good, but Maven is the future"

Choosing a project template doesn't affect choices for file templates. You can still create a JPA provider, SVG file, etc. On a Java web application, you can add a Swing form and use the GUI Builder if you wanted to.

Configuring your Environment

Questions to ask:

  • What Java platform is being targeted for deployment
  • What version of Ant/Maven
  • How are dependencies being managed
  • What version control system are you using

The speaker is going into how you would do various things such as setting up your Ant/Maven Configs. Moving too fast to really capture it, but if there are slides online I will reference them at the end. It is being video taped, and I'm sure that it will be posted online sometime in the near future.

Dependency Management

* How are dependencies being managed
* Maven repository
* Managed directory
* Stored Externally

etc....asking the standard dependency management questions, and how you would configure that in your NetBeans project.

Version Control: Supports CVS, SVN and Mecurial

Coming soon: Git!

NetBeans Standard Project

Talking about a "native" NetBeans project. Uses a generated NetBeans ant script. A build.xml file that can be invoked from the command line.

Going over the NetBeans specific files:
build-impl.xml, genfiles.properties, project.properties, project.xml

nbproject/private contains settings that are machine specific and DO NOT get checked into version control.

Library Management

There are four different classpaths

  • Compile
  • Run
  • Compile Tests
  • Run Tests

Can add other projects, libraries, JAR/folder to the classpath. Classpath entries can be ordered and the order is important if you have duplicate versions.

Modularizing project is a good practice
* Splits codebase
* Reduces overall build time
* Reduces IDE overhead
* Promotes good design

NetBeans does NOT export libraries
Ex. Project A depends on Project B, B depends on Lucene.jar
Lucene.jar will need to be added to Project A

** Seems to make it hard to modularize in my opinion...

If you are using Java Web Start, there will be a few additional files added to your project. "Pretty trivial to do in NetBeans if you want to create a Java Web Start application"

Doing a recap of what was mentioned, and showing some additional platforms.

Using Free Form Projects

"For projects that already have a highly customized ant script"

NetBeans will use your build script and delegates to and for all build operations. Dependencies are added in NetBeans to support the code editor. You will possibly have to update your build file to invoke some things such as the profiler.

Pros
* Most flexibly
* reuse an existing ant build script
* good chose for legacy

Cons
* Cannot depend on another project
* ...more to the list, but I didn't have time to get them.

You can specify the Build and Run actions, but NetBeans is going to make it's "best guess" at what those actions are for you.

Starting with Maven

Maven is much more then a build tool
* Defined project structures and build structure
* Dependency management

NetBeans has excellent support for Maven based projects
* Maven 3
* Repository browsing/searching
* pom is supported as a project file format

It is a challenge to migrate legacy projects

NetBeans has Maven Project Types, including Project with Existing POM

Maven Dependency Graph....that looks pretty cool! A nice visual of all of your dependencies/versions and what depends on what!

You can also Brose Dependencies quite nicely.

Slides and code samples will be up later
www.cuprak.net
Questions: rcuprak@gmail.com

Why not Eclipse?

Why not Eclipse?

It's not really a question of

It's not really a question of why not Eclipse....in fact I use Eclipse day-to-day, but the presentation was on NetBeans, and that is what this post was covering. I think all of the IDEs have some good and bad to them. And I can even understand the argument when people say that Visual Studio is one of the best - since they completely control their domain/plugins, and have worked on polishing that IDE for quite a while.

http://blogs.sun.com/arungupt

http://blogs.sun.com/arungupta/entry/devignition_2010_trip_report

Digg this

Theme provided by Danetsoft under GPL license from Danang Probo Sayekti