Hi Michael,
First of all MFC is a class library, C# is a language. I assume you are
considering MFC vs Windows Forms (WF)
The first version of WF implements only a subset of whats available in MFC.
MFC has been around a great number of years, so it is not surprising that
Microsoft hasn't managed to get all the functionality into WF in the few
years it has existed.
All the basic stuff is available in WF, the more advances stuff is still
only available in MFC if you limit yourself to Microsoft code only.
There exists a great number of companies that sell .NET controls that gives
you the functionality that is currently available in MFC.
These controls typically cost a couple of hundred dollars, a lot of them
also come with sourcecode.
Depending on the length of your development process, Visual Studio 2005
includes some controls that give you more advanced features. This should be
out in about a years time.
If I had to make your choice, I would choose C# and WF for the following
reasons.
1. GARBAGE COLLECTION!!!!, no more need to hunt down those horrible memory
leaks.
2. C# is a far more elegant language than C++.
3. There is a great number of classes available for non-ui operations. XML,
ADO.NET, WebServices etc.
4. How many types of string types is there in C++/MFC? In .NET there is only
one.
5. Added support for localization, new language versions can be created by
external people without needing access to source code.
6. Everything Microsoft is doing is aimed towards .NET. MFC will not be
discontinued in the near future, but all the new fancy stuff from MS will
only be available in .NET.
Hope this gave you some answers.
Chris
Michael said:
Hi, there,
I am building a case that will decide if our new project will be using
MFC or C#. MFC is a mature technology, and is used extensively in most of
the major applications. C# is new, and I am not sure if it has all the
features that MFC supports. I was wondering if you guru can shed some light
on this by pointing me to some good articles comparing MFC and C#. Or if any
well known cases of C# usage.