20
Rich Client GUI's with RCP & RAP Alexey Aristov WeigleWilczek GmbH [email protected] www.weiglewilczek.com

Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Rich Client GUI's with RCP & RAP

Alexey Aristov

WeigleWilczek GmbH

[email protected]

www.weiglewilczek.com

Page 2: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

What is Rich Client?

www.weiglewilczek.com

“A fat client or rich client is a computer (client) in client-server architecture networks which typically provides rich functionality independently of the central server. Originally known as just a 'client' or 'thick client', the name is derived from thin client, describing a computer which heavily depends on a server's applications. ” (Wikipedia)

Page 3: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

Advantages of Rich Clients:

www.weiglewilczek.com

•Reduces server load

•Offline operation

•Better performance

•Access to local resources

•Better OS integration

Page 4: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

Available Rich Client Technologies:

www.weiglewilczek.com

•4GL Environments

•PowerBuilder

•Borland Delphi

•Visual Basic

•<others>

•Microsoft .NET

•Java Based

•SWING

•Eclipse RCP

•NetBeans RCP

•Adobe AIR

Page 5: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

Eclipse RCP

www.weiglewilczek.com

•Technology behind Eclipse IDE

•A Platform for building Client applications with Rich functionality

•History

•Hackers in the eclipse community started building non-IDE apps on 2.1

•Since Eclipse 3.0 IDE aspects were separated from the Workbench

Page 6: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

Advantages of Eclipse RCP

www.weiglewilczek.com

•Very modular

•Well defined programming model

•Familiar look and feel (uses native widgets)

•A lot of high level services and concepts (not only UI)

•OSGi

•Background Jobs

•Data Binding

•Commands

Page 7: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

Example Application (Eclipse Trader)

www.weiglewilczek.com

Page 8: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

RCP By Numbers

www.weiglewilczek.com

•Size of minimal RCP application (on the disk): 15Mb

•VM size of minimal RCP application: ~ 22 Mb

•Time before your application code runs: ~ 1.2 Sec.

•Number of plug-ins in the RCP binary : 23

Page 9: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

What is inside?

www.weiglewilczek.com

Page 10: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

Key Concepts

www.weiglewilczek.com

•Plug-in / Bundle

The basic component in Eclipse with dependencies to other plug-ins / bundles.

•Extension Points and Extentions

The declarative wiring between the Eclipse framework and custom code

•Feature

A group of plug-ins with a version number

•Product

A deployable application with branding, defined in terms of plug-ins or features

Page 11: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

Programming Model

www.weiglewilczek.com

•Create your own plugins

•Make contributions to predefined extension points

•Extends workbench

•It is possible to define your own extension points

•If you want others to extend your software

•Makes it even more modular

•Possible to establish own "plugin eco-system" inside organization

Page 12: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

www.weiglewilczek.com

Demo(RCP)

Page 13: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

Thin Client Technologies

www.weiglewilczek.com

•Plain traditional WEB applications

•JSP

•Servlets

•New wave – AJAX

•More or less static content

•JavaScript code runs inside browser and communicates with server

•Browser becomes a terminal

Page 14: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

Problem?!

www.weiglewilczek.com

Does it mean that we will have to write client code twice?

- in case of usual rich client technologies YES

Page 15: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

Solution!

www.weiglewilczek.com

If you develop your rich client with Eclipse RCP

You may reuse most of your code for the thin client

Page 16: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

Rich Ajax Platform (RAP)

www.weiglewilczek.com

•Is based on the same programming model as RCP

•Reuses a lot of code from RCP

•Simply uses another rendering engine

•instead of SWT

•it uses qooxdoo for client-side presentation

Page 17: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

RCP Applications in a Browser

www.weiglewilczek.com

•In most cases your RCP application will run in a browser out of the box.

•Only few areas are not supported

• i.e. custom drawing of widgets

Page 18: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

Demo

(RAP)

www.weiglewilczek.com

Page 19: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

More Information:

www.weiglewilczek.com

•http://www.eclipse-training.com

•http://www.eclipse.org/rcp

•http://www.eclipse.org/rap

Page 20: Rich Client GUI's with RCP & RAPwiki.eclipse.org/.../2009BankingDayLondon_RichClientGUIs.pdf · 2009-02-18 · Build Rich Client GUI's with RCP & RAP Available Rich Client Technologies:

Build Rich Client GUI's with RCP & RAP

Q&A

www.weiglewilczek.com