Questa è una domanda molto ampia ovviamente, ma cercherò di dare alcuni suggerimenti su come affrontarla:
-
Il primo obiettivo è scrivere alcuni script (procedure memorizzate) per testare il database del 2005. Esegui tutti i tuoi sprocs esistenti, conta i record nelle tabelle, elenca gli indici, ecc. Puoi farlo in modo da poterli eseguire nel 2005 e poi nel 2008/2012 dopo aver terminato la migrazione. Ti aiuterà a dimostrare lo schema e i dati sono stati superati correttamente.
-
Eseguire un backup del database del 2005 e ripristinarlo nel 2008/2012. Puoi farlo parallelamente al passaggio 1, se lo desideri. Inizia semplicemente a usarlo. È stato importato tutto bene? Supera il test della vista? Qualche errore da correggere?
-
Dopo il passaggio 2, vai avanti e crea una copia del codice .NET 2.0 corrente e puntalo alla nuova istanza dal passaggio 2. L'applicazione funziona? Ancora una volta, supera il test della vista?
-
Esegui l'iterazione con la copia dell'applicazione e il nuovo database finché non ti senti sicuro. Se hai una suite di test per la tua base di codice, ovviamente, questo ti aiuterà a dimostrare che le cose vanno bene piuttosto che usare il tuo intuito.
Per quanto riguarda il passaggio da .NET 2.0 a .NET 4.0/4.5 ...
-
La base di codice dovrebbe essere compatibile con le versioni precedenti. L'unico problema che potrei vedere è se altri sistemi dipendono dalla tua base di codice. Se hai una libreria principale e vuoi aggiornarla alla 4.0 e un altro sistema che è ancora su 2.0 ha bisogno di quella libreria, allora sei nei guai.
-
Aspetterei sicuramente di aggiornare la versione .NET fino a dopo si termina la migrazione del database. Se le cose vanno male durante la migrazione, vuoi sapere che non è .NET. Ti aiuterà a limitare bug e problemi.
Dopo aver fatto tante migrazioni come questa qualche consiglio generale:
-
Sentiti libero di creare nuove istanze/sistemi e testare, testare, testare. Non provare a lavorare direttamente con il codice esistente nel controllo del codice sorgente o a lavorare con distribuzioni/server esistenti. Copialo e provalo.
-
Scrivi strumenti e script che ti aiutino ad automatizzare i test di sistema. Vuoi essere in grado di sapere "Sì, per quanto ne so, lo schema è esattamente lo stesso".
-
Non rendere le tue iterazioni troppo lunghe. Iterare in piccoli modi e poi dimostrare che ha funzionato e poi andare avanti.
Spero di esserti stato d'aiuto.