19
codecentric AG Developing for Web and Rich Client RICH AJAX PLATFORM

Rich Ajax Platform - Programming for Web and Rich Client

Embed Size (px)

DESCRIPTION

My talk for intended for the WebAppDays, which were unfortunately canceled, about the Rich Ajax Platform from Eclipse. Talk includes a live demo which is unfortunately not in the slides :-)

Citation preview

Page 1: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

Developing for Web and Rich Client

RICH AJAX PLATFORM

Page 2: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

- Rich Ajax Platform- Created under the name W4T (WWWWindowingToolkit)

- Eclipse project since Ganymede release- Donated by Innoopract

- Maintained by EclipseSource- Strategic asset for Eclipse 4 (e4) currently in incubation

ECLIPSE RAP

Page 3: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

- SWT for the Web

SO WHAT IS IT?

09.04.2023 3

Page 4: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

- Interfaces!- The reason for using interfaces is that you can switch implementations

- OSGi - hacking- RAP cheats and just claims to be the SWT layer

- “Unfortunately this is the worst thinkable way of code-reuse”

HOW DOES RAP DO THAT?

09.04.2023 4

Operating System

OSGi

SWT

RCP

Application

RWT

* architectural view simplified

Page 5: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

- RAP is not 100% compatible with RCP- And most likely will not be

- RCP has design flaws preventing multiuser support- Workarounds exist, e4 will solve many issues

- Fail early concept- If it is not supported, it doesn’t compile

- Good news: 100% is often not required

100 %

09.04.2023 5

Page 6: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

- Isn’t that GWT?- No

ANOTHER LOOK AT ARCHITECTURE

09.04.2023 6

Server

State

AJAX Bridge AJAX Bridge

Browser

JavaScript Client

Initial st

ate

updates

Page 7: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

- October 2007- 1.0 release. First release to adhere to RCP/SWT APIs

- June 2008- 1.1 release, part of Ganymede. Brings many APIs to par

- June 2009- 1.2 release, part of Galileo. Improved stability and response times

- June 2010- 1.3 release, part of Helios. Many more APIs. Drag & Drop. More UI goodness

- Today- Large quantities of RCP application code work on RAP

HISTORY OF RAP

09.04.2023 7

Page 8: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

DEMO

09.04.2023 8

Page 9: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

- Migrate existing RCP applications- For free*

- Develop Web Apps RCP Style- Reuse developer know-how

- Easily develop complex applications- Compared to traditional way of adding JavaScript widgets

- Means of web styling- Web “compatible” themes

*depending on app, your results may vary

LIGHT SIDE

09.04.2023 9

Page 10: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

- Don’t build web sites- It is a pain in many aspects

- Differences between desktop and web- Loading and saving files, printing and similar

- Heavy JavaScript- Slow

- RAP does not support all RCP features- Some key&mouse stuff

- Drag and Drop

- GraphicalContext

DARK SIDE

09.04.2023 10

Page 11: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

MORE TOPICS

09.04.2023 11

Page 12: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

- Next generation Eclipse platform

- Main goals- Single platform for RCP, Web, Server, Cloud

- Easier plugins

- Better control over look and feel

- How?- RAP

- Services

- CSS Themes

ECLIPSE 4

09.04.2023 12

Page 13: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

- Saves development cost- When there is a need for an RCP and RAP version

- Mostly marketing or preference driven

- Refactor problematic code into separate bundles- Correct implementation is chosen at runtime

- Works to a large extend- But requires usually work and differences in tiny details

- Customers do not want RCP in Web- Both platforms have distinctive features and expectations

SINGLE SOURCING

09.04.2023 13

Page 14: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

- Usual problem with User Interfaces- Test business logic separate

- Selenium- Because RAP is a web application Selenium can be used

- The way the qooxdoo widgets are created make this sometimes tricky

- RAP Testing Tools- Basic set allowing to run UI based tests

- RCP Testing Tools- Do not like the Web Tools? Run test against the RCP version

TESTING

09.04.2023 14

Page 15: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

- RAP can be deployed as OSGi bundle- Requires a few bundles, especially Jetty and RAP

- Can be disguised as WAR and deployed normally- WAR contains

- OSGi runtime- Servlet Bridge- RAP Bundles- Application

DEPLOYMENT

09.04.2023 15

Page 16: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

- RAP enables new models for SaaS- Serving the big RCP application

- No need for a lightweight web application copy

- Single sourcing cuts development cost

- cas-pia.de/en/insight.html- Full fledged CRM system

- migrate.numiton.com- PHP to Java migration tool

- ondemand.yoxos.com/geteclipse/start- Configure your custom Eclipse build

SOFTWARE AS A SERVICE

09.04.2023 16

Page 17: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

- eclipsesource.com/rap- Marketing site with demos and stories

- eclipse.org/rap- Main resource for technical information

- eclipsesource.com/blogs/tag/eclipse-rap- Latest news from the RAP team

- qooxdoo.org- JavaScript Widget Framework used by RAP

REFERENCES

09.04.2023 17

Page 18: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

- www.rap-book.com

- Introduction for developers & managers- Covers RAP 1.1 (works for newer as well)

- Architecture- Includes SWT, RCP and OSGi

- Development- RCP for web and single sourcing

- Deployment- In OSGi or web container

THE BOOK

09.04.2023 18

Page 19: Rich Ajax Platform - Programming for Web and Rich Client

codecentric AG

Fabian Lange

Leiter Competence Center Performance

codecentric AGMerscheider Straße 142699 Solingen

tel +49 (0) 212.233 628 [email protected]

www.codecentric.deblog.codecentric.dewww.meettheexperts.de

FRAGEN?

09.04.2023 19