$30 off During Our Annual Pro Sale. View Details »

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

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.

Manuel Meyer

December 20, 2020
Tweet

More Decks by Manuel Meyer

Other Decks in Programming

Transcript

  1. DevDays 2020
    BRAINTIME Symposium
    #trivadisdevdays20
    Wir prügeln den Monolithen ins Web
    Manuel, Thomas
    @manumeyer1 @gassmannT

    View Slide

  2. Agenda
    ▪ Die Ausgangslage
    ▪ Die Herausforderungen
    ▪ Wo ist eigentlich das Problem?
    ▪ Der Lösungsansatz
    ▪ Probleme (und Lösungen) aus der
    Praxis.

    View Slide

  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

    View Slide

  4. Thomas Gassmann
    helps customers:
    • to architect and implement their business
    applications
    • with the migration of large application
    www.thomasgassmann.net
    @gassmannT

    View Slide

  5. Die Ausgangslage

    View Slide

  6. Der Kunde ruft an:
    „…Projekt…“
    „…vom Desktop ins Web…“
    „…Migration läuft nicht…“
    „…brauchen Unterstützung…“

    View Slide

  7. View Slide

  8. View Slide

  9. MACINTOSH
    Performa 550 LC
    (mit Ethernet!)
    (und Tetris!!!)

    View Slide

  10. „Wie lange ist 26 Jahre wirklich?“

    View Slide

  11. View Slide

  12. View Slide

  13. View Slide

  14. Aber wie kam es so weit?

    View Slide

  15. View Slide

  16. View Slide

  17. 26 Jahre später…

    View Slide

  18. View Slide

  19. Die Herausforderungen

    View Slide

  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

    View Slide

  21. Wo ist eigentlich das
    Problem?

    View Slide

  22. „Das ist so alt, dass muss man doch
    komplett neu schreiben!“
    --Alle

    View Slide

  23. View Slide

  24. View Slide

  25. View Slide

  26. „Die Utopie der grünen Wiese“
    --Manuel & Thomas

    View Slide

  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/

    View Slide

  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

    View Slide

  29. Quelle:
    https://www.slideshare.net/udidahan/own-the-future

    View Slide

  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

    View Slide

  31. Ziele des Lösungsansatzes
    ▪ Kein Big Bang
    ▪ Keine grüne Wiese
    ▪ Den User nicht überfordern
    ▪ Exploratives testen & ablösen
    ▪ Agile Entwicklung.

    View Slide

  32. Der Lösungsansatz

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  36. View Slide

  37. Kommunikation zwischen der
    alten und der neuen Welt

    View Slide

  38. View Slide

  39. View Slide

  40. DEMO
    https://github.com/Trivadis/WebWinFormsInteraction

    View Slide

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

    View Slide

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

    View Slide

  43. Lösung 1

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  47. Lösung 2

    View Slide

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

    View Slide

  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…

    View Slide

  50. View Slide

  51. Problem 3: Das DatePicker
    Problem

    View Slide

  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!.

    View Slide

  53. Problem 3
    „Bei Google geht’s doch
    auch. Schau mal auf
    meinem Handy…“

    View Slide

  54. Lösung 4

    View Slide

  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.

    View Slide

  56. Thank you!
    Manuel Meyer
    www.manuelmeyer.net
    @manumeyer1
    [email protected]
    Thomas Gassmann
    www.thomasgassmann.net
    @gassmannT
    [email protected]

    View Slide

  57. #trivadisdevdays20
    Wir prügeln den Monolithen ins Web

    View Slide

  58. View Slide

  59. View Slide