Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

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 />