[RSS]

NetBeans Certified Engineer Course

in Linz, November 9 - 10, 2007

Official page

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 course will cover developing on the NetBeans Platform from the ground-up. On Friday, 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 Saturday will be dedicated to tour around already available functionality built around the NetBeans Platform, descriptions of how to empower it and examples of real software application which consists of multiple, decoupled modules.

After that you will be asked to develop a functioning project consisting of one or more modules or to extend already existing project with new functionality.

Goals

Learn about NetBeans and became experienced enough to be able to write a module, set of modules, application based on the NetBeans Platform, or be able to locate piece of code responsible for certain behaviour, change it and generate a patch that could be integrated back into official NetBeans.org source tree.

The lectures

Fr November 9, 2007 (5 units) Sa November 10, 2007 (5 units)

Project submission

Fr January 18, 2008

Part of the course will be a project in which either a module, set of modules, application or a patch to existing functionality is delivered. The project source has to be delivered at the end of the semester. At the end of the semester there will be a written exam about the contents of the lectures. In order to pass the course, you will need to implement the project as well. The final grade will be computed from the exam and from the project.

Contents

  1. The Benefits of Modular Programming
  2. Modular Architecture
  3. Loosely Coupled Communication
  4. Lookup
  5. Filesystems
  6. Threading, Listener Patterns, and MIME Lookup
  7. The Window System
  8. Graphical User Interfaces
  9. Nodes, Explorer Views, Actions, and Presenters
  10. MultiView Editors
  11. Visual Library
  12. Practical Use Cases of the NetBeans Platform
    • Creating NetBeans Plugins
        • Creating a New Window: Watching Movies in NetBeans IDE
          • Overview: Porting a Java application to a TopComponent
        • Enhancing the HTML Editor: Creating an HTML Link Checker
          • Overview: FileObjects, DataObjects, DataFolders, writing to the status bar, Output window, creating annotations
        • Enhancing the Java Editor: FQN from Node to Clipboard
          • Overview: Using the new Java Language Infrastructure to identify elements in the Java Editor
        • Creating a New Editor: Schliemann
          • Overview: Declarative assignment of features to existing language tokens and grammar
    • Creating Desktop Applications
        • Examining Existing Applications
          • Overview: Analyzing existing applications and identifying interesting elements
        • Assembling an HTML Editor
          • Overview: Creating a new application by breaking down NetBeans IDE
        • Creating a Standalone Movie Player
          • Overview: Creating a new application by adding modules to NetBeans IDE
    • Creating Supporting Features
        • Options Window and NbPreferences API
        • JavaHelp
        • Samples and Templates
  13. Empowering the Coding Process
    • Creating Code Templates
    • Creating Code Generating Wizards
    • Useful Keyboard Tips and Tricks

Downloads

Exercises/Assignments

Mailing list

  • Subscribe to certeng-linz@edu.netbeans.org - it is very likely necessary to create a NetBeans account (useful anyway for filing bugs), logging in and then clicking on the button "Subscribe".

Papers

Slides from the Training on Friday 9 November 2007

Slides from the Training on Saturday 10 November 2007

Attachments

first-application.odp Info on first-application.odp 598182 bytes
first-application.pdf Info on first-application.pdf 153132 bytes
hints.odp Info on hints.odp 24034 bytes
hints.pdf Info on hints.pdf 60390 bytes
ideas-for-modules.odp Info on ideas-for-modules.odp 993203 bytes
ideas-for-modules.pdf Info on ideas-for-modules.pdf 379287 bytes
nbp-contribute.odp Info on nbp-contribute.odp 578745 bytes
nbp-contribute.pdf Info on nbp-contribute.pdf 115982 bytes
nbp-javabeans.odp Info on nbp-javabeans.odp 593396 bytes
nbp-javabeans.pdf Info on nbp-javabeans.pdf 146598 bytes
nbp-loaders.odp Info on nbp-loaders.odp 719337 bytes
nbp-loaders.pdf Info on nbp-loaders.pdf 157899 bytes
nbp-lookup.odp Info on nbp-lookup.odp 3688303 bytes
nbp-lookup.pdf Info on nbp-lookup.pdf 2499132 bytes
nbp-outline.odp Info on nbp-outline.odp 3315631 bytes
nbp-outline.pdf Info on nbp-outline.pdf 1500599 bytes
systemfs.odp Info on systemfs.odp 794225 bytes
systemfs.pdf Info on systemfs.pdf 312423 bytes
window-system.odp Info on window-system.odp 590592 bytes
window-system.pdf Info on window-system.pdf 140180 bytes