views:

1509

answers:

8

We are considering switching from MS Visual Studio 2003 to MS Visual Studio 2005 for our C++ development. I think jumping to 2008 might be better.

In what ways are VS2008 better than VS2005 for C++ development?

Are there any disadvantages of VS2008 over VS2005?

+7  A: 

To be honest, as far as pure C++ development goes, I don't think there is much between the two, other than VS2008 is the 'latest' release. I didn't notice any significant changes.

However, the latest release of MFC has been given a new lease of life with the addition of the Feature Pack (giving you an MSOffice 2007 look and feel) which might be worth knowing.

Rob
A: 

VS2008 contains loads of bugfixes, and is definitely worth the upgrade IMO. Aside from improvements in the UI and related tools, it is much better at dealing with template classes, which didn't always work so well with the VS2005 compiler unless you were using the most basic syntaxes. There are also many other areas which have been improved, but I can't be bothered to find a MS document at the moment detailing these changes. So trust me when I say that there are many. :)

I'd say unless you have some compelling reason to stick with 2005 (ie, backwards compatibility of your code which doesn't build correctly with VS2008), you should definitely push for an upgrade. You can, fortunately, work with multiple versions of VS on a single workstation. You just need to install them sequentiall; ie, VS2005 first, and then VS2008 afterwards.

Then you could test your codebase under VS2008 and see how painful (if at all) a migration to VS2008 would be.

Nik Reiman
+11  A: 

There are very little difference between 2005 and 2008 from native C++ developer point of view. However, if coming from 2003, it makes sense to upgrade directly to 2008 - the conversion process should be almost the same, and you will end up with a slightly better platform. Some new features which are available for 2008 only:

  • /MP option for multicore compilation (a huge timesaver if you have a mutlicore computer)
  • some improved debugging options for multithreaded applications

There are also some additional downloadable feature packs for 2008 only:

  • TR1 libraries
  • new MFC
Suma
Actually /MP appears to be available in VC++ 2005 as well, but it is undocumented. I've played with it but I wouldn't use it for production code.
Timo Geusch
The feature pack is part of SP1.
KTC
The MFC feature pack is available as a separate download if you don't have SP1 FWIW.
Rob
+1  A: 

Visual Studio 2008 is an integrated environment that allows you to develop for both Windows CE and Windows. (Previously we had to work on eVC++ 4.0, which was not as nice...)

A disadvantage that I encountered is that the latest installment of the Dinkum STL containers make an assumption that pointers are used, rather than the using allocator::pointer policy. This is a problem for us, because we wrote our own "pointer" class for shared memory use (storing memory offsets instead of absolute addresses). So, we had to use an older STL library. On the upside, the debugger is able display the contents of STL container much more informatively.

sep
+5  A: 

The biggest improvement in 2008 for us was in reliability of Intellisense on large solutions. Our project has several million lines of code and Intellisense was unusable in 2003. In 2008 it is improved and works more often than not.

Rob Prouse
A: 

Visual C++ 2008 have dropped support for single threaded runtime library. I don't think it really matters though.

Sergey Skoblikov
+2  A: 

For me the biggest improvement was simply that VS2008 was quite noticeably snappier.

Michael Burr
+1  A: 

I currently use VS 2005. I tried the last beta of VS 2008, and the compiler consistently crashed on my projects, so I stuck with VS 2005. I haven't looked at the release version.

One big reason to choose VS 2008 over VS 2005 is that VS 2005 has a bug with intellisense that causes it to use too much memory. This isn't normally a problem, but when I try using both Visual Assist and Refactor! C++ in VS 2005, intellisense churning brings my system to its knees. This is supposedly fixed in VS 2008. (I have a license for VS 2008, and as soon as my next product release I'm going to give migration a try, mainly for this reason.)

Ryan Ginstrom