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

Rich Ajax Platform - Programming for Web and Rich Client

Nov 30, 2014

Download

Technology

Fabian Lange

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 :-)
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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