Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

25
PR0029 - 2010-05-31 Redistribution and other use of this material requires written permission from The RCP Company. Eclipse RCP as an Application Platform Eclipse is probably best known as a world-class Java IDE, but it is so much more if you just scratch the surface. Deep in the core of Eclipse, you find Eclipse RCP - the “Rich Client Platform" - that provides all the essential services for almost all types of client applications. This talk explores the services built into Eclipse RCP and shows some examples of what is possible with the platform. At the end, we also touch on the future of Eclipse RCP with the advent of Eclipse 4.0.

description

Eclipse RCP as an Application Platform held at Eclipse Banking Day in Copenhagen 2010-06-01

Transcript of Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

Page 1: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

Redistribution and other use of this material requires written permission from The RCP Company.

Eclipse RCP as an Application Platform

Eclipse is probably best known as a world-class Java IDE, but it is so much more if you just scratch the surface. Deep in the core of Eclipse, you find Eclipse RCP - the “Rich Client Platform" - that provides all the essential services for almost all types of client applications.This talk explores the services built into Eclipse RCP and shows some examples of what is possible with the platform.At the end, we also touch on the future of Eclipse RCP with the advent of Eclipse 4.0.

Page 2: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

2

Agenda

Eclipse is… what exactly?

The Eclipse Architecture

The timeline for Eclipse 4.0

Page 3: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

3

Eclipse is… what exactly?

Page 4: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

4

Eclipse – The Sweets

Page 5: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

5

ECLIPSE – The Mitsubishi Car

Page 6: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

6

Eclipse – The Java IDE

Page 7: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

7

Eclipse – The Tools Platform

Page 8: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

8

Eclipse – The Application Platform

Page 9: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

9

Eclipse – The Application Platform

Page 10: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

10

IBM Lotus NotesVersion 8

Page 11: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

11

EclipsePlatform

Res

ourc

esW

orks

pa

ceHel

pU

pdat

e

Tea

m

Web

S

erve

r

File

syst

em

s

Apa

che

Sea

rch

Nav

igat

or

Intr

oT

ext

Edi

tors

JDT

CV

S

WT

P

Da

tato

ols

VE

BIR

T

Myl

yn

PD

E

Eclipse RCP

Run-time/OSGiSWTJFace

WorkbenchP

refe

ren

ces

Jobs

ICU

Com

man

dsR

egis

try

CD

T

A Little AboutThe Eclipse Architecture

Page 12: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

12

The Eclipse Story

1994: IBM develops VisualAge for Smalltalk – programmed in Smalltalk 1995: Java is released to a select group 1996: IBM develops VisualAge for Java – still programmed in Smalltalk November 1998: OTI (Object Technology International – part of IBM) is commissioned to

develop new development platform for Java First known as VisualAge Micro Edition (VAME) and later Eclipse

7. November 2001: Eclipse 2.0 made Open Source 25. June 2004: Eclipse 3.0 released introducing Eclipse RCP

Framework make-over introducing OSGi

2009: Eclipse 3.5 released – known as Galileo

27. June 2010: Eclipse 3.6 will be released Also known as Helios

End of July, 2010: Eclipse SDK 4.0 Early Adopter Release First release of e4 technology

June 2011: Eclipse 3.7 will be released

June 2012: Eclipse 4.x will be released

Page 13: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

13

Basically…

We need an architecture that supports distributed development over a large number of autonomous development groups

We need a component concept where components are loosely coupled and can be started (and stopped) independently

We need a way to describe external interfaces of components and dependencies between components

We need a way to only start the components when they are needed, and not before – also known as late activation

We need all this to work over multiple generations of components

Page 14: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

14

EclipsePlatform

Res

ourc

es

Wor

ksp

ace

Hel

p

Upd

ate

Tea

m

Web

Ser

ver

File

syst

ems

Apa

che

Sea

rch

Nav

igat

or

Intr

o

Tex

t E

dito

rs

Eclipse Architectural Components

JDT

CV

S

WT

P

Da

tato

ols

VE

BIR

T

Myl

yn

PD

E

Eclipse RCP

Run-time/OSGi

SWT

JFace

WorkbenchP

refe

renc

es

Jobs

ICU

Com

man

ds

Reg

istr

y

CD

T

Page 15: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

15

ApplicationPlatform

Com

m.

Log

ging

Hel

p

Upd

ate

Aut

h.

Aud

itin

g

Apa

che

