SlideShare a Scribd company logo
1 of 27
Download to read offline
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

What's hot

Interoperability Features in OpenNebula
Interoperability Features in OpenNebulaInteroperability Features in OpenNebula
Interoperability Features in OpenNebula
OpenNebula Project
 
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
Docker, Inc.
 
Modernizing Traditional Applications with Docker EE: From PoC to Production
Modernizing Traditional Applications with Docker EE: From PoC to ProductionModernizing Traditional Applications with Docker EE: From PoC to Production
Modernizing Traditional Applications with Docker EE: From PoC to Production
Docker, Inc.
 
How to Modernize Virtualized Workloads
How to Modernize Virtualized Workloads  How to Modernize Virtualized Workloads
How to Modernize Virtualized Workloads
Konveyor Community
 
Developing Serverless Applications on Kubernetes with Knative
Developing Serverless Applications on Kubernetes with KnativeDeveloping Serverless Applications on Kubernetes with Knative
Developing Serverless Applications on Kubernetes with Knative
VMware Tanzu
 

What's hot (20)

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

Viewers also liked (6)

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

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

Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
Abhishek Gupta
 
RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?
Mark Russell
 
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
WSPDC & FEDSPUG
 
Building software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard ThulinBuilding software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard Thulin
Rikard Thulin
 
Cloud Foundry at Rakuten
Cloud Foundry at RakutenCloud Foundry at Rakuten
Cloud Foundry at Rakuten
Platform CF
 

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

CheConf 2018 - Building Extensibility and Community for Che
CheConf 2018 - Building Extensibility and Community for CheCheConf 2018 - Building Extensibility and Community for Che
CheConf 2018 - Building Extensibility and Community for Che
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWT
 
Serverless computing with Google Cloud
Serverless computing with Google CloudServerless computing with Google Cloud
Serverless computing with Google Cloud
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
GCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native ArchitecturesGCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native Architectures
 
Moderniser le legacy JEE avec les containers et les microservices: patterns a...
Moderniser le legacy JEE avec les containers et les microservices: patterns a...Moderniser le legacy JEE avec les containers et les microservices: patterns a...
Moderniser le legacy JEE avec les containers et les microservices: patterns a...
 
RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?
 
Serverless Computing with Google Cloud
Serverless Computing with Google CloudServerless Computing with Google Cloud
Serverless Computing with Google Cloud
 
Webinar- Tea for the Tillerman
Webinar- Tea for the TillermanWebinar- Tea for the Tillerman
Webinar- Tea for the Tillerman
 
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
 
Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Ma...
Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Ma...Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Ma...
Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Ma...
 
Building software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard ThulinBuilding software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard Thulin
 
Cloud Foundry at Rakuten
Cloud Foundry at RakutenCloud Foundry at Rakuten
Cloud Foundry at Rakuten
 
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOpsHybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
 
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOpsHybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
 
State of GeoServer 2.10
State of GeoServer 2.10State of GeoServer 2.10
State of GeoServer 2.10
 
Observability and Orchestration of your GitOps Deployments with Keptn
Observability and Orchestration of your GitOps Deployments with KeptnObservability and Orchestration of your GitOps Deployments with Keptn
Observability and Orchestration of your GitOps Deployments with Keptn
 
Cloudexpowest opensourcecloudcomputing-1by arun kumar
Cloudexpowest opensourcecloudcomputing-1by arun kumarCloudexpowest opensourcecloudcomputing-1by arun kumar
Cloudexpowest opensourcecloudcomputing-1by arun kumar
 

More from OpenBlend society

SOA architecture patterns, Matjaž Jurič (FRI/Univerza v Ljubljani)
SOA architecture patterns, Matjaž Jurič (FRI/Univerza v Ljubljani)SOA architecture patterns, Matjaž Jurič (FRI/Univerza v Ljubljani)
SOA architecture patterns, Matjaž Jurič (FRI/Univerza v Ljubljani)
OpenBlend society
 
National Reference runtime environment, Boris Šaletić (MJU)
National Reference runtime environment, Boris Šaletić (MJU)National Reference runtime environment, Boris Šaletić (MJU)
National Reference runtime environment, Boris Šaletić (MJU)
OpenBlend society
 
Introducing Hibernate OGM: porting JPA applications to NoSQL, Sanne Grinovero...
Introducing Hibernate OGM: porting JPA applications to NoSQL, Sanne Grinovero...Introducing Hibernate OGM: porting JPA applications to NoSQL, Sanne Grinovero...
Introducing Hibernate OGM: porting JPA applications to NoSQL, Sanne Grinovero...
OpenBlend society
 
Enterprise Java Virtualization, Sacha Labourey
Enterprise Java Virtualization, Sacha LaboureyEnterprise Java Virtualization, Sacha Labourey
Enterprise Java Virtualization, Sacha Labourey
OpenBlend society
 

More from OpenBlend society (8)

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

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 

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