Click to See Complete Forum and Search --> : Which Version to Learn? C#, C++ , CLI????


massias
November 12th, 2009, 12:01 AM
Hello.....
I am an old programmer (turbo Pascal) and i want to move into C now.
After some research i've done, i end up very confused....

Which version of c must i learn????? C++ MFC , C++ CLI window form or C#?

I want to write programs with access to data files (excel, access) using windows, and maybe some programs for smartphones (Windows Mobile )

So which one is the best version to learn?????? what are my avantages in each version? how about speed? (in executing the program)

Will the version that i will learn be availaible in the future?

Alex F
November 12th, 2009, 04:55 AM
C++ can be used for almost every task. But it may be too low-level for database, networking, UI and other purposes. Working with Office files is also very difficult in C++.
MFC - old UI framework. Today it is better to use .NET - it has Windows Forms and WPF for this. Though MFC is still supported and updated by Microsoft.
C++/CLI - used only for managed-unmanaged interoperability. For all other tasks, use native C++ or C#.

C# looks optimal for your purposes. The main C# restriction is .NET Framework runtime dependency. If this is OK for you, use C#.

Regarding Windows Mobile - AFAIK, .NEt supports this, but I recommend to ask in C# forum. I don't work in this area.

eremitic
November 13th, 2009, 06:14 PM
I would go with C++. You will find that if you use C++ with .net then you will be pretty comfortable with C# if you ever need to used it. (I like to think of C# as a mix between C++ and Visual Basic) On the same note if you work with native C++ then C will be fairly comfortable. C++ seems to be a good midpoint between the two. I am part of a company that developes embedded devices and my primary job is to write windows software that communicates with said devices. I use C++ because it gives me the ability to use .NET/WinForms while at the same time giving me the ability to include code created in C for our embedded devices.

-Zac