SlideShare a Scribd company logo
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+ 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
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)
Gaea+ Screenshots
Gaea+ Screenshots v2
Gaea+ Screenshots v3
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
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
RCP in Java world
Any many more ...
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
●
...
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
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)
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
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
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
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
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
Classloader system
Window System API
Drag&Drop
Docking and undocking
Maximization and minimization (Side bar)
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)
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
...
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
Jure Polutnik
jure.polutnik@xlab.si
Thank you for your attention!

More Related Content

PPTX
Cloud Economics - Crayon Optimization Services
PDF
44CON 2014 - Binary Protocol Analysis with CANAPE, James Forshaw
PPTX
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
PPTX
Migrating from oracle soa suite to microservices on kubernetes
PPTX
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
PPTX
WebSphere 20th - Application modernization
PPTX
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
PDF
OpenNebula - New Features
Cloud Economics - Crayon Optimization Services
44CON 2014 - Binary Protocol Analysis with CANAPE, James Forshaw
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Migrating from oracle soa suite to microservices on kubernetes
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
WebSphere 20th - Application modernization
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
OpenNebula - New Features

What's hot (20)

PDF
Interoperability Features in OpenNebula
PDF
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
PDF
How Docker EE is Finnish Railway’s Ticket to App Modernization
PDF
Evolving to Cloud-Native - Anand Rao
PDF
High-Precision GPS Positioning for Spring Developers
PPTX
Tackle Containerization Advisor (TCA) for Legacy Applications
PPTX
Automate Workflows With The Open-source Cloud-native Tool Boomerang Flow
PPTX
OpenShift Meetup - Red Hat OpenShift Container Storage explained
PDF
Modernizing Traditional Applications with Docker EE: From PoC to Production
PDF
Dipping Your Toes Into Cloud Native Application Development
PDF
Service Engineering, ZHAW for CeBIT
PPTX
How to Modernize Virtualized Workloads
PDF
Making your app soar without a container manifest
PDF
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
PPTX
Intro to Environment as a Service - Cloudify 5.0.5 Webinar
PPTX
Getting Started with Kafka on k8s
PDF
Developing Serverless Applications on Kubernetes with Knative
PDF
QtWS15 Revolutionizing Automotive with Qt
PDF
12 FACTOR APP WITH DOCKER
PDF
Create a One Click Migration (OCM) process to Automate Repeatable Infrastruct...
Interoperability Features in OpenNebula
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
How Docker EE is Finnish Railway’s Ticket to App Modernization
Evolving to Cloud-Native - Anand Rao
High-Precision GPS Positioning for Spring Developers
Tackle Containerization Advisor (TCA) for Legacy Applications
Automate Workflows With The Open-source Cloud-native Tool Boomerang Flow
OpenShift Meetup - Red Hat OpenShift Container Storage explained
Modernizing Traditional Applications with Docker EE: From PoC to Production
Dipping Your Toes Into Cloud Native Application Development
Service Engineering, ZHAW for CeBIT
How to Modernize Virtualized Workloads
Making your app soar without a container manifest
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
Intro to Environment as a Service - Cloudify 5.0.5 Webinar
Getting Started with Kafka on k8s
Developing Serverless Applications on Kubernetes with Knative
QtWS15 Revolutionizing Automotive with Qt
12 FACTOR APP WITH DOCKER
Create a One Click Migration (OCM) process to Automate Repeatable Infrastruct...
Ad

Viewers also liked (6)

