Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dev Days 2020: Wir prügeln den Monolithen ins Web

7252086bae9203045dd7f5664fd96a07?s=47 Manuel Meyer
December 20, 2020

Dev Days 2020: Wir prügeln den Monolithen ins Web

In Projekten für unsere Kunden treffen wir heutzutage immer wieder die gleiche Situation an: Die Kernapplikation der Unternehmung ist über mehrere Jahrzehnte und verschiedene Technologien zu einem funktionalen aber hässlichen Monolithen herangewachsen. Allen ist klar, dass eine Modernisierung nötig ist. Aber wie? Mehrere Modernisierungsprojekte sind bereits katastrophal gescheitert. In dieser Session beleuchten wir einen Ausweg aus der Misere. Wir zeigen einen Ansatz, bei welchem hochkomplexe Desktop-Applikationen allen Problemen zum Trotz schrittweise ins Web überführt werden können. Wir plaudern aus dem Nähkästchen und erzählen, wie wir für unseren Kunden die Migration nach Angular geschafft haben.

7252086bae9203045dd7f5664fd96a07?s=128

Manuel Meyer

December 20, 2020
Tweet

Transcript

  1. DevDays 2020 BRAINTIME Symposium #trivadisdevdays20 Wir prügeln den Monolithen ins

    Web Manuel, Thomas @manumeyer1 @gassmannT
  2. Agenda ▪ Die Ausgangslage ▪ Die Herausforderungen ▪ Wo ist

    eigentlich das Problem? ▪ Der Lösungsansatz ▪ Probleme (und Lösungen) aus der Praxis.
  3. Manuel Meyer helps customers: • to kick-start the Azure journey.

    • to architect, implement and optimize their Azure Solutions www.manuelmeyer.net www.azurezurichusergroup.com @manumeyer1
  4. Thomas Gassmann helps customers: • to architect and implement their

    business applications • with the migration of large application www.thomasgassmann.net @gassmannT
  5. Die Ausgangslage

  6. Der Kunde ruft an: „…Projekt…“ „…vom Desktop ins Web…“ „…Migration

    läuft nicht…“ „…brauchen Unterstützung…“
  7. None
  8. None
  9. MACINTOSH Performa 550 LC (mit Ethernet!) (und Tetris!!!)

  10. „Wie lange ist 26 Jahre wirklich?“

  11. None
  12. None
  13. None
  14. Aber wie kam es so weit?

  15. None
  16. None
  17. 26 Jahre später…

  18. None
  19. Die Herausforderungen

  20. Herausforderungen von modernen Applikationen Fast, fluid, and reliable experience Quick

    functionality and content updates Cross-platform engagement Intelligent customization Authentication and identity, sensitive data handling HELLO CUSTOM OFFER ☺ New ways to interact with customers
  21. Wo ist eigentlich das Problem?

  22. „Das ist so alt, dass muss man doch komplett neu

    schreiben!“ --Alle
  23. None
  24. None
  25. None
  26. „Die Utopie der grünen Wiese“ --Manuel & Thomas

  27. „The worst strategic mistake is rewriting code from scratch“ --Joel

    Spolsky Things you should never do: https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/
  28. „The integration Problem“ & „The black hole of coupling“ --Udi

    Dahan Own the Future: https://www.youtube.com/watch?v=2iYdKQXGY2E Slides: https://www.slideshare.net/udidahan/own-the-future
  29. Quelle: https://www.slideshare.net/udidahan/own-the-future

  30. „The integration Problem“ & „The black hole of coupling“ --Udi

    Dahan Own the Future: https://www.youtube.com/watch?v=2iYdKQXGY2E Slides: https://www.slideshare.net/udidahan/own-the-future
  31. Ziele des Lösungsansatzes ▪ Kein Big Bang ▪ Keine grüne

    Wiese ▪ Den User nicht überfordern ▪ Exploratives testen & ablösen ▪ Agile Entwicklung.
  32. Der Lösungsansatz

  33. Ist Zustand: Clients mit zentraler Datenbank Clients Die Software läuft

    auf den einzelnen Clients Zentrale Datenbank Innerhalb des Unternehmens Client 1 Client 2 Client … Database
  34. Clients Die Software läuft auf den einzelnen Clients App Server

    Bussiness Logik innerhalb des Unternehmens zentralisiert. Zentrale Datenbank Innerhalb des Unternehmens Client 1 Client 2 Client … App Server Database Auftrennung der Business Logik
  35. Clients Legecy App wird schrittweise ins Web migriert und kommuniziert

    mit der Legecy App über SignalR App Server z.B. Rest Service in der Cloud oder vorerst noch im Unternehmen Zentrale Datenbank In der Azure Cloud oder vorerst noch im Unternehmen Web App Legacy Client App Server Database Schrittweise Migration ins Web
  36. None
  37. Kommunikation zwischen der alten und der neuen Welt

  38. None
  39. None
  40. DEMO https://github.com/Trivadis/WebWinFormsInteraction

  41. 4 Probleme aus der Praxis (mit Lösungen)

  42. Problem 1 „Die Spezifikation ist die alte Anwendung.“

  43. Lösung 1

  44. Lösung 1 Photo credit: Mark Spearman on VisualHunt.com / CC

    BY
  45. Photo credit: zoetnet on Visual Hunt / CC BY

  46. Problem 2 „Das muss im Web genau so aussehen wie

    jetzt…“
  47. Lösung 2

  48. Photo credit: Chris Blakeley on Visualhunt / CC BY-NC-ND

  49. Lösung 2 ▪ Einen Partner für UX & UI Design

    involvieren ▪ Muss können: «Web User Experience Design» ▪ Muss können: «Web User Interface Design» ▪ Muss können: CODE liefern! ▪ ….sonst…
  50. None
  51. Problem 3: Das DatePicker Problem

  52. Lösung 3 ▪ «Schau im alten System wies funktioniert» reicht

    nicht als Spezifikation ▪ Die Kunst der Anforderungsaufnahme muss beherrscht werden ▪ Nicht alles selbst bauen! ▪ Kompromisse eingehen!.
  53. Problem 3 „Bei Google geht’s doch auch. Schau mal auf

    meinem Handy…“
  54. Lösung 4

  55. Zusammenfassung ▪ Die Big Bang Migration und die grüne Wiese

    sind Illusionen ▪ Die Ablösung muss als normale Evolution des Produkts angeschaut werden ▪ Der gezeigte Lösungsansatz bietet einen Weg aus der Misere ▪ Aber: Das Web ist und bleibt eine andere Welt.
  56. Thank you! Manuel Meyer www.manuelmeyer.net @manumeyer1 manuel.meyer@trivadis.com Thomas Gassmann www.thomasgassmann.net

    @gassmannT thomas.gassmann@trivadis.com
  57. #trivadisdevdays20 Wir prügeln den Monolithen ins Web

  58. None
  59. None