Rich Ajax PlatformDeveloping for Web and Rich Client
Rich Ajax PlatformCreated under the name W4T (WWWWindowingToolkit)Eclipse project since Ganymede releaseDonated by InnoopractMaintained by EclipseSourceStrategic asset for Eclipse 4 (e4) currently in incubationEclipse RAP
SWT for the WebSo whatisit?17.09.20103
Interfaces!The reason for using interfaces is that you can switch implementationsOSGi - hackingRAP cheats and just claims to be the SWT layer“Unfortunately this is the worst thinkable way of code-reuse”HowDoes RAP Do that?17.09.20104ApplicationRCPRWTSWTOSGiOperating System* architecturalviewsimplified
RAP is not 100% compatible with RCPAnd most likely will not beRCP has design flaws preventing multiuser supportWorkarounds exist, e4 will solve many issuesFail early conceptIf it is not supported, it doesn’t compileGood news: 100% is often not required100 %17.09.20105
Isn’t that GWT?NoAnother Look AtArchitecture17.09.20106BrowserJavaScript ClientupdatesAJAX BridgeAJAX BridgeStateInitial stateServer
October 20071.0 release. First release to adhere to RCP/SWT APIsJune 20081.1 release, part of Ganymede. Brings many APIs to parJune 20091.2 release, part of Galileo. Improved stability and response timesJune 20101.3 release, part of Helios. Many more APIs. Drag & Drop. More UI goodnessTodayLarge quantities of RCP application code work on RAPHistoryof RAP17.09.20107
Demo17.09.20108
Migrate existing RCP applicationsFor free*Develop Web Apps RCP StyleReuse developer know-howEasily develop complex applicationsCompared to traditional way of adding JavaScript widgetsMeans of web stylingWeb “compatible” themes*depending on app, your results may varyLight Side17.09.20109
Don’t build web sitesIt is a pain in many aspectsDifferences between desktop and webLoading and saving files, printing and similarHeavy JavaScriptSlowRAP does not support all RCP featuresSome key&mousestuffDrag and DropGraphicalContextDark Side17.09.201010
More Topics17.09.201011
Next generation Eclipse platformMain goalsSingle platform for RCP, Web, Server, CloudEasier pluginsBetter control over look and feelHow?RAPServicesCSS ThemesEclipse 417.09.201012
Saves development costWhen there is a need for an RCP and RAP versionMostly marketing or preference drivenRefactor problematic code into separate bundlesCorrect implementation is chosen at runtimeWorks to a large extendBut requires usually work and differences in tiny detailsCustomers do not want RCP in WebBoth platforms have distinctive features and expectationsSingle Sourcing17.09.201013
Usual problem with User InterfacesTest business logic separateSeleniumBecause RAP is a web application Selenium can be usedThe way the qooxdoo widgets are created make this sometimes trickyRAP Testing ToolsBasic set allowing to run UI based testsRCP Testing ToolsDo not like the Web Tools? Run test against the RCP versionTesting17.09.201014
RAP can be deployed as OSGi bundleRequires a few bundles, especially Jetty and RAPCan be disguised as WAR and deployed normallyWAR containsOSGi runtimeServlet BridgeRAP BundlesApplicationDeployment17.09.201015
RAP enables new models for SaaSServing the big RCP applicationNo need for a lightweight web application copySingle sourcing cuts development costcas-pia.de/en/insight.htmlFull fledged CRM systemmigrate.numiton.comPHP to Java migration toolondemand.yoxos.com/geteclipse/startConfigure your custom Eclipse buildSoftware as a Service17.09.201016
eclipsesource.com/rapMarketing site with demos and storieseclipse.org/rapMain resource for technical informationeclipsesource.com/blogs/tag/eclipse-rapLatest news from the RAP teamqooxdoo.orgJavaScript Widget Framework used by RAPReferences17.09.201017
www.rap-book.comIntroduction for developers & managersCovers RAP 1.1 (works for newer as well)ArchitectureIncludes SWT, RCP and OSGiDevelopmentRCP for web and single sourcingDeploymentIn OSGi or web containerThe Book17.09.201018
				Fabian Lange				Leiter Competence Center Performancecodecentric AGMerscheider Straße 142699 Solingentel	+49 (0) 212.233 628 10Fabian.Lange@codecentric.dewww.codecentric.deblog.codecentric.dewww.meettheexperts.deFragen?17.09.201019

