Dette er selvfølgelig et meget bredt spørgsmål, men jeg vil prøve at give nogle forslag til, hvordan jeg vil gribe det an:
-
Det første mål er at skrive nogle scripts (lagrede procedurer), der tester din 2005-database. Kør alle dine eksisterende sprocs, tæl poster i tabeller, listeindekser osv. Du gør dette, så du kan køre dem i 2005 og derefter i 2008/2012, efter du er færdig med at migrere. Det vil hjælpe dig med at bevise skemaet og dataene blev overstået.
-
Lav en sikkerhedskopi af 2005-databasen og gendan den i 2008/2012. Du kan gøre dette parallelt med trin 1, hvis du vil. Du skal blot begynde at bruge det. Var alt import ok? Klarer den øjenprøven? Er der nogen fejl, du skal løse?
-
Efter trin 2 skal du gå videre og lave en kopi af din nuværende .NET 2.0-kode og pege på den nye instans fra trin 2. Virker applikationen? Igen, består den øjenprøven?
-
Gentag med ansøgningskopien og den nye database, indtil du føler dig sikker. Hvis du har en testpakke til din kodebase, vil det naturligvis hjælpe dig med at bevise, at tingene er ok i stedet for at bruge din intuition.
Så langt som at gå fra .NET 2.0 til .NET 4.0/4.5 ...
-
Kodebasen skal være bagudkompatibel. Det eneste problem, jeg kunne se, er, om andre systemer afhænger af din kodebase. Hvis du har et kernebibliotek og vil opgradere det til 4.0 - og et andet system, der stadig er på 2.0, har brug for det bibliotek, så er du i problemer.
-
Jeg ville helt sikkert vente med at opgradere .NET-versionen til efter du afslutter databasemigreringen. Hvis det går galt under migreringen, vil du gerne vide, at det ikke er .NET. Det vil hjælpe dig med at indsnævre fejl og problemer.
Efter at have udført mange migrationer som denne nogle generelle råd:
-
Lav gerne nye instanser/systemer og test, test, test. Forsøg ikke at arbejde direkte med eksisterende kode i kildekontrol eller arbejde med eksisterende implementeringer/servere. Bare kopier det og test.
-
Skriv værktøjer og scripts, der hjælper dig med at automatisere systemtests. Du vil gerne være i stand til at vide "Ja, så vidt jeg ved, kom skemaet over nøjagtig det samme."
-
Gør ikke dine gentagelser for lange. Gentag på små måder og bevis derefter, at det virkede, og gå så videre.
Håber det hjælper.