C++/CLI is NOT C++, it's a completely different language.
It's to use .Net with something that looks somewhat like C++.
If you want to program in actual C++, you need to use some C or C++ library.
For GUI you have many choices but I suggest you some cross-platform library like wxWidgets.
The CLI in C++/CLI stands for Common Language Infrastructure. It's very different from MFC, but for the better imho. If your target platform is only Windows then I'd say give it a try, it kind of grows on you over time, not to mention any .NET controls that you write in C++/CLI can be used in say, C# or VB.NET. You can read more about it here: http://en.wikipedia.org/wiki/C%2B%2B/CLI
If you're going for GUI programming, I heavily recommend Qt ;)
Isn't Qt from (or they acquired others) Nokia? Now all technologies from Nokia is getting very bad reputation. Their Symbian OS is to be "let go" in support for Windoze Mobile as announced by the new CEO. Lot's of Symbian OS developer are leaving in droves in pursuit of others like Android and Blackberry.
Now what about Qt? I think it is wise to re-consider on Nokia commitment to keep it alive isn't it? It is still world leading mobile phone manufacturers but the lead is getting slim-er everyday from Android and Apple huge advancement.
I was a bit disappointed Nokia did not opt for Android (I guess the reason is more business than technical). With M$, they get cash upfront and since Windoze Mobile is just starting, they hope to be the early adopters to get a slice of the mobile market. Imagine getting paid just to install other company OS on your own manufactured phones. A business strategy than technical-wise.
since when is Windows Mobile just starting? It has been trying to start for years with not very good results, I personally would not touch it with someone else's 10 foot pole.
Edit:Note on cross platform UI. They are all well and good when they do what you want. However when they don't, you then have to learn how the library it created and how the platforms that you are supporting work before you can implement the changes that you require.
If my memory does not fail me, M$ did roll out their mobile OS even earlier than Android and Apple I think. It is just that that initiative does not take off very well and they went back to their desktop OS development. I am not old enough to know what went wrong last time but now they re-emerge again after seeing it heat up by Apple and Android isn't it a bit late ?
Now even Blackberry is developing a way to let Android-compiled applications to run in their phones show the influence Google has over their competitors. Imagine you can run ready compiled Android application on Blackberry devices which means your users market increase tremendously.
Now I am awaiting Palm OS from HP(?) to do like-wise too. HP is still a hardware company at heart so I would think instead of competing, why not join forces with Google Android like Blackberry maybe going to do ? Give Apple a run of their dominance :)
Thinking back isn't PalmOS even older than Android ? Why is it early mobile OS pioneers did not "shake" the world like what Apple and Android is doing? Marketing? Advertisement? Food for thought.
The connection is "in-direct" so as to speak. If a flagship OS like Symbian can be "let go", it indicates the CEO direction to let go "others" not so profitable initiatives isn't it? Unless Qt has a business model that can bring back profits to Nokia, I doubt it want to support Qt for long term. Nokia face declining profits year after year so I am speculating monies motive will win over all technical merits of their products and services.
QT has a user base far beyond that of Nokia, it will not die anytime soon (Nokia may sell it off).
If Nokia sell it off, how certain are we in the buyers to continue their commitment towards maintain and enhance Qt ? In fact the license terms may be changed to Closed Source for all we know.
With such thoughts, I personally wouldn't want to invest too much on this framework unless there are big players backing Qt or at least willing to shoulder the maintain and enhance for future Qt versions.
Above are my few cents worth of opinion so don't flame me :P
What is everyone concerned about? From what little I've seen of Qt it's something that you can pick up and start rolling with in a weekend. With that small of a time investment I wouldn't consider it a waste if it disappeared. Also if you developed an app for a frameword that eventually became closed source then barring some HUGE shift in copyright policy your Application should be grandfathered in.
I say stay away from MFC unless you anticipate holding a job where you actually use it. For my C++ GUI needs, I use wxWidgets. FLTK is also an option if you don't mind giving up some control over the appearance of your app. As for C++\CLI, it's an interesting thing for putting on a resume so if you know .NET already, learn it. If you don't know .NET, start with VB.net or C#.
One thing that throws a lot of beginners off about C++ especially if they are comming from Java or C# is the standard libraries don't include anything graphical. If you ask me, I think it might be time the C++ standards committee atleast considered implementing a minimal GUI module for the standard C++ library. FLTK seems to fit the bill.
YES that's what I'm talking about!
standard C++ coding doesn't provide any king of GUI programing(modules), only console stuff...
therefore beginers like me shall learn alot of diferent libraries wich put's beginers away from C++ after some period.
or as you said: "learn C# and VB if u dont understand .NET framework."
oh comon man who will learn f***ing C# and then .NET and then C++\CLI and then to be able start learnig C++ GUI programing.
THAT SUCKS IMO.
alot of learing however I will not give up :)
A solid knowledge of .NET is a big factor to a lot of employers. The reason that mmiller235 recommends not starting with C++/CLI to learn .NET is probably because it's a little more moderately more confusing, as it can inter-op with native C++. It has all of C++'s reserved tokens, plus a bunch that Microsoft felt the need to throw in. I'm playing the Microsoft's devil's advocate here.
A solid knowledge of .NET is a big factor to a lot of employers.
Actually it depend a lot on the employer is in which industry. I believe at least in my country, a lot of companies back-end servers are running Linux or Unix*es instead of Windoze.
It is only the front end that is Windoze but if it is web based than everything appear in the browser. Slowly fading out are those custom-built Windoze desktop client.
Of cuz for some specialized desktop software, it is not web-based but I believe in comparison to browser-based client, they are small in numbers. Internet revolutionize the way business is done and all associated technologies that appear now and then.
However even that is slowing down. The next wave is mobile development.