views:

468

answers:

7

I work in a company doing C++ development on VC6, and we're considering a move to VS 2008.

What are the benefits of upgrading?

What are the cons?

Any guides/steps on migrating project files, or gotchas I should be aware of? Are people ok with moving to the different development interface?

+8  A: 

For me, the biggest reason to upgrade to 2008 is the level of standards compliance in the C++ compiler. It is vastly improved from VC6 and is capable of using most libraries that you are familiar with or want to use. Including STL, BOOST and TR1.

The downsides are the normal issues with upgrading. For example, improved standards compliance means that it may break some of your code which depended on non-standard behavior. No specific examples come to mind but I'm sure they're out there.

JaredPar
"for" variable scoping, and wchar_t != short are two examples I can think of.
Chris Jester-Young
I think the biggest change there is that they flipped the default for the switch from ARM (pre-98) to ISO (post-98) rules. You can still get the old behavior (If you really want it - not too hard to fix)
MSalters
+2  A: 

There are lot of benefits, amongst them is a much mature, advanced and friendly environment. Besides this, the compiler has improved and needless to say - the STL... Moreover, all the forums in the web, all the information is much accessible for latest versions of VS rather than older ones. The cons and that there is no backwards compatibility. Meaning: once you migrate, you can't open this project in previous versions. You might have some compilation issues due to the differences between the compilers. You also might encounter some "include" paths problems, so you might need to do some manual configuration settings. I highly recommend it. Go for it!

Gal Goldman
A: 

MFC and COM are fully supported, at least they are in the professional version.

Gary
+2  A: 

The benefits are:

  • You will be moving from a 5+ year old compiler which had poor template support to one which is much more up to date and standards compliant.
  • You will spend less time investigating compilation issues which turn out to be a known problem with the compiler and not a problem with your code.
  • Widely available C++ literature and documentation will be much more relevant to your compiler.

Cons are: - It may take some time, time which might have been otherwise spent for instance adding new functionality to your product.

The biggest issue in porting is likely to be any code you have which is non-compliant yet VC6 allowed to compile. This code may fail to compile on VS2008. I guess also some of the Win32 API's may have changed, likewise for the MFC & ATL classes.

The easiest way to get a feel for the size of the problem is to tackle a single small project which has no dependencies on other VC projects. See how many errors you get and how long it takes to fix them.

jon hanson
Make that 10+ years; it's from 1997-98. The Win32 APIs are part of the SDK, not the compiler. They've changed anyway.
MSalters
The actual STL supplied with VC6 is from 1996 and originally written by HP in 1994.
graham.reeds
MSalters - yep i know they're part of the SDK, but if you upgrade VC then you will usually be upgrading SDK.
jon hanson
A: 

Many people have mentioned the pros of moving. I suggest you make the move, but here are two of the biggest annoyances I found:

  • You need a project file to debug a binary. In VC6 you can just drag an exe to the VC window and debug it. In every version after that, you need a project file first.
  • Everything is an extra mouse click away. A lot of menu items were moved one menu level further away which is annoying if you are a mouse junky like me.
Steve Rowe
+2  A: 

To put things in perspective: VC6 was released way before 2000. It targetted brand-new operating systems like Windows 98 and NT4. By now, those operating systems are retired.

MSalters
A: 

TDD support.

Jace Jung