I’ve had a couple of clients ask about this, and recently a prospective client asked again. But rather than just base my answer off experience, I did some research. Here’s the skinny on VS and .Net version compatibility.
When first upgrading, I was pleasantly surprised that Visual Studio 2005 and Visual Studio 2003 work well when installed on the same computer.
- VS2005 installs a “Version Selector” application loader that is associated with solution and project files. When you open a VS related file, the Version Selector first checks which version of VS the file requires, and then loads the right version of VS.
- If you install VS2005 without VS2003 already installed (as I have on my laptop here), you still get the Version Selector.
- If you install VS2003 later, that installation process will associate ALL VS solution and project files with VS2003. You can re-associate them with the Version Selector by right-clicking on the file, selecting “Open With…”, choosing the “Microsoft Visual Studio Version Selector”, and checking the “Always use….” checkbox.
- You can open a VS2003 solution or project with VS2005 and up-convert it to the newer version, but you can’t go back. Warning: there are some choices to be made for web apps.
.Net 2.0 which comes with VS2005 is backward compatible with .Net v1.1.
- .Net v2.0, v1.1, and v1.0 all cohabitate well in a "side-by-side" installation. When they are installed on the same machine, starting a managed application will cause the appropriate version of the .Net framework to be used.
- If only v2.0 is present, it will execute code compiled for v1.1 without known issues. I did some research and could only find one stated case of compatibility failure in the final v2.0 frame, which was related to IE plug-ins. (I can’t find it now, but the issue is that if IE is configured for .Net v2.0, it might have a problem running a v1.1 plug-in b/c a process can only load one version of the framework at a time.)
- If you up-convert a solution or project and compile code written to the v1.1 spec with v2.0, you should get no (new) errors. However, you may receive API deprecation warnings. And there are quite a few deprecated types and members. Here’s the official list of “backwards breaking changes”.
All in all, I highly recommend moving to VS2005. I like the IDE much better and the learning curve is minor. You can start using it right away and pick up the crafty things like snippets and built-in unit testing over time.
Posted by: Mike | 2006.07.18 at 04:20 AM