Upload
fabian-lange
View
2.072
Download
1
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
codecentric AG
Developing for Web and Rich Client
RICH AJAX PLATFORM
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
codecentric AG
- SWT for the Web
SO WHAT IS IT?
09.04.2023 3
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
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
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
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
codecentric AG
DEMO
09.04.2023 8
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
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
codecentric AG
MORE TOPICS
09.04.2023 11
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
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
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
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
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
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
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
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