So you want to develop a rich client application on top of NetBeans RCP?

I was involved with development of a RCP application based on NetBeans platform and now I find few minutes to share some of the experience with you.

All standard coding and best practices are applicable here. Use project management systems like Trac or any project management system that you know. Never start a project without a project management system. Use coding standard, unit testing, desing and implementation documents versioning, design discussion sessions and so on.

Prepare all library wrappers and give them proper names. In NetBeans RCP we can not add JAR files to modules and instead JAR files need to be wrapped inside library wrapper modules and then this modules can be included in list of other modules dependencies. Use proper names for library wrappers, for example: jfreechart-wrapper-1.0.13. Never think about having one fat wrapper which contains all required libraries.

Avoid including the same JAR files in more than one wrapper which will be used by one module. instead include all common JAR files in one wrapper and include that wrapper in the dependencies of each wrapper which need it.

Think ahead and decide which modules you want to have and how these modules depends on each other. For example: A module which holds the domain mode and persistence layer (it will be wrapper inside a library wrapper if persistence layer is based on JPA), a module which contains all Web Services access objects (Again, this is a Java SE project wrapped inside a library wrapper), a module for reporting, a module for security implementation, a module to host all utility classes and common resources like icons, graphics, configuration files, etc.

Avoid circular dependencies. You can not access Security module from persistence and then using persistence objects from security module. Best practice is to define some logical layer and ensure that each layer can only access the layer under it and not any other layer.

If acceptable by customer, prepare an update center and push updates using the update center to avoid over working. The update center will help with distributing the software updates which can be new modules, updates, bug fixes etc.
Keep these FAQs close as they will help you along the way:
http://wiki.netbeans.org/NetBeansDeveloperFAQ
http://deadlock.netbeans.org/hudson/job/faqsuck/lastSuccessfulBuild/artifact/other/faqsuck/build/faq.html

NetBeans Platform Certification and training.

Netbeans is well known for beeing a great IDE for developing Java SE, Java EE, C++, Java ME, Sun SPOT, Ruby on Rail, PHP, Groovy, … but NetBeans has more to offer when it come to developing highly modular desktop applications. The desktop application can be from any possible category like Business oriented, scientific, utilities, development tools, entertinement, etc. You can find a list of applications based on NetBeans platform here And it is provided by the NetBeans platform which what NetBeans IDE and all of its complementary packs and plugins are developed based on it.

 

If you are a Platform developer you may already know that there are many valuable resources like books and articles already available to start with developing applications on top of NetBeans platform. In addition to all of there resources, NetBeans provides you with another option, NetBeans Platform Certified Training, through this program you can freely attend training courses and get certification based on the level of knowledge and experience that you demonestrate at the end or through the program.