Eintauchen in MVP mit GWT

1.856 Aufrufe

Veröffentlicht am

GWT's Architektur ist darauf ausgerichtet, MVP zu unterstützen, ein Pattern für komplexe Server-Client-Side-Applikationen.
Der größte Vorteil dieses Patterns liegt in der guten Testbarkeit mittels Unittests. Aufwändige Tests von UI-Komponenten werden vermieden.
Im Vortrag wird der Aufbau und die Vorteile von MVP vorgestellt sowie das Zusammenspiel von MVP und GWT an praktischen Beispielen gezeigt.

0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.856
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
823
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Eintauchen in MVP mit GWT

  1. 1. Eintauchen in MVP mit GWT Lisi Blümelhuber 19.10.2013
  2. 2. Vorstellung Lisi Blümelhuber • Software-Engineering Studium • Software Developer bei Cenarion Information Systems Cenarion Information Systems GmbH • 30 Mitarbeiter, Sitz in Wien • Umfassendes Know-how der Versicherungsbranche • Enterprise-Applikationen Entwicklung im Java-Umfeld seit über zehn Jahren 2
  3. 3. Aufbau • MVP – Model View Presenter  Warum MVP • GWT – Google Web Toolkit     Warum MVP in GWT Activities & Places Wie ist MVP eingebunden Zusammenspiel MVP / Activities & Places • Erfahrungswerte 3
  4. 4. GWT • • • • Browserbasierte Applikationen Java  Javascript Thick Client Unterstützt Browser-History Activities & Places – Framework • Serverkommunikation: asynchrone Requests 4
  5. 5. MVP – Model View Presenter Model Presenter View 5
  6. 6. MVP – MVC Model Model Presenter Controller View View 6
  7. 7. MVP – Model View Presenter • Erstmals erwähnt 1996 • Verwandt mit MVC • Ziele – Verantwortlichkeiten trennen – Flexibilität von UIs bei Änderungen des Modells erhöhen • 2+7 grundlegende Fragen 7
  8. 8. MVP (Fragen – Paper) Data UI How do I manage my data? How does the user interact with my data? 8
  9. 9. MVP (Fragen – Paper) Data What is my data? 9
  10. 10. MVP (Fragen – Paper) Data What is my data? How do I specify my data? 10
  11. 11. MVP (Fragen – Paper) Data What is my data? How do I specify my data? How do I change my data? 11
  12. 12. MVP (Fragen – Paper) UI How do I display my data? 12
  13. 13. MVP (Fragen – Paper) UI How do I display my data? How do events map into changes in my data? 13
  14. 14. MVP (Fragen – Paper) UI How do I display my data? How do events map into changes in my data? How do I put it all together? 14
  15. 15. MVP (Fragen - Paper) How do I partition my application between client and server? Security 15
  16. 16. Vorteile von MVP • Trennung von Model und View -> mehr Flexibilität • Ein Model – mehrere Views • Testbarkeit • Undo-/Redo-Funktionalität 16
  17. 17. Warum MVP in GWT • Leichtere Arbeitsteilung • Testbarkeit • EventBus 17
  18. 18. Warum MVP in GWT • Leichtere Arbeitsteilung – Lose Kopplung UI – Logik – Struktur erleichtert Orientierung • Testbarkeit • EventBus 18
  19. 19. GWT Testbarkeit • GWTTestCase – Einzige Testmöglichkeit für natives Javascript – Langsam (Startup Browser) – Simulation von Usereingaben nicht trivial 19
  20. 20. Warum MVP in GWT • Leichtere Arbeitsteilung • Testbarkeit – UI Komponenten in GWT: • Schwer testbar • Tests langsam – Abgrenzung business logic / display logic • EventBus 20
  21. 21. Warum MVP in GWT • Leichtere Arbeitsteilung • Testbarkeit • EventBus – Don‘t call me, I‘ll call you – Caching / Batching erleichtert 21
  22. 22. Activities & Places • • • • Browser-History URL = String Place repräsentiert Status Activity reagiert auf User-Eingaben  Seiteninhalt laden und initialisieren  UI anzeigen  Kommunikation mit Serverseite 22
  23. 23. MVP in GWT 23
  24. 24. MVP in GWT 24
  25. 25. MVP in GWT View 25
  26. 26. MVP in GWT Presenter 26
  27. 27. MVP in GWT Test 27
  28. 28. MVP – Activities & Places • Activity ~ Presenter 28
  29. 29. Activity - Presenter Place Hält State für initialisiert Activity / Presenter Server View Kommuniziert mit 29
  30. 30. Activity - Presenter Place Hält State für Activity initialisiert View Server Kommuniziert mit Presenter 30
  31. 31. MVP in GWT Activity / Presenter 31
  32. 32. MVP in GWT View 32
  33. 33. MVP in GWT Presenter 33
  34. 34. MVP in GWT Test 34
  35. 35. Theorie vs. Praxis http://www.web-savvy-marketing.com/wpcontent/uploads/2013/01/Server-Room.jpg 35
  36. 36. Theorie vs. Praxis http://www.nuk3.com/gallery/images/comedy/full/310.jpg 36
  37. 37. Fragen / Diskussion 37
  38. 38. Literatur • Originalpaper zu MVP: http://www.wildcrest.com/Potel/Portfolio/mvp.pdf • GWT: MVP, Activities/Places, Testing: – – – http://www.gwtproject.org/articles/mvp-architecture.html http://www.gwtproject.org/doc/latest/DevGuideMvpActivitiesAndPlaces.html http://www.gwtproject.org/articles/testing_methodologies_using_gwt.html • Google I/O – – – • 2009 - Best Practices for Architecting GWT App http://www.youtube.com/watch?v=PDuhR18-EdM 2010 - GWT Testing Best Practices http://www.youtube.com/watch?v=T_CLzgEL7FA 2013 - Demystifying MVP and EventBus in GWT http://www.youtube.com/watch?v=kilmaSRq49g Martin Fowler: – – http://www.martinfowler.com/eaaDev/uiArchs.html http://martinfowler.com/eaaDev/SupervisingPresenter.html • http://en.wikipedia.org/wiki/Fat_client 38

×