Das Beste an einer Migration ist der Tag, an dem sie aufhört. Bis dahin zahlt Brandt Haustechnik doppelt: zwei Wege, die jemand testen muss, zwei Kopien jeder Regel, eine Schutzschicht, Schalter, Brücken und Messwerte für beide Welten. Erst mit dem Abschalten wird aus dem Umbau eine Ersparnis, und erst dann verlieren Sie den Rückweg. Diese Lektion plant das Ende so sorgfältig wie den Anfang.

Zwei Begriffe vorab. Das alte Programm ist die Fassung des Auftragsbuchs, die direkt mit der Datenbank spricht (DataSet, ADO.NET, Windows-Anmeldung). Wer die Windows-Hülle behält und die neuen Seiten darin zeigt (Lektion M4.4), entfernt aus ihr den alten Weg; wer sie ganz durch Web ersetzt, schaltet das Programm ab. Der Ablauf unten gilt für beide, und wo sie sich unterscheiden, steht es dabei. Und die Fassade im Sinne des Strangler-Fig-Musters ist bei uns kein Proxy, sondern die gemeinsame API samt Weiche (Lektion M1.4).

Was Microsoft über das Ende sagt

Microsofts Dokumentation zum Strangler-Fig-Muster beschreibt das Ende in drei Sätzen, die für das Auftragsbuch zählen:

  • Sind alle Funktionen migriert und gibt es keine Abhängigkeiten zum Altsystem mehr, wird es außer Betrieb genommen; danach wird die Fassade entfernt, und der Client spricht direkt mit dem neuen System.
  • Die Fassade lässt sich auch behalten, als Adapter für Altclients, solange der Kern für neuere Clients erneuert wird. Microsoft nennt sie eine Übergangsarchitektur, deren Nutzen (weniger Risiko) gegen ihre befristeten Kosten abzuwägen ist.
  • Für die Datenbank gilt: Der Rückweg bleibt offen, solange die alten Strukturen und die Synchronisierung noch da sind. Wer die alten Objekte entfernt, müsste sie wiederherstellen und Änderungen nachspielen, was Aufwand und Risiko erheblich erhöht. Das Entfernen ist deshalb ein bewusst letzter Schritt, erst nach der Validierung des neuen Systems.

Daraus folgt die Reihenfolge der Lektion: zuerst alles, was sich umkehren lässt (Zugriff sperren, beobachten), zuletzt alles, was sich nicht umkehren lässt (Contract, Löschen).