Not really Phil, I used C++ for years and I'm now almost exclusively
programming in C#.
I've deployed the .NET framework in several production applications and
generally found it to be very robust indeed. For code maintenance, I've
found C# is generally easier to manage than C++. Of course in terms of raw
speed C++ will sometimes have the edge over C# as you're no doubt aware, but
most of the time the differences are negligible (depending on your specific
application requirements). Also, some .NET 'innovations' such as the use of
the managed heap to allocate memory can speed up the code execution quite a
bit. The one area where you may find issues is that starting up programs
written using the .NET framework can take slightly longer than traditional
win32 API apps largely due to the fact that the code is JIT compiled on
startup. You can help to alleviate this to some extent by pre-jitting the
code, although for most apps this slight delay is not a problem - unless the
app will be started very often, run for short periods and then closed down,
the startup time is generally not an issue (and they normally only take a
second or two to start anyway...). Overall, I've found the execution speed
of managed .NET code to be very good.
Even if you do find that you need to use unmanaged code (either COM or
traditional dll functions) you'll find the .NET framework (and C#) has very
good support to enable you to do this, so you shouldn't have many issues
there.
There may be occasions when you find you don't have the same low level
control in your programs as you did with C++, although generally there are
ways around this by using API calls etc. This depends somewhat on the type
of programs you are writing - I've never found this to be a major issue not
sure about other peoples experiences here?
I've found that running .NET apps on XP or 2000 is preferable to running
them on NT 4 - the same apps ran somewhat slower when installed on NT 4
machines than on 2000 and XP machines although whether this was down to the
OS or the specific build I couldn't be certain.
One thing you didn't mention in your list is developer productivity - while
you will obviously have a learning curve to go through, after a few weeks /
months you 'should' find your productivity increasing quite significantly as
you find your way around the BCL and the winforms framework.
Anyway, good luck whatever you decide to do!
--
Steve Willcock, MCSD
http://www.willcockconsulting.com/
Ok, I guess this is a common question but I need reassurance here.
I've used VC++ MFC for many years and have a love hate relationship with it.
I've been playing with C# for a couple of weeks and think it could be the
way forward.
We don't want to use legacy code.
We have no reason to use Unmanged code
We need pretty fast execution speed but robustness and ease of code
maintenance is preferable
All our users can be moved up to Windows XP
So my question is... when starting from scratch would there be any reason to
choose C++ over C#
Look forward to hearing any comments on this.
Many thanks
Phil Cunningham