CodeDevelopr
CodeDevelopr

Reputation: 1265

Desktop applications with C++ and .NET or other

I am trying to decide if I should put an effort towards learning C++ or C#

Right now my only background is with PHP so it doesn't matter to much which way I go. I really liked how a lot of my favorite programs are built with C++ that just shows me how powerful it is, not to mention PHP itself is made of C.

I am hoping to build desktop applications. From my research with C++ I would have to find a GUI library to build the desktop apps and with C# Visual Studio pretty much takes care of it for you.

Today I saw the Microsoft has a VisualC++ that uses .NET, does this mean that .NET is used as a GUI for it or do you still need a GUI library when going that route?

Please help me understand a little better as I mentioned my background is PHP and web design so this is a whole new ball park and rather overwhelming at the moment.

Any advice about the subject would be appreciated as well, thank you

Upvotes: 3

Views: 5678

Answers (3)

Bart
Bart

Reputation: 4920

The question is very subjective but I will answer based on your level as a beginner.

Go C#, it is easier and you will find plenty of resources and help. It is very hard to find a good beginner book or tutorial in C++.

There are very advanced topics in C#. And you can easily start a career.

Desktop application are different from web, but you find plenty of tutorials and videos. Just google it.

Upvotes: 2

user1105802
user1105802

Reputation:

(All subjective, naturally)

The Microsoft .Net stack (C#, IIS, Sql Server etc.) is very useful. You can use it to create Windows apps, websites, windows services and web services. AFAIK only Java has an equivalent level of multi-purposing so readily built in.

C++ is great but has its drawbacks. With .Net and C# you sit on top of a runtime that for the most part won't harm performance (unless you're writing some ridiculously high-load app), handles memory management for you, includes error trapping and sandboxing. Your apps have the capacity, out of the box, to be 'better citizens' than a C++ app. [Again, nothing in C++ stops you doing these things but there aren't so many factors taken care of for you].

C# is also a very common business language. Most businesses use developers to solve business problems, and C++ isn't suitable for a lot of that. Development is complicated and takes too long. .Net better lends itself to more rapid development lifecycles because the underlying framework handles so much of the donkey-work for you.

C# - more business jobs, generally a less heavy duty programming life (yayy! No manual garbage collection!) Also applicable to web and windows. C++ - more performant, more powerful (since there's no runtime limiting what you can do - wanna crash the OS? Go ahead...) but you'll have to do most things yourself. Also no web (AFAIK).

Visual C++ is Microsoft's IDE targetting C++ on Windows. A nice user interface for you to write your software. You can write Windows GUI software without it though and you can use Visual C++ to write console apps.

Hope that might help :)

Upvotes: 5

William Mioch
William Mioch

Reputation: 917

If you already understand pointers and are willing to invest at least 3 years to become competent, look at C++.

Otherwise, learn C#.

I've never had to used Managed C++ for anything and the few things I've read about it, very few people use it.

Upvotes: 0

Related Questions