the netbeans platform compared to the eclipse rich client ...•but netbeans platform adds framework...

64
The NetBeans TM Platform Compared to the Eclipse Rich Client Platform Kai Tödter, Siemens AG Geertjan Wielenga, Sun Microsystems TS-4895

Upload: others

Post on 17-Mar-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

The NetBeansTM Platform Comparedto the Eclipse Rich Client Platform

Kai Tödter, Siemens AGGeertjan Wielenga, Sun Microsystems

TS-4895

Page 2: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 2

Outline

MP3 Manager: A demo applicationSoftware ArchitectureComponent Model & Module ConceptUI Toolkits & CustomizationStarting Application DevelopmentProject StructureActionsExtension Points & LookupsUpdate Functionality & Help SystemMiscConclusion

Page 3: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 3

MP3 Manager: Eclipse RCP based

Page 4: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 4

MP3 Manager: NetBeans Platform based

Page 5: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 5

Demo: MP3 Manager on both Platforms

Page 6: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 6

Outline

MP3 Manager: A demo applicationSoftware ArchitectureComponent Model & Module ConceptUI Toolkits & CustomizationStarting Application DevelopmentProject StructureActionsExtension Points & LookupsUpdate Functionality & Help SystemMiscConclusion

Page 7: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 7

Eclipse RCP Architecture

Platform Runtime

OSGi

JFace

SWT

Generic Workbench

IDE/Workspace/Resources/

Team/Search/

… …AppPlug-in Update FormsHelp

Java VMOS

Rich Client Application

Eclipse RCP

Page 8: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 8

NetBeans Architecture

Runtime

Module SystemSwing

Core UI

IDE/Favourites/Multi-View

… …AppPlug-in

UpdateCenter ...Help

Java VM

Rich Client Application

NetBeans Platform

Page 9: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 9

Outline

MP3 Manager: A demo applicationSoftware ArchitectureComponent Model & Module ConceptUI Toolkits & CustomizationStarting Application DevelopmentProject StructureActionsExtension Points & LookupsUpdate Functionality & Help SystemMiscConclusion

Page 10: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 10

Eclipse RCP: Based on OSGi (1)

Dynamic modules for Java™ platformHighly adopted standardOSGi Bundle is the unit of modularization• Eclipse Plug-in == OSGi Bundle• Roughly equivalent to a Java Archive (JAR)• Self-described using MANIFEST.MF metadata

Page 11: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 11

Eclipse RCP: Based on OSGi (2)

The OSGi Runtime• Manages dependencies and lifecycle of bundles• Explicitly supports dynamic scenarios

Bundles interact through• Java platform package sharing• OSGi Service registry• Eclipse Extension Registry

It is possible to run two or more versions of the same bundle in one application

Page 12: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 12

NetBeans Module System (1)

Dynamic modules for NetBeans PlatformProprietary, but• Basic idea taken from the Java API Extension Mechanism

NetBeans Module is the unit of modularization• Roughly equivalent to a JAR• Module attributes in MANIFEST.MF metadata• Extra XML descriptor needed by the platform runtime

Page 13: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 13

NetBeans Module System (2)

The NetBeans Module Runtime• Manages dependencies and lifecycle of NetBeans modules• Support of dynamic scenarios (ModuleInstall)

NetBeans modules interact through• Java platform package sharing• Service registry• XML Layer

It is possible to run two or more versions of the same NetBeans module in one application

Page 14: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 14

Outline

MP3 Manager: A demo applicationSoftware ArchitectureComponent Model & Module ConceptUI Toolkits & CustomizationStarting Application DevelopmentProject StructureActionsExtension Points & LookupsUpdate Functionality & Help SystemMiscConclusion

Page 15: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 15

NetBeans Platform UI: Swing

Very mature UI toolkit• But more a widget set than an UI application framework• But NetBeans platform adds framework functionality

Good performance since Java platform 1.3Java Platform, Standard Edition (Java SE platform) included in the JRE™ softwareVery good free GUI builder Matisse out of the box with the NetBeans platform IDENative Look & Feels are emulated• Since Java platform 6, native rendering is used if possible

