I think it really depends on your code-base. If you're writing new code, C# is probably the way to go. If you have existing C++ code that must be maintained, you'll need C++. Honestly for server-side programming, I've not found a situation in which managed code is mesurably slower than native code. Good OOP goes far in any language that supports it.