Your SlideShare is downloading. ×
0
Tackling Actual Problems on the
Wings of the Netbeans Platform
Jure Polutnik
Agenda
Development of Gaea+
Our experience
Rich Client Platforms
NetBeans Platform & APIs
About XLAB
●
Founded in 2001
●
Employs 42+ experts in Computer Science, Electronics and Mathematics
●
Participated in 10+ ...
Evolution of Gaea+
●
Virtual globe platform
●
Evolved from specialized flood simulation tool
●
2008 Dec – Rleased first ve...
Gaea+ Screenshots
Gaea+ Screenshots v2
Gaea+ Screenshots v3
Why we switched to RCP
●
Module system
●
I18N and L10N
●
Distribution
●
Development time
●
More - Implementing generic fun...
Rich Client Platform
●
A Rich Client Platform is an application lifecycle enviroment, a basis for desktop
applications
●
B...
RCP in Java world
Any many more ...
Swing Application
Framework
Some basic features
●
Application life-cycle
●
Support for managing and loading resources
●
Su...
Spring Rich Client
●
Features
●
Window system
●
Module system
●
Input validation, button bars, I18N, image/icon caching, U...
Eclipse Rich Client
Platform
Since 2003
Huge community
Plentiful of documentation and examples
RCP + many other features
C...
Eclipse Rich Client v2
Platform
Uses SWT
Pro
• Uses native elements
• Supported by Eclipse
• Large number of examples
Cont...
NetBeans Platform
Mature platform – since 2001, and has been supported by IDE in 2005
Large community
Plentiful of documen...
NetBeans Platform v2
Current version (6.9.1)
OSGi interoperability
Encanhements for Maved-based Netbeans Platform applicat...
Eclipse RCP vs
NetBeans Platform
Feature are roughly equivalent
Both are probably good choices
Depend on exact requirement...
Sketsa SVG Graphics Editor
NetBeans IDE
Bluemarine
Office Look and Feel
●
OfficeLAF module
- Flamingo
●
Platform has not
been patched
Gaea+
NetBeans Platfrom
APIs
Module System API
Dependencies between module
Loading and unloading (in runtime)
Version control
Cl...
NetBeans Platfrom v2
APIs
Lookup API
Intermodule communication (Service Loader)
Context sensitivity of windows, nodes and ...
NetBeans Platfrom v3
APIs
Nodes API
Visual representation of underlaying objects
Datasystems API
Custom file types
Actions...
But ...
The platform is not the magic stick
It will help you create better architecture
But you can always do it “your way...
Jure Polutnik
jure.polutnik@xlab.si
Thank you for your attention!
Upcoming SlideShare
Loading in...5
×

Tackling Actual Problems on the Wings of the Netbeans Platform, Jure Polutnik

1,292

Published on

“Virtual globe platform Gaea+ has evolved from a specialised flood simulation visualisation tool implemented as part of a research project. Initial releases were implemented in a pure Swing, which, although being a nice API, still requires a lot of work to build complex and production ready applications. In late 2009 we realised that a vast majority of time was spent on implementing generic functionalities such as portable module system and window manager, instead of working on actual problems that would push the platform to the next level.

