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.

4.client

7 views

Published on

Waltz (ex. TangoWebapp) workshop @SOLARIS. Client

Published in: Software
  • Be the first to comment

  • Be the first to like this

4.client

  1. 1. Exercise II. Waltz (ex. TangoWebapp) installation guide* * https://github.com/tango-controls/tango-webapp/wiki/TangoWebapp-Workshop@SOLARIS
  2. 2. Waltz (ex. TangoWebapp) overview [Live]
  3. 3. Waltz (ex. TangoWebapp) insights
  4. 4. Exercise III. IDE setup guide* * https://github.com/tango-controls/tango-webapp/wiki/ TangoWebapp-Workshop@SOLARIS#iii-ide-setup
  5. 5. What is TangoWebapp?
  6. 6. 04.07.2018 Igor Khokhriakov & Olga Merkulova 6 1) A bunch of jmvc applications 2) Custom backends: user-context; terminal; etc
  7. 7. 04.07.2018 Igor Khokhriakov & Olga Merkulova 7 3) Each jmvc application
  8. 8. 04.07.2018 Igor Khokhriakov & Olga Merkulova 8 4) Putting it all together
  9. 9. JavaScriptMVC-1.5.x (jmvc)
  10. 10. MVC... WAT?
  11. 11. 04.07.2018 Igor Khokhriakov & Olga Merkulova 13
  12. 12. 04.07.2018 Igor Khokhriakov & Olga Merkulova 14 ● https://github.com/jmvc-15x/javascriptmvc-1.5.x
  13. 13. MVC.Model.extend
  14. 14. OpenAjax.hub .publish .subscribe
  15. 15. Tests console
  16. 16. 04.07.2018 Igor Khokhriakov & Olga Merkulova 18 $> ./jmvcc jmvc/assemble
  17. 17. Webix
  18. 18. 04.07.2018 Igor Khokhriakov & Olga Merkulova 21 Webix is an integrated UI framework:
  19. 19. webix.protoUI
  20. 20. webix.protoUI + composition
  21. 21. Data binding
  22. 22. Exercise IV. Developing custom dashboard for Waltz (ex. TangoWebapp)* * https://github.com/tango-controls/tango-webapp/wiki/ TangoWebapp-Workshop@SOLARIS_development #iv-developing-custom-dashboard-for-waltz-ex-tangowebapp
  23. 23. TangoWebapp Architecture
  24. 24. 04.07.2018 Igor Khokhriakov & Olga Merkulova 27 1) Layered architecture 2) OpenAjax for loose coupling 3) Platform API
  25. 25. TangoRequestAPI Usage *webix.promise – like future in C++/Python/Java
  26. 26. PlatformAPI.UIBuilder
  27. 27. PlatformAPI.UIBuilder
  28. 28. PlatformAPI.UserContext
  29. 29. UserContext backend
  30. 30. PlatformAPI.UserContext
  31. 31. PlatfrormAPI.Stateful mixin
  32. 32. PlatfromAPI.mixins
  33. 33. PlatformAPI Tango primitives
  34. 34. PlottingPlotting
  35. 35. Deployment&CI
  36. 36. 04.07.2018 Igor Khokhriakov & Olga Merkulova 39 $> ./jmvcc jmvc/assemble → TangoWebapp.war
  37. 37. 04.07.2018 Igor Khokhriakov & Olga Merkulova 40 Branch based build by Travis
  38. 38. Exercise V. Developing custom application using Waltz (ex. TangoWebapp) platform* * https://github.com/tango-controls/tango-webapp/wiki/ TangoWebapp-Workshop@SOLARIS_development #v-developing-custom-application-using-waltz-ex-tangowebapp-platform
  39. 39. Exercise VI. Advanced exercise* * https://github.com/tango-controls/tango-webapp/wiki/ TangoWebapp-Workshop@SOLARIS_development #vi-advanced-exercise
  40. 40. Issues
  41. 41. Nashorn (JS5, can not handle complex libraries) JSDoc custom parser Documentation (User/Developer)
  42. 42. Do not blame legacy! There is no silver bullet! https://vimeo.com/181766947
  43. 43. 04.07.2018 Igor Khokhriakov & Olga Merkulova 48 ● Improve Platform API – Inject context menu – Include widgets VS include “platform” – Improve widgets OpenAjax subscription ● Get rid off Nashorn ● Replace custom JSDoc parser with library ● Use JS6 features (Get rid off jmvc???) – Classes/modules/lambda etc ● Documentation (Q'3 2018)
  44. 44. 04.07.2018 Igor Khokhriakov & Olga Merkulova 49 Linux terminal back-end tango-controls-webapp/tango-webapp-terminal-backend – Python server app that runs linux terminal session – Handshake procedure: start docker for each user
  45. 45. THANK YOU! Questions? mail@ingvord.ru tango-controls/tango-webapp tango-controls-webapp

×