PDF
Migracao gae-openshift
PDF
How to cuddle your EJBs, Carlo de Wolf
PDF
Memory is the new disk, disk is the new tape, Bela Ban (JBoss by RedHat)
PDF
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
PDF
Java SE 7 - The Platform Evolves, Dalibor Topić (Oracle)
PDF
Seam 3 from a Web developer’s point of view, Matija Mazi (Parsek)
Migracao gae-openshift
How to cuddle your EJBs, Carlo de Wolf
Memory is the new disk, disk is the new tape, Bela Ban (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Java SE 7 - The Platform Evolves, Dalibor Topić (Oracle)
Seam 3 from a Web developer’s point of view, Matija Mazi (Parsek)
Ad

Similar to Tackling Actual Problems on the Wings of the Netbeans Platform, Jure Polutnik (20)

PDF
Building software using Rich Clients Platforms Rikard Thulin
PDF
blueMarine Sailing with NetBeans Platform
PPT
"Eclipse Application Development" at GNUnify 07
PPT
Netbeans IDE & Platform
PPT
Netbeans 110511004930-phpapp01
PDF
PDF
Common Client Rich Client Platforms
PDF
blueMarine photographic workflow with Java
PPT
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
PDF
NetBeans IDE & Platform
PDF
Rich client programming plugging into the NetBeans Platform 1. print Edition ...
PDF
Rich client programming plugging into the NetBeans Platform 1. print Edition ...
PDF
blueMarine a desktop app for the open source photographic workflow
ODP
Netbeans65 Osum Slides
PPT
javagruppen.dk - e4, the next generation Eclipse platform
PPT
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen
PPT
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
KEY
How To Make A Framework Plugin That Does Not Suck
ODP
Introduction To The Eclipse Platform
PPTX
netbeansplatform overview
Building software using Rich Clients Platforms Rikard Thulin
blueMarine Sailing with NetBeans Platform
"Eclipse Application Development" at GNUnify 07
Netbeans IDE & Platform
Netbeans 110511004930-phpapp01
Common Client Rich Client Platforms
blueMarine photographic workflow with Java
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
NetBeans IDE & Platform
Rich client programming plugging into the NetBeans Platform 1. print Edition ...
Rich client programming plugging into the NetBeans Platform 1. print Edition ...
blueMarine a desktop app for the open source photographic workflow
Netbeans65 Osum Slides
javagruppen.dk - e4, the next generation Eclipse platform
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
How To Make A Framework Plugin That Does Not Suck
Introduction To The Eclipse Platform
netbeansplatform overview

More from OpenBlend society (8)

PDF
SOA architecture patterns, Matjaž Jurič (FRI/Univerza v Ljubljani)
PDF
National Reference runtime environment, Boris Šaletić (MJU)
PDF
Introducing Hibernate OGM: porting JPA applications to NoSQL, Sanne Grinovero...
PDF
Enterprise Java Virtualization, Sacha Labourey
PDF
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
PDF
Android Up Close, Martin Sonc
PDF
Successful Application Lifecycle Management in heterogeneous environments, Ma...
PDF
Becoming an Open Source developer, Dimitris Andreadis
SOA architecture patterns, Matjaž Jurič (FRI/Univerza v Ljubljani)
National Reference runtime environment, Boris Šaletić (MJU)
Introducing Hibernate OGM: porting JPA applications to NoSQL, Sanne Grinovero...
Enterprise Java Virtualization, Sacha Labourey
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
Android Up Close, Martin Sonc
Successful Application Lifecycle Management in heterogeneous environments, Ma...
Becoming an Open Source developer, Dimitris Andreadis

Recently uploaded (20)

PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Tartificialntelligence_presentation.pptx
PPT
Teaching material agriculture food technology
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Machine Learning_overview_presentation.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Getting Started with Data Integration: FME Form 101
PDF
Encapsulation theory and applications.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Per capita expenditure prediction using model stacking based on satellite ima...
Spectral efficient network and resource selection model in 5G networks
Tartificialntelligence_presentation.pptx
Teaching material agriculture food technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Group 1 Presentation -Planning and Decision Making .pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
Assigned Numbers - 2025 - Bluetooth® Document
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Big Data Technologies - Introduction.pptx
Machine Learning_overview_presentation.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
SOPHOS-XG Firewall Administrator PPT.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Getting Started with Data Integration: FME Form 101
Encapsulation theory and applications.pdf

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

  • 1. Tackling Actual Problems on the Wings of the Netbeans Platform Jure Polutnik
  • 2. Agenda Development of Gaea+ Our experience Rich Client Platforms NetBeans Platform & APIs
  • 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. 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)
  • 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. 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. RCP in Java world Any many more ...
  • 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. 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. 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. 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. 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. 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. 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
  • 21. Office Look and Feel ● OfficeLAF module - Flamingo ● Platform has not been patched
  • 22. Gaea+
  • 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. 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. 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. 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