Decoupled design: building applications on the NetBeans platform

The NetBeans Platform is the open-source NetBeans Integrated Development Environment (IDE) less those modules that make it a development tool. The platform is a "generic application" - a runtime which can be used to develop applications.One of the key distinctions of software built upon the NetBeans Platform is modularity - reuse in the large. Such software is designed as logical sets of macro-components which integrate through well-defined API contracts. Writing modular applications brings some enhancements to programming in standard Java - particularly the ability to have Java classes which are only public to other classes within the archive they reside in. This has a number of beneficial effects on development - in particular, the ability to develop cleaner, simpler APIs by being able to fully conceal implementation from foreign code, while retaining type-safety.This workshop will cover developing on the NetBeans Platform from the ground-up. We will start with non-GUI applications - simply making use of the module system - the core runtime of the NetBeans platform. After that, we will cover basic patterns and commonly used APIs. The afternoon will be spent on developing a real software application which consists of multiple, decoupled modules; participants are encouraged to come with specific ideas for applications they would be interested in exploring in a modular environment.