Very good customizable through the pluggable Look & Feel mechanism

Page 16: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 16

NetBeans Platform based Example

Page 17: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 17

NetBeans Platform MP3M with Napkin L&F

Page 18: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 18

Eclipse UI: SWT/JFace

Very mature UI toolkit• SWT provides rich widget set• JFace adds UI application framework, with• Viewers, Forms, Data binding, Wizards, etc.

Excellent performance through native widgetsSome GUI builders available for the Eclipse IDE• But the most of them are commercial

Native Look & Feels • Highest OS Look & Feel fidelity

Partly customizable through Presentation API and custom widgets

Page 19: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 19

SWT Examples

Page 20: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 20

Eclipse MP3 Manager with customized UI

Page 21: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 21

More UI Customization: IBM® Lotus Notes

Page 22: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 22

Docking Systems

A docking system is a windowing system, where the windows can be layouted in several regionsThese regions use tab containers for the containing windowsThe windows can be dragged and dropped into other regionsThe windows can be minimized and maximizedThe windows can be undocked (Stand alone on the OS desktop)Both, Eclipse RCP and NetBeans Platform provide excellent docking systems!

Page 23: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 23

Outline

MP3 Manager: A demo applicationSoftware ArchitectureComponent Model & Module ConceptUI Toolkits & CustomizationStarting Application DevelopmentProject StructureActionsExtension Points & LookupsUpdate Functionality & Help SystemMiscConclusion

Page 24: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 24

Starting Application Development

NetBeans Platform• Start with a NetBeans Platform Application• Remove all the UI elements you don’t want to reuse• Add new UI contributions

Eclipse RCP• Start with a plug-in• Choose a RCP template, e.g. Hello World

• Creates application shown on the next slide• Add new UI contributions

Page 25: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 25

Eclipse RCP Hello World

Page 26: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 26

NetBeans Platform Hello World

Page 27: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 27

Outline

MP3 Manager: A demo applicationSoftware ArchitectureComponent Model & Module ConceptUI Toolkits & CustomizationStarting Application DevelopmentProject StructureActionsExtension Points & LookupsUpdate Functionality & Help SystemMiscConclusion

Page 28: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 28

Eclipse RCP Project Structure

Plug-ins• Provide the functionality• Often separation between core and UI plug-ins

Features• Collection of plug-ins that implement the feature’s functionality• Needed for Update functionality• Provide Feature Branding and licensing info

Product Configuration• Can be put in a feature or in a plug-in• Contains launching, configuration and product branding info

Page 29: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 29

NetBeans Project Structure

Modules• Provide the functionality

Suite• Collection of modules that implement the application’s functionality• Provides application branding and licensing info• One suite per application

Page 30: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 30

Outline

MP3 Manager: A demo applicationSoftware ArchitectureComponent Model & Module ConceptUI Toolkits & CustomizationStarting Application DevelopmentProject StructureActionsExtension Points & LookupsUpdate Functionality & Help SystemMiscConclusion

Page 31: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 31

Creating an Action in NetBeans Platform

Use the “New Action…” wizardFill out the formThe Action’s Java class template is generatedThe XML layer (layer.xml) for contributing UI to the menu bar and tool bar is created automatically

Page 32: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 32

Action Class in NetBeans Platform (1)

