Rich Ajax Platform - Programming for Web and Rich Client


Published on

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 :-)

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Rich Ajax Platform - Programming for Web and Rich Client

  1. 1. Rich Ajax Platform<br />Developing for Web and Rich Client<br />
  2. 2. Rich Ajax Platform<br />Created under the name W4T (WWWWindowingToolkit)<br />Eclipse project since Ganymede release<br />Donated by Innoopract<br />Maintained by EclipseSource<br />Strategic asset for Eclipse 4 (e4) currently in incubation<br />Eclipse RAP<br />
  3. 3. SWT for the Web<br />So whatisit?<br />17.09.2010<br />3<br />
  4. 4. Interfaces!<br />The reason for using interfaces is that you can switch implementations<br />OSGi - hacking<br />RAP cheats and just claims to be the SWT layer<br />“Unfortunately this is the worst thinkable way of code-reuse”<br />HowDoes RAP Do that?<br />17.09.2010<br />4<br />Application<br />RCP<br />RWT<br />SWT<br />OSGi<br />Operating System<br />* architecturalviewsimplified<br />
  5. 5. RAP is not 100% compatible with RCP<br />And most likely will not be<br />RCP has design flaws preventing multiuser support<br />Workarounds exist, e4 will solve many issues<br />Fail early concept<br />If it is not supported, it doesn’t compile<br />Good news: 100% is often not required<br />100 %<br />17.09.2010<br />5<br />
  6. 6. Isn’t that GWT?<br />No<br />Another Look AtArchitecture<br />17.09.2010<br />6<br />Browser<br />JavaScript Client<br />updates<br />AJAX Bridge<br />AJAX Bridge<br />State<br />Initial state<br />Server<br />
  7. 7. October 2007<br />1.0 release. First release to adhere to RCP/SWT APIs<br />June 2008<br />1.1 release, part of Ganymede. Brings many APIs to par<br />June 2009<br />1.2 release, part of Galileo. Improved stability and response times<br />June 2010<br />1.3 release, part of Helios. Many more APIs. Drag & Drop. More UI goodness<br />Today<br />Large quantities of RCP application code work on RAP<br />Historyof RAP<br />17.09.2010<br />7<br />
  8. 8. Demo<br />17.09.2010<br />8<br />
  9. 9. Migrate existing RCP applications<br />For free*<br />Develop Web Apps RCP Style<br />Reuse developer know-how<br />Easily develop complex applications<br />Compared to traditional way of adding JavaScript widgets<br />Means of web styling<br />Web “compatible” themes<br />*depending on app, your results may vary<br />Light Side<br />17.09.2010<br />9<br />
  10. 10. Don’t build web sites<br />It is a pain in many aspects<br />Differences between desktop and web<br />Loading and saving files, printing and similar<br />Heavy JavaScript<br />Slow<br />RAP does not support all RCP features<br />Some key&mousestuff<br />Drag and Drop<br />GraphicalContext<br />Dark Side<br />17.09.2010<br />10<br />
  11. 11. More Topics<br />17.09.2010<br />11<br />
  12. 12. Next generation Eclipse platform<br />Main goals<br />Single platform for RCP, Web, Server, Cloud<br />Easier plugins<br />Better control over look and feel<br />How?<br />RAP<br />Services<br />CSS Themes<br />Eclipse 4<br />17.09.2010<br />12<br />
  13. 13. Saves development cost<br />When there is a need for an RCP and RAP version<br />Mostly marketing or preference driven<br />Refactor problematic code into separate bundles<br />Correct implementation is chosen at runtime<br />Works to a large extend<br />But requires usually work and differences in tiny details<br />Customers do not want RCP in Web<br />Both platforms have distinctive features and expectations<br />Single Sourcing<br />17.09.2010<br />13<br />
  14. 14. Usual problem with User Interfaces<br />Test business logic separate<br />Selenium<br />Because RAP is a web application Selenium can be used<br />The way the qooxdoo widgets are created make this sometimes tricky<br />RAP Testing Tools<br />Basic set allowing to run UI based tests<br />RCP Testing Tools<br />Do not like the Web Tools? Run test against the RCP version<br />Testing<br />17.09.2010<br />14<br />
  15. 15. RAP can be deployed as OSGi bundle<br />Requires a few bundles, especially Jetty and RAP<br />Can be disguised as WAR and deployed normally<br />WAR contains<br />OSGi runtime<br />Servlet Bridge<br />RAP Bundles<br />Application<br />Deployment<br />17.09.2010<br />15<br />
  16. 16. RAP enables new models for SaaS<br />Serving the big RCP application<br />No need for a lightweight web application copy<br />Single sourcing cuts development cost<br /><br />Full fledged CRM system<br /><br />PHP to Java migration tool<br /><br />Configure your custom Eclipse build<br />Software as a Service<br />17.09.2010<br />16<br />
  17. 17.<br />Marketing site with demos and stories<br /><br />Main resource for technical information<br /><br />Latest news from the RAP team<br /><br />JavaScript Widget Framework used by RAP<br />References<br />17.09.2010<br />17<br />
  18. 18.<br />Introduction for developers & managers<br />Covers RAP 1.1 (works for newer as well)<br />Architecture<br />Includes SWT, RCP and OSGi<br />Development<br />RCP for web and single sourcing<br />Deployment<br />In OSGi or web container<br />The Book<br />17.09.2010<br />18<br />
  19. 19. Fabian Lange<br /> Leiter Competence Center Performance<br />codecentric AGMerscheider Straße 142699 Solingen<br />tel +49 (0) 212.233 628<br /><br /><br />Fragen?<br />17.09.2010<br />19<br />