Intr

o

Your Typical RCP Application

Ba

se

Ad

d-o

n

Ad

d-o

n

Ad

d-o

n

Ad

d-o

n

De

bu

g T

oo

ls

Da

ta M

od

el

Eclipse RCP

Run-time/OSGi

SWT

JFace

WorkbenchP

refe

renc

es

Jobs

ICU

Com

man

ds

Reg

istr

y

Ad

d-o

n

Page 16: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

16

Organizing the Platform

The software of an Eclipse system is based on the following terms: Plug-ins – a plug-in is the basic unit of software

Fragments – a fragment is an add-on to an existing plug-in with additional functionality

Features – a feature is a number of plug-ins that is distributed and updated as a whole

Applications – an application is a Java class that implements a specific interface and is declared as such in the plug-in

Products – a product is a set of features or plug-ins along with the appropriate branding

Page 17: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

17

The Goals and History of e4

Page 18: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

18

Why A New Eclipse Framework

Simplify the Eclipse programming model This will reduce development and maintenance costs and enable a larger

developer community to leverage the platform in their own Eclipse-based applications

Enable the platform for use on emerging web-based runtime technologies This will ensure the platform remains a compelling and viable application

framework in a rapidly changing web technology landscape, and it will allow e4-based applications to leverage web technologies, while remaining insulated from specific technology choices that may quickly become obsolete

Broaden participation in development of the platform This reduces the risks associated with building on a platform largely funded

from a single source. Having a large and diverse group of commercial backers, will ensure the platform remains vibrant and viable over the long term

Page 19: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

19

Main Technical Differences between Eclipse 3.x and e4

Application Model in EMF Complete live model for the application – changes are reflected

immediately in the application

Rendering the Application Maps the model to the UI Allows for a completely new look and feel without touching the internals Allows support for different widget sets – even Adobe Flash or Microsoft

Silverlight

Context Contains the context/environment for all contributions Brokers interaction with the framework: service lookup, service registration

Dependency Injection Allows for POJOs for all contributions

Page 20: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

20

The e4 Story

First presented at EclipseCon ’08

20. May 2008: Mail to e4-dev „A radical approach to explore new paths for e4“ Platform designed from Scratch Based upon an EMF-Application-Model No statics, no singletons, usage of Dependency Injection Based on OSGi-Services

14. January 2010: 1.0M3 released

End of July, 2010: Eclipse SDK 4.0 Early Adopter Release

Page 21: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

21

Eclipse.dk – The Danish Eclipse Society

Eclipse.dk was created in Marts 2007 as a meeting place for everyone interested in the Eclipse (www.eclipse.org) platform.

The purpose of Eclipse.dk is as follows: To promote the knowledge of Eclipse in Denmark. To create networks amongst danish Eclipse-users and developers. To build knowledge on Eclipse in Denmark, especially

In danish institutes of higher education. Between danish companies developing applications based on Eclipse.

Create and maintain a web site on Eclipse for danish users – eclipse.dk.

Strengthen the relations between danish and international Eclipse-users and organizations.

The eclipse.dk society has members representing not only vendors of Eclipse-based products and services, but also users of the platform and representatives from institutions of higher education.

Page 22: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

22

Q & A

Page 23: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

23

About Me

Tonny Madsen, Founder and Owner of The RCP Company

20 years of experience in system development in major companies

9 years experience as the Systems Architect of an 20+ MLoC project

8 years of experience with Eclipse and Eclipse RCP

Solutions Member of the Eclipse Foundation Chairman of Eclipse.dk Extern Lecturer at IT-University on Model Driven Development

and Domain Specific Languages Regular speaker at EclipseCon, Eclipse Summit, etc

Page 24: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

24

If You Want to Know More about Eclipse

The foundation: http://eclipse.org

The Danish User Group: http://eclipse.dk

The training: http://www.eclipse.org/community/training/classes.php

Resources on Eclipse: http://www.eclipse.org/resources/

Consolidated Blog: http://planeteclipse.org/

Page 25: Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

PR0029 - 2010-05-31

25

If You Want to Know More about e4

The Project: http://www.eclipse.org/e4/

Downloading e4: http://download.eclipse.org/e4/downloads/

The Wiki: http://wiki.eclipse.org/E4

The training: Not yet, but coming after the Summer

Tutorials on e4: http://www.vogella.de/articles/EclipseE4/article.html

A “create an application” tutorial from Lars Vogel