I just finished migrating a project from VS 2005 to VS 2008. I’m glad to say that the process went pretty well. No road bumps at all.
I followed the steps below in order to perform the migration:
- All developers have checked in their code.
- I’ve wiped out my workspace.
- Got latest on everything.
- Ran all unit and integration tests in the solution.
- Wrote down the results of the tests.
- Ran some quick smoke tests.
- Ran a "check-in build", which is a more restrict build (it runs code analysis, among other things).
- Wrote down the results of the check-in build.
- Labeled files on TFS ("Last VS 2005 build"), just in case I have to roll it back at some point.
- Open the solution in VS 2008 and went through the conversion wizard. Absolutely no errors or warnings were reported.
- Built the source code. Didn’t get any error or warning.
- Ran all the tests and compared the results to the run in VS 2005. Everything went well.
- Ran some quick smoke tests. Everything went well.
- Ran a check-in build. No surprises here, but more on this later.
- Checked in everything, and oriented the other developers to:
- Wipe out the source code in their local folder;
- Open the solution using by double-clicking the solution file in Source Control Explorer;
- Build it and run it.
The core of this process really didn’t take more than 50 minutes.
Now a word regarding code analysis:
In VS 2005, the Error List window had a limitation where it could only display up to 200 hundred rows. If Code Analysis reported more than that, the build would fail, and an error message would say that there’s more warnings than what the Error List is capable of displaying. In VS 2008, that limitation is gone, so at the end of building the converted source code, I’ve ended up with 13000 code analysis warnings!
This project has a bunch of warnings like that because a big chunk of the code comes from a migration from Visual FoxPro code, and that code violates all sorts of naming convention rules. There’s no way we’re going to fix those names, so we’ve been just supressing those messages. We had done that before, but apparently the new build in VS 2008 didn’t find those suppressions, so now I’m going through the list supressing those violations again.
So, overall I’m pretty happy about how smooth the conversion process went.