Modernizarea .NET-ului legacy fără rescriere
O rescriere e de obicei opțiunea cea mai riscantă de pe masă, și de obicei prima propusă. Îngheață livrarea de funcționalități, reimplementează din memorie ani de cazuri-limită și cere business-ului să aibă încredere într-un singur cutover mare.
Strangler, nu rescriere
Învelesc sistemul legacy și rutez funcționalitatea nouă printr-un strat .NET modern. Fiecare capabilitate nouă se livrează pe stack-ul curent; codul vechi rulează neatins până când o anumită bucată e gata de mutat. În timp suprafața modernă crește și nucleul legacy se micșorează, fără nicio zi în care business-ul e oprit.
Rulez ambele, compar, apoi fac cutover
Pentru orice e riscant - un calcul de taxe, o rulare de facturare, o migrare - rulez implementarea nouă lângă cea veche și compar rezultatul pe date reale înainte de comutare. Diferențele sunt bug-uri găsite în privat, nu în producție.
Nu poți moderniza ce nu înțelegi
VB.NET WebForms, Visual WebGui, EDMX, Web API clasic: sistemul nou e sigur exact în măsura în care înțelegi cum se comportă cel vechi. Modernizarea nu e un start de la zero, e o preluare atentă.