|
I cannot imagine a single reason to write a user interface in C++/MFC instead of C#. C#/WinForms let you write code at an higher level, not caring too much to low level implementation detais, but also allows you to handle yourself the windows messages if you really need such a low level control of your code.
"Yes, but with C++ I can write high performance code, faster than c#" (not really true actually)
If you find a part of your code too slow when written in c#, you can write a c++ dll for that specific algorithm you need to run faster and use it from a .Net program (with interoperability and/or managed c++)
I really see no space for MFC to be the right tool of the job. C++ can be for some jobs, but not for writing UI, IMHO
modified 2-Aug-21 10:03am.
|
|
|
|
|
I worked in VC++ land for probably 15 years. Did a ton of C++/MFC code and was quite proficient at it. Never under estimate the prowess of an experienced C++/MFC coder, I could do anything with that toolset. Moved to a new job when .NET was coming up the curve, and my coding partner (we were a single team of 2) and I figured we best get on board with this new shift. So we embraced C#/.NET and did some solid work. Next job was me being a team lead to a group of 8 developers coding in PowerBuilder, Access and VB. C++/MFC was still my toolbox of choice, but it was clear there was no way I was going to get these folks coding in that arena without seriously blowing sht up. So, with some sadness, I walked away from C++/MFC for C#/.NET. And while I'm extremely productive in C#/.NET, I miss C++/MFC every single day. Been coding since 1984, and while C#/.NET pays the bills, C++/MFC was my 9th symphony.
|
|
|
|
|
I'm probably one of a sparse number of MFC holdouts. Decades ago, back in the Borland Turbo C++ days, I used OWL. After that, MSFT C++ and MFC.
I should note that the only aspects of MFC that I use are the UI centric ones. Windows, Dialgos, Property Sheets/Pages, Menus, etc... never used Ribbons, can't think of an instance where I would.
The majority of my work doesn't involve UIs, most of it is functional code called by others, APIs, and ISAPI Services. When I do require a UI, such as for configuration or reporting access callable from our main product, MFC is there. It is consistent, and it continues to function as designed from one VC++ release to the next. Because most of the modules I write must integrate tightly with our primary product as "plugins", moving to a ".net" would incur a lot of additional work. I also feel that when I do need something highly specialized, it is easy to inherit from MFC and create controls with modified appearance and behavior. As long as MFC is available, I'll continue to use it, and if they decide to no longer ship it with VC++ and cause errors using legacy MFC libraries, I would likely recompile it for use with the newer release.
|
|
|
|
|
Biggest bunch of crap, other than BizTalk, that was ever created. Visual Studio was created for developers to create application quickly, as in RAD development; not watch a hundred or more files get piled into an application and pray it all comes together.
There are too many people at Microsoft with nothing to do, creating new nightmares.
|
|
|
|
|
What?
Please re-write that so someone understands.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
This discussion has become confused. mfc is NOT C++ nor is it Visual Studio. Please understand the difference. mfc was a necessary step to abstract the asinine Windows development approach. Really? Code your own case statement for events? At the time I discovered this, I was writing UI's on X-Windows, and X was way ahead of Microsoft when it came to toolkits, abstracting the event loop out of the developers head.
Along comes Visual Studio that automated the editing process of handling events, added MFC, etc.
It's important to keep the issues separate.
But at the end of the day, use what helps you get the job done. I just read in another post that Microsoft has released yet another UI approach. They just churn it to look relevant.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
|
Microsoft Foundation Classes - a framework for VC++ with OO code for doing Win32 stuff, at least that is what I understand it to be. Really old, hard to find documentation and examples (most of it is missing from publicly available pages at MS). Tried to do something with it during my CS course, I cursed every hour while searching for documentation and examples. Usually dead links. Microsoft is making sure new people don't have it easy to use it.
You can still use it in Visual Studio if you want to.
|
|
|
|
|
I think you seriously misunderstood...
|
|
|
|
|
I blame Microsoft for obscuring it away so much.
|
|
|
|
|
MFC was developed at a time when documentation was printed out and provided in the form of books. I still remember the thick stack from Visual C++ 3.0 (or maybe 3.1?): about a dozen books with a total of >5000 pages of text.
Programmers at the time were required to find out what parts of these books they needed and then actually read it. Better yet: find third party books on specific topics such as MFC UI programming and read those instead, and only use the documentation for reference.
Nowadays, programmers expect to use new APIs on the fly: spending more than an hour reading documentation is considered unacceptable, and an API requiring that considered obscure or outright bad.
Microsoft doesn't obscure MFC documentation, they just never integrated all that additional information contained in those third party sources - quite possibly in part due to copyrights, but also because they instead focused on .NET as a replacement.
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)
|
|
|
|
|
No, Microsoft during various migrations of its documentation sites simply decided not (or didn't care) to migrate a lot of stuff related to MFC and left lots of dead links to articles and example code on its own websites (at least that was the state of things about three years ago, maybe they fixed it by now). In case of a large company like Microsoft I call that obscuring.
And I spent way more time, than few hours searching through the web to find what was needed.
I don't expect to ever find an API I can use on the fly, unless it is some extension to an API I already know. It would be nice If API documentation was written in a way that enables this, but so far I have not seen something like that.
|
|
|
|
|
Languages and frameworks never truly die unless the platforms they exist on die. As long as Windows lives, so will MFC. Its certainly less popular and hard as heck to work with if you are used to .Net.
"Make everything as simple as possible, but not simpler." - Albert Einstein
|
|
|
|
|
... so I used my Bryan Adams CD.
It cuts like a knife ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
let me get your your coat.
CI/CD = Continuous Impediment/Continuous Despair
|
|
|
|
|
|
All these posts... just for the gang here at CP.
Everything you do, you do it for us.!
If you can't laugh at yourself - ask me and I will do it for you.
|
|
|
|
|
Maybe I should change my name to RobinHood?
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
"Why a spoon, cousin?"
"Because it hurts more, you twit!"
Software Zen: delete this;
|
|
|
|
|
Are you speaking of the dull spoon?
|
|
|
|
|
It's a quote from Robin Hood, Prince of Thieves, which is a far underrated movie based on performances by Alan Rickman and Morgan Freeman.
Software Zen: delete this;
|
|
|
|
|
Have you tried using clean kitchen scissors? Far better than the pizza cutter.
|
|
|
|
|
If you steal a lamp, do you get a light sentence?
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I don't know, tell us, don't leave us in the dark.
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
|
|
|
|
|
That sounds like the perfect crime - they will be left in the dark.
|
|
|
|