OpenDolphin: Enterprise Apps for collaboration on Desktop, Web, and Mobile

923 views

Published on

see http://open-dolphin.org

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
923
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

OpenDolphin: Enterprise Apps for collaboration on Desktop, Web, and Mobile

  1. 1. OpenDolphin Enterprise Apps for Desktop, Web & Mobile Donnerstag, 7. November 13
  2. 2. OpenDolphin Enterprise Apps for Desktop, Web & Mobile Donnerstag, 7. November 13
  3. 3. Collaborative Enterprise Desktop Android iPad Embedded Donnerstag, 7. November 13 for for for for the office the field meetings displays
  4. 4. Tour Guide Single client Multiple clients Multiple channels Donnerstag, 7. November 13
  5. 5. Single client Enterprise == Server-side application Clean separation Least possible coupling Donnerstag, 7. November 13
  6. 6. View Model Controller Model Shared Presentation Model Donnerstag, 7. November 13
  7. 7. View Model What Controller Model Shared Presentation Model Donnerstag, 7. November 13
  8. 8. View How Model What Controller Model Shared Presentation Model Donnerstag, 7. November 13
  9. 9. Client View How Model What Controller Model Shared Presentation Model Donnerstag, 7. November 13
  10. 10. Client View Server How Model What Controller Model Shared Presentation Model Donnerstag, 7. November 13
  11. 11. How it works Asynchronous commands “@KentBeck: If MVC is so damn clear, in strictdo I see classes like sequence why XViewController & YViewModel? Rich, generic models in Something's wrong with this picture.” managed environment 20. April 2013 Donnerstag, 7. November 13
  12. 12. How it works Asynchronous commands in strict sequence Rich, generic models in managed environment Donnerstag, 7. November 13
  13. 13. Independent Views Donnerstag, 7. November 13
  14. 14. View Controller Shared Presentation Model Donnerstag, 7. November 13 abc
  15. 15. LoginAction View Controller Shared Presentation Model Donnerstag, 7. November 13 abc
  16. 16. LoginAction View Controller id: currentUser name passw loggedIn Shared Presentation Model Donnerstag, 7. November 13 abc
  17. 17. LoginAction View Controller id: currentUser name passw loggedIn id: currentUser name passw loggedIn Shared Presentation Model Donnerstag, 7. November 13 abc
  18. 18. LoginAction Name Passw Login View Controller id: currentUser name passw loggedIn id: currentUser name passw loggedIn Shared Presentation Model Donnerstag, 7. November 13 abc
  19. 19. LoginAction Name Passw Login binding View Controller id: currentUser name passw loggedIn id: currentUser name passw loggedIn Shared Presentation Model Donnerstag, 7. November 13 abc
  20. 20. LoginAction Name Passw Login View Controller id: currentUser name passw loggedIn id: currentUser name passw loggedIn Shared Presentation Model Donnerstag, 7. November 13 abc
  21. 21. Name LoginAction abc Passw Login View Controller id: currentUser abc name passw loggedIn id: currentUser abc name passw loggedIn Shared Presentation Model Donnerstag, 7. November 13 abc
  22. 22. Name Passw LoginAction abc *** Login View Controller id: currentUser abc name abc passw loggedIn id: currentUser abc name abc passw loggedIn Shared Presentation Model Donnerstag, 7. November 13 abc
  23. 23. Name Passw LoginAction abc *** Login View Controller id: currentUser abc name abc passw loggedIn id: currentUser abc name abc passw loggedIn Shared Presentation Model Donnerstag, 7. November 13 abc
  24. 24. Name Passw Login LoginAction abc *** Login View Controller id: currentUser abc name abc passw loggedIn id: currentUser abc name abc passw loggedIn Shared Presentation Model Donnerstag, 7. November 13 abc
  25. 25. Name Passw LoginAction abc *** read Login View Controller id: currentUser abc name abc passw loggedIn id: currentUser abc name abc passw loggedIn Shared Presentation Model Donnerstag, 7. November 13 abc
  26. 26. Name Passw LoginAction abc *** Login write View Controller id: currentUser abc name abc passw loggedIn id: currentUser abc name abc passw loggedIn Shared Presentation Model Donnerstag, 7. November 13 abc
  27. 27. Name Passw LoginAction abc *** Login View Controller id: currentUser abc name abc passw loggedIn TRUE id: currentUser abc name abc passw loggedIn TRUE Shared Presentation Model Donnerstag, 7. November 13 abc
  28. 28. LoginAction View Controller id: currentUser abc name abc passw loggedIn TRUE id: currentUser abc name abc passw loggedIn TRUE Shared Presentation Model Donnerstag, 7. November 13 abc
  29. 29. Create PM ClientPresentationModel user = clientDolphin.presentationModel( CURRENT_USER, USER, new ClientAttribute(NAME), new ClientAttribute(PASSW), new ClientAttribute(LOGGED_IN) ); Donnerstag, 7. November 13
  30. 30. Bind to view bind(NAME).of(user) .to(TEXT).of(nameTextField); Donnerstag, 7. November 13
  31. 31. Send command clientDolphin.send(LOGIN); Donnerstag, 7. November 13
  32. 32. Read from store ServerPresentationModel user = serverDolphin.getAt(CURRENT_USER); String name = user.getAt(NAME).getValue(); Donnerstag, 7. November 13
  33. 33. Change value changeValue( user.getAt(LOGGED_IN), true ); Donnerstag, 7. November 13
  34. 34. Multiple clients Presence Notification Instant update Shared information Donnerstag, 7. November 13
  35. 35. Multiple clients in collaboration Donnerstag, 7. November 13
  36. 36. Client Server View Controller Model Model Shared Presentation Model Donnerstag, 7. November 13
  37. 37. Server View 1 Controller Model View 2 Model Donnerstag, 7. November 13 Model Controller Model Event Bus Client
  38. 38. Multiple channels Same application logic Different UI technologies Least common denominator Donnerstag, 7. November 13
  39. 39. Multiple channels Same application logic Different UI technologies Least common denominator Full channel fidelity! Donnerstag, 7. November 13
  40. 40. Server View 1 Controller Model View 2 Model Donnerstag, 7. November 13 Model Controller Model Event Bus Client
  41. 41. Server Desktop Controller Model Mobile Web Model Donnerstag, 7. November 13 Model Controller Model Event Bus Client
  42. 42. Swing iPhone JavaFX Hybrid Web Android Nexus Donnerstag, 7. November 13
  43. 43. Embedded device Donnerstag, 7. November 13
  44. 44. JavaFX + PI Donnerstag, 7. November 13
  45. 45. OpenDolphin What it is Why we care How it works Donnerstag, 7. November 13
  46. 46. OpenDolphin is a small, generic library for communication between view and controller in an async [remote] fashion with presentation models. Donnerstag, 7. November 13
  47. 47. Why we care Save money Protect investment Outperform competition Donnerstag, 7. November 13
  48. 48. Save money Implement cleanly Less maintenance costs Easy to test Donnerstag, 7. November 13
  49. 49. Protect investment UI channels come and go, application logic lives on. You can bet who will win or bet that things change. Donnerstag, 7. November 13
  50. 50. Lead the pack Multi-user, multi-channel, collaboration, instant updates, 3D, undo/redo, validation, lazy loading, local devices, ... Donnerstag, 7. November 13
  51. 51. Channel fidelity Donnerstag, 7. November 13
  52. 52. Use when Clean is better low coupling, build, test, maintain, extend, safe threading The future is open Donnerstag, 7. November 13
  53. 53. Donnerstag, 7. November 13
  54. 54. dierk.koenig@canoo.com @mittie @OpenDolphin open-dolphin.org github.com/canoo/open-dolphin available from MavenCental Donnerstag, 7. November 13
  55. 55. canoo UI Engineering Donnerstag, 7. November 13
  56. 56. canoo UI Engineering We enable you to write great applications. Donnerstag, 7. November 13

×