Rich Ajax Platform - Programming for Web and Rich Client

  • 1.
    Rich Ajax PlatformDevelopingfor Web and Rich Client
  • 2.
    Rich Ajax PlatformCreatedunder the name W4T (WWWWindowingToolkit)Eclipse project since Ganymede releaseDonated by InnoopractMaintained by EclipseSourceStrategic asset for Eclipse 4 (e4) currently in incubationEclipse RAP
  • 3.
    SWT for theWebSo whatisit?17.09.20103
  • 4.
    Interfaces!The reason forusing interfaces is that you can switch implementationsOSGi - hackingRAP cheats and just claims to be the SWT layer“Unfortunately this is the worst thinkable way of code-reuse”HowDoes RAP Do that?17.09.20104ApplicationRCPRWTSWTOSGiOperating System* architecturalviewsimplified
  • 5.
    RAP is not100% compatible with RCPAnd most likely will not beRCP has design flaws preventing multiuser supportWorkarounds exist, e4 will solve many issuesFail early conceptIf it is not supported, it doesn’t compileGood news: 100% is often not required100 %17.09.20105
  • 6.
    Isn’t that GWT?NoAnotherLook AtArchitecture17.09.20106BrowserJavaScript ClientupdatesAJAX BridgeAJAX BridgeStateInitial stateServer
  • 7.
    October 20071.0 release.First release to adhere to RCP/SWT APIsJune 20081.1 release, part of Ganymede. Brings many APIs to parJune 20091.2 release, part of Galileo. Improved stability and response timesJune 20101.3 release, part of Helios. Many more APIs. Drag & Drop. More UI goodnessTodayLarge quantities of RCP application code work on RAPHistoryof RAP17.09.20107
  • 8.
  • 9.
    Migrate existing RCPapplicationsFor free*Develop Web Apps RCP StyleReuse developer know-howEasily develop complex applicationsCompared to traditional way of adding JavaScript widgetsMeans of web stylingWeb “compatible” themes*depending on app, your results may varyLight Side17.09.20109
  • 10.
    Don’t build websitesIt is a pain in many aspectsDifferences between desktop and webLoading and saving files, printing and similarHeavy JavaScriptSlowRAP does not support all RCP featuresSome key&mousestuffDrag and DropGraphicalContextDark Side17.09.201010
  • 11.
  • 12.
    Next generation EclipseplatformMain goalsSingle platform for RCP, Web, Server, CloudEasier pluginsBetter control over look and feelHow?RAPServicesCSS ThemesEclipse 417.09.201012
  • 13.
    Saves development costWhenthere is a need for an RCP and RAP versionMostly marketing or preference drivenRefactor problematic code into separate bundlesCorrect implementation is chosen at runtimeWorks to a large extendBut requires usually work and differences in tiny detailsCustomers do not want RCP in WebBoth platforms have distinctive features and expectationsSingle Sourcing17.09.201013
  • 14.
    Usual problem withUser InterfacesTest business logic separateSeleniumBecause RAP is a web application Selenium can be usedThe way the qooxdoo widgets are created make this sometimes trickyRAP Testing ToolsBasic set allowing to run UI based testsRCP Testing ToolsDo not like the Web Tools? Run test against the RCP versionTesting17.09.201014
  • 15.
    RAP can bedeployed as OSGi bundleRequires a few bundles, especially Jetty and RAPCan be disguised as WAR and deployed normallyWAR containsOSGi runtimeServlet BridgeRAP BundlesApplicationDeployment17.09.201015
  • 16.
    RAP enables newmodels for SaaSServing the big RCP applicationNo need for a lightweight web application copySingle sourcing cuts development costcas-pia.de/en/insight.htmlFull fledged CRM systemmigrate.numiton.comPHP to Java migration toolondemand.yoxos.com/geteclipse/startConfigure your custom Eclipse buildSoftware as a Service17.09.201016
  • 17.
    eclipsesource.com/rapMarketing site withdemos and storieseclipse.org/rapMain resource for technical informationeclipsesource.com/blogs/tag/eclipse-rapLatest news from the RAP teamqooxdoo.orgJavaScript Widget Framework used by RAPReferences17.09.201017
  • 18.
    www.rap-book.comIntroduction for developers& managersCovers RAP 1.1 (works for newer as well)ArchitectureIncludes SWT, RCP and OSGiDevelopmentRCP for web and single sourcingDeploymentIn OSGi or web containerThe Book17.09.201018
  • 19.
    Fabian Lange Leiter CompetenceCenter Performancecodecentric AGMerscheider Straße 142699 Solingentel +49 (0) 212.233 628 10Fabian.Lange@codecentric.dewww.codecentric.deblog.codecentric.dewww.meettheexperts.deFragen?17.09.201019