I was pleasantly surprised that rebuilding our product in VS2008 Beta 2 went quite smoothly. The issues were minor:
- The switch /OPT:NOWIN98 option is no longer supported.
- Project could not be linked against a library originally built in VC6.
Impact: Rebuild library.
- Visual Studio 2005 manifest that set requireAdministrator caused this error: manifest authoring error c1010001: Values of attribute "level" not equal in different manifest snippets.
Impact: Removed the explicit manifest file and set the UAC level in the Linker node on the project properties.
- MT.EXE gives an error on a valid manifest.
Impact: Move $(WindowsSdkDir)\bin to the top of the list for Executables files in VC++ Directories under Tools/Options.
In terms of the size of the generated executables, here are the stats:
|Product||VS2005 size||VS2008 Size||Net Change|
|#1 (C++/MFC GUI)||1,198,592||1,180,672||-1.5%|
|#2 (C++/MFC GUI)||1,589,760||1,549,312||-2.5%|
|#3 (C++/MFC Console)||2,043,904||1,998,848||-2.2%|
While not earth shattering, these numbers do show that they were able to contain bloat in MFC and the C runtime library. All of these applications are statically linked against MFC and the CRT.
The biggest surprise was that VC2008 worked fine with version 1.34.1 of the Boost library, which has not yet been tested on VC2008. (although, admittedly, our software only uses one or two of the Boost modules.)
That's it! So far, backwards compatibility is excellent.
Initial testing has shown no problems with the generated code. Common dialogs under Vista were automatically updated to Vista styling, as promised.
My only disappointment is that very little was done for the IDE for C++ developers in this version of Visual Studio. The tools for editing dialogs and other resources are still awful compared to VC6. For a look at the future of the IDE, take a look at Somasegar's blog. Attention is being renewed on the IDE for native C++ developers, but improvements won't ship until 2010.