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

Code Days München 2019: Wir prügeln den Monolithen ins Web

Manuel Meyer
January 23, 2019

Code Days München 2019: 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 von VB/C#/WinForms/WPF nach Angular geschafft haben.

Manuel Meyer

January 23, 2019
Tweet

More Decks by Manuel Meyer

Other Decks in Programming

Transcript

  1. BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF HAMBURG

    KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH Wir prügeln den Monolithen ins Web! Code Days München 23.01.2019 Thomas Gassmann, [email protected] Manuel Meyer, [email protected] @gassmannT @manumeyer1
  2. Wer sind wir? Thomas Gassmann Consultant, Trainer, Speaker [email protected] @gassmanT

    www.thomasgassmann.net Manuel Meyer Consultant, Trainer, Speaker [email protected] @manumeyer1 www.manuelmeyer.net
  3. Agenda 1. Die Ausgangslage 2. Die Herausforderungen 3. Wo ist

    eigentlich das Problem? 4. Der Lösungsansatz 5. Probleme (und Lösungen) aus der Praxis.
  4. --Udi Dahan „The integration Problem“ & „The black hole of

    coupling“ Own the Future: https://www.youtube.com/watch?v=2iYdKQXGY2E Slides: https://www.slideshare.net/udidahan/own-the-future
  5. --Udi Dahan „The integration Problem“ & „The black hole of

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

    Wiese ▪ Den User nicht überfordern ▪ Exploratives testen & ablösen ▪ Agile Entwicklung.
  7. Was ist SignalR? ▪ Ist eine Bibliothek für ASP.NET ▪

    Ermöglicht die Kommunikation vom Server zum Client (der im Browser läuft) ▪ Basiert auf WebSockets ▪ Bietet Fallback-Mechanismen z.B. Long-Polling ▪ Server- sowie Clientseitige Frameworks vorhanden.
  8. Wieso Angular? ▪ Typescript als Programmiersprache ▪ Funktionalität / Anpassbarkeit

    ▪ Gutes Tooling (Angular CLI) ▪ Grosse Community und Google ▪ NgRx Bibliothek für State Management ▪ Hohe Performance, im Kundenprojekt: Initial load ~193 Request < 2 sec Page switch < 0.5 sec.
  9. Master / Slave Beziehung ▪ Das alte System ist das

    Master System ▪ Der Master startet das Slave System ▪ Der Master verwaltet das Login/Logout der User im Slave-System ▪ Das Slave-System erhält vom Master einen Identity Token ▪ Mittelfristig wird das neue System zum Master.
  10. Das Veto-Recht ▪ Jede Applikation sollte ein Veto-Recht haben ▪

    Beispiel: Während System A einen Datensatz bearbeitet, darf in System B nicht auf einen anderen gewechselt werden.
  11. 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…
  12. Lösung 3 ▪ «Schau im alten System wies funktioniert» reicht

    nicht als Spezifikation. ▪ Die Kunst der Anforderungsaufnahme muss beherrscht werden. ▪ Nicht alles selbst bauen!
  13. 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.
  14. Dankeschön! Manuel Meyer Consultant, Trainer, Speaker [email protected] Thomas Gassmann Consultant,

    Trainer, Speaker [email protected] @gassmanT www.thomasgassmann.net @manumeyer1 www.manuelmeyer.net