After a thorough survey of available platforms and experimental ports of the visualisation core of Gaea+, we decided to build the next release on top of the Netbeans Rich Client Platform. Netbeans Platform provides a number of excellent common APIs extending not only the Swing but also other aspects of a modular application development. This talk will present and review some of the major benefits of Netbeans Platform with a number of used and customised API examples. The talk will also point out some of the difficulties we faced during the transition to the new platform.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,292
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Tackling Actual Problems on the Wings of the Netbeans Platform, Jure Polutnik"

  1. 1. Tackling Actual Problems on the Wings of the Netbeans Platform Jure Polutnik
  2. 2. Agenda Development of Gaea+ Our experience Rich Client Platforms NetBeans Platform & APIs
  3. 3. About XLAB ● Founded in 2001 ● Employs 42+ experts in Computer Science, Electronics and Mathematics ● Participated in 10+ EU FP project in ICT, 10+ national projects ● Main products: ● ISL Online | Remote Collaboration solutions ● MedicView | Imaging in nuclear medicine, segmentation tools ● Gaea+ | 3D visualisation of realistic geographics environment
  4. 4. Evolution of Gaea+ ● Virtual globe platform ● Evolved from specialized flood simulation tool ● 2008 Dec – Rleased first version of Gaea+ ● WorldWind Java SDK ● Swing + some additional UI libraries ● 2010 Mar – Released new version of Gaea+ ● NetBeans Rich Client Platform ● Cross platform, extensible, support for I18N ● Standars-complient (WFS, WMS, KML, GPX, SHP, TIFF, OBJ)
  5. 5. Gaea+ Screenshots
  6. 6. Gaea+ Screenshots v2
  7. 7. Gaea+ Screenshots v3
  8. 8. Why we switched to RCP ● Module system ● I18N and L10N ● Distribution ● Development time ● More - Implementing generic functionalities ● Module system ● Window Manager ● Less - Actual bussines logic ● New features
  9. 9. Rich Client Platform ● A Rich Client Platform is an application lifecycle enviroment, a basis for desktop applications ● Basic blocks: menu, splash-screen, status bar, i18n mechanism, toolbar … ● Advantages ● Reduction in development time ● User interface consistency ● Platform Independency ● Reusability and Reliability
  10. 10. RCP in Java world Any many more ...
  11. 11. Swing Application Framework Some basic features ● Application life-cycle ● Support for managing and loading resources ● Support for Actions (defining, managing, biding) ● Basic persistence of session state Does not support ● Branding ● Module system and dependencies ● Window system ● ...
  12. 12. Spring Rich Client ● Features ● Window system ● Module system ● Input validation, button bars, I18N, image/icon caching, UI threading, progress monitoring … ● But ● The project seems to be dead / put aside ● Release dates: 17.3.2008, 23.6.2009
  13. 13. Eclipse Rich Client Platform Since 2003 Huge community Plentiful of documentation and examples RCP + many other features Constantly improving Open sourced (Eclipse public license - EPL)
  14. 14. Eclipse Rich Client v2 Platform Uses SWT Pro • Uses native elements • Supported by Eclipse • Large number of examples Contra • Reusing existing swing code • Requires native libraries for each supported system • Not so platform independent • Management of native reources
  15. 15. NetBeans Platform Mature platform – since 2001, and has been supported by IDE in 2005 Large community Plentiful of documentation and examples RCP + many other features, Constantly improving Open sourced CDDL and GNU Public License v.2 w/Classpath Exception
  16. 16. NetBeans Platform v2 Current version (6.9.1) OSGi interoperability Encanhements for Maved-based Netbeans Platform applications Branding editor – L10N of NetBeans platform Generation of native installers Future (6.10) Performance of IDE Better installer support Integration of JavaFX components
  17. 17. Eclipse RCP vs NetBeans Platform Feature are roughly equivalent Both are probably good choices Depend on exact requirements Our requirement was AWT/Swing • WWJ does not support SWT • Performance dropped for 30%, when integrated AWT Canvas into SWT
  18. 18. Sketsa SVG Graphics Editor
  19. 19. NetBeans IDE
  20. 20. Bluemarine
  21. 21. Office Look and Feel ● OfficeLAF module - Flamingo ● Platform has not been patched
  22. 22. Gaea+
  23. 23. NetBeans Platfrom APIs Module System API Dependencies between module Loading and unloading (in runtime) Version control Classloader system Window System API Drag&Drop Docking and undocking Maximization and minimization (Side bar)
  24. 24. NetBeans Platfrom v2 APIs Lookup API Intermodule communication (Service Loader) Context sensitivity of windows, nodes and data objects Can be used in your own objects File System API Communication between modules Virtual filesystem (layer.xml)
  25. 25. NetBeans Platfrom v3 APIs Nodes API Visual representation of underlaying objects Datasystems API Custom file types Actions API Context-sensitive actions, registration in layer.xml Visual Library API Explorer & Property Sheet API ...
  26. 26. But ... The platform is not the magic stick It will help you create better architecture But you can always do it “your way” Steep learning curve We spent 1 month just for learning and testing the platform And another 2 months for porting Gaea+ to new base
  27. 27. Jure Polutnik jure.polutnik@xlab.si Thank you for your attention!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×