public final class AddMusicFolderAction extends CallableSystemAction { public void performAction() { // Action’s business logic } public String getName() { return NbBundle.getMessage(AddMusicFolderAction.class, "CTL_AddMusicFolderAction"); }

Page 33: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 33

Action Class in NetBeans Platform (2)

protected String iconResource() { return "com/siemens/ct/nb/mp3m/actions/add_folder.gif"; } public HelpCtx getHelpCtx() { return HelpCtx.DEFAULT_HELP; } protected boolean asynchronous() { return false; } }

Page 34: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 34

The XML Layer

Page 35: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 35

Creating an Action in Eclipse

Extend the Extension Point “ActionsSets”Fill out the formThe Action’s Java class template is generated by clicking the class attributeThe XML layer (plugin.xml) for contributing UI to the menu bar and tool bar is created automatically

Page 36: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 36

Creating the ActionSets Extension

Page 37: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 37

Action Class in Eclipse (1)

public class AddMusicFolderAction implements IWorkbenchWindowActionDelegate {

private IWorkbenchWindow window;

public void run(IAction action) { // Action’s business logic }

public void init(IWorkbenchWindow window) { this.window = window; }

Page 38: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 38

Action Class in Eclipse (2)

public void dispose() { window = null; }

public void selectionChanged(IAction action, ISelection selection) { // Selection changes can be handled here }}

Page 39: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 39

Outline

MP3 Manager: A demo applicationSoftware ArchitectureComponent Model & Module ConceptUI Toolkits & CustomizationStarting Application DevelopmentProject StructureActionsExtension Points & LookupsUpdate Functionality & Help SystemMiscConclusion

Page 40: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 40

Eclipse Extensions and Extension Points

Platform Runtime

C Debug

Rich Client Platform

Plug-in

C DebugRich Client Application

Extension

Extension Point

Page 41: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 41

Lazy loading with Eclipse Extension Points

Create an Interface and expose it to the publicCreate an Extension Point that provides an attribute for the implementing classA using plug-in could extent the Extension Point and provide an implementation of the given interfaceThe provider of the Extension Point can check at runtime, what extensions are available and what to do with them

Page 42: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 42

Interface and Extension Point Editor

public interface IMP3InfoProvider { public IMP3Info getMP3Info();}

Page 43: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 43

The Extensions Check at Runtime

IConfigurationElement[] providers = Platform.getExtensionRegistry() .getConfigurationElementsFor("com.siemens.ct.mp3m.model", "mp3info");

for (IConfigurationElement provider : providers) { try { IMP3InfoProvider provider = (IMP3InfoProvider) provider.createExecutableExtension("class"); // do something useful with the dynamically created class... } catch (Throwable e) { LogUtil.logError("com.siemens.ct.mp3m.model", e); }}

Page 44: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 44

Benefits of the Extension Point Mechanism

Very good scalabilityLoose coupling of components• Using String IDs rather than Java platform objects

Very good startup time• UI contributions specified in the XML layer are processed at startup• Lazy loading of Java classes due to extension check at runtime

Page 45: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 45

The Tip of the Iceberg

Startup time: O(plug-ins used at startup) rather than O(plug-ins that add UI contributions)

Implementation in Java

Declarative Definition (XML)

Page 46: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 46

Lazy Loading in NetBeans Platform

Provide an Interface and expose it to the publicCreate a directory META-INF/servicesCreate a file with the fully qualified name of the interface in that directory, e.g. com.siemens.ct.mp3m.model.IMP3InfoProviderPut the fully qualified name of the implementing class as content in the fileThe user that checks the global lookup at runtime for implementations of the interface

Page 47: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 47

Using the Global Lookup

IMp3InfoProvider provider = (IMP3InfoProvider)Lookup.getDefault().lookup(

IMP3InfoProvider.class);

Page 48: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 48

NetBeans Platform Service Approach Benefits

Very good scalabilityLoose coupling of componentsEasy to use

Page 49: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 49

Outline

MP3 Manager: A demo applicationSoftware ArchitectureComponent Model & Module ConceptUI Toolkits & CustomizationStarting Application DevelopmentProject StructureActionsExtension Points & LookupsUpdate Functionality & Help SystemMiscConclusion

Page 50: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 50

Integrating Update Functionality

Both Platforms provide sophisticated Update Mechanisms• Eclipse Update using update sites• NetBeans Module Update Center

Both out of the box update functionalities are often not applicable to domain specific applications• Eclipse/NetBeans platforms address experienced software

developers

Page 51: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 51

How to create customized update?

Integrate the out of the box update functionality of the given platform into you application. That lets you test the basic mechanisms and can be done easily with both platformsThen decide, what kind of granularity and complexity you would like to provide in your applicationTry to reuse some fine granular APIs of the corresponding platform that does the job

Page 52: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 52

Integrating Help

NetBeans Platform• Using JavaHelp standard• Static content only• Good & mature help system• Help infrastructure is moderate (800 KB)

Eclipse• Using web server and indexing/search engine

• Currently Jetty & Lucene• Static and dynamic content• Very good & mature help system• Help infrastructure is big (7 MB)

Page 53: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 53

NetBeans Platform MP3 Manager Help

Page 54: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 54

Eclipse MP3 Manager Help

Page 55: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 55

Outline

MP3 Manager: A demo applicationSoftware ArchitectureComponent Model & Module ConceptUI Toolkits & CustomizationStarting Application DevelopmentProject StructureActionsExtension Points & LookupsUpdate Functionality & Help SystemMiscConclusion

Page 56: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 56

Long Running Operations & User Interaction

Eclipse:• Jobs API

• for asynchronous long running operations• Many utilities• Interactive & Cancelable

NetBeans Platform:• Progress API

• for asynchronous long running operations• Interactive & Cancelable

Page 57: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 57

Deployment

Both IDEs provide the deployment of the whole application to the local file system• NetBeans module as ZIP file & Web-Start• Eclipse as directory structure, can be zipped

Java Web Start• NetBeans platform IDE supports direct deployment for Java Web

Start• Eclipse RCP apps can be made ready for Java Web Start with

some manual configurationNative installers (e.g. NSIS) can be used in conjunction with both

Page 58: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 58

Licensing

Eclipse RCP• Eclipse Public License (EPL)

• See http://www.eclipse.org/legal/epl-v10.html• ICU4J license

NetBeans Platform• Dual licensed

• Common Development and Distribution License (CDDL) • See http://en.wikipedia.org/wiki/CDDL

• GPL v2 with Classpath Exception• The Classpath exception allows you to link an application available

under any license to a library that is part of software licensed under GPL v2, without that application being subject to the GPL's requirement to be itself offered to the public under the GPL

Page 59: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 59

Eclipse RCP Documentation

Lots of information at www.eclipse.orgGood RCP Wiki http://wiki.eclipse.org/index.php/Rich_Client_PlatformHighly recommended book:

Eclipse Rich Client Platform: Designing, Coding, and Packaging Java™ Applications (The Eclipse Series) by Jeff McAffer and Jean-Michel Lemieux

Page 60: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 60

NetBeans Platform Documentation

Lots of information (Articles, Tutorials, etc.) at platform.netbeans.orgTraining courses http://edu.netbeans.org/courses/�nbplatform-certified-training/Highly recommended book:

Rich Client Programming: Plugging into the NetBeans Platformby Tim Boudreau, Jaroslav Tulach, and Geertjan Wielenga

Page 61: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 61

Outline

MP3 Manager: A demo applicationSoftware ArchitectureComponent Model & Module ConceptUI Toolkits & CustomizationStarting Application DevelopmentProject StructureActionsExtension Points & LookupsUpdate Functionality & Help SystemMiscConclusion

Page 62: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 62

Conclusion

Both platforms provide• Module system with

• Dependency management• Dynamic modules• Module-private classpaths

• Service infrastructure and lazy loading support• Mature UI toolkits with huge widget sets• Very good docking system• Update support• Support for interactive, long running operations• Integration of help system• And MUCH MORE!

Page 63: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 63

But the Question is…

Which platform is the better one?Which platform should you use?

Recommendation: Get the requirements for YOUR rich client application first! There might be non-functional requirements like scalability, extensibility, reliability, usability and so on, as well as functional requirements. After prioritizing the requirements, make your platform choice

Both platforms Eclipse RCP and NetBeans Platform offer you a lot and help you to build better Java rich client applications!

Page 64: The NetBeans Platform Compared to the Eclipse Rich Client ...•But NetBeans platform adds framework functionality Good performance since Java platform 1.3 Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 64

Kai Tödter, Siemens AGGeertjan Wielenga, Sun MicrosystemsTS-4895