Is MFC obsolete?
-
I know .NET framework and C# well. Recently I started working with C++/CLI which I felt more interesting than C#. Since .NET framework is becoming popular, do you think MFC got obsolete? Are you guys doing any projects in MFC other than maintaining the legacy applications? I don't know MFC and I would like to know whether learning MFC is worth now?
-
I know .NET framework and C# well. Recently I started working with C++/CLI which I felt more interesting than C#. Since .NET framework is becoming popular, do you think MFC got obsolete? Are you guys doing any projects in MFC other than maintaining the legacy applications? I don't know MFC and I would like to know whether learning MFC is worth now?
Christian Flutcher wrote:
Is MFC obsolete?
NO, it is NOT ! there's nothing better than native C++ coding !!! ;P
[VisualCalc][Binary Guide][CommDialogs] | [Forums Guidelines]
-
I know .NET framework and C# well. Recently I started working with C++/CLI which I felt more interesting than C#. Since .NET framework is becoming popular, do you think MFC got obsolete? Are you guys doing any projects in MFC other than maintaining the legacy applications? I don't know MFC and I would like to know whether learning MFC is worth now?
Of all your questions I've attempted, this is the toughest one, Christian. First off, .NET and C++ (I will say only C++ in this message. But, When I say C++, include the frameworks and libraries built on and around it - MFC, ATL, WTL, etc.,) are entirely two different things. They exist to solve different problem sets and they cater to different consumers. During the old days, there was not much of anything more than C/C++. There was another language known as VB, which was catering to an entirely different mass of programmers. VB was too easy to learn, someone quoted "as easy as falling a flight of stairs". But it had several drawbacks, which I won't be listing up here. So, C/C++ was the prominent choice if you wanted to build high quality, efficient programs. Then the .NET framework came along, which introduced a lot of new features, which would be very difficult if you were to achieve that with C++. So, the world witnessed a whole new array of fresh .NET programmers (programming became easy) and another mass of C++ guys shifted to .NET, even the "Big Dogs" of the C++ game (some of them being passionate towards technology, wanting to learn the new stuff, some other moved because .NET was easier to do and was the upcoming trend). With the days, .NET has grown to be a true giant, and is the choice for developing large scale business applications which usually involves networking, databases, client/servers, dynamic web-pages, etc. As you've come from .NET background, I don't have to explain you how good is .NET while dealing with these things. It is the absolute gun, and C++ is no rival. But don't forget it: What .NET can do, C++ CAN do, faster, with lesser dependencies and cripples, lesser resources. But the cost and time of production will increase logarithmically and you will have to do a LOT of work yourself. For example, when I had to write a server program that will be running 24x7, I wrote it in C#. Why? Because I don't have to bother about garbage collection or a remotest possible memory damage bug or memory fragmentation. But, when I had to write a program that will interpret bytes from a semi-intelligent terminal, before that is sent to the printer port and do some real-time processing on the buffer, I wrote it in C. Why? Because performance is of paramount importance there (read the word real-time?) When it boils down to system side programming (desktop application development, device drivers, writing new funky frameworks like - uh... .NET, etc.,), C++ is the absolute choice.
-
Of all your questions I've attempted, this is the toughest one, Christian. First off, .NET and C++ (I will say only C++ in this message. But, When I say C++, include the frameworks and libraries built on and around it - MFC, ATL, WTL, etc.,) are entirely two different things. They exist to solve different problem sets and they cater to different consumers. During the old days, there was not much of anything more than C/C++. There was another language known as VB, which was catering to an entirely different mass of programmers. VB was too easy to learn, someone quoted "as easy as falling a flight of stairs". But it had several drawbacks, which I won't be listing up here. So, C/C++ was the prominent choice if you wanted to build high quality, efficient programs. Then the .NET framework came along, which introduced a lot of new features, which would be very difficult if you were to achieve that with C++. So, the world witnessed a whole new array of fresh .NET programmers (programming became easy) and another mass of C++ guys shifted to .NET, even the "Big Dogs" of the C++ game (some of them being passionate towards technology, wanting to learn the new stuff, some other moved because .NET was easier to do and was the upcoming trend). With the days, .NET has grown to be a true giant, and is the choice for developing large scale business applications which usually involves networking, databases, client/servers, dynamic web-pages, etc. As you've come from .NET background, I don't have to explain you how good is .NET while dealing with these things. It is the absolute gun, and C++ is no rival. But don't forget it: What .NET can do, C++ CAN do, faster, with lesser dependencies and cripples, lesser resources. But the cost and time of production will increase logarithmically and you will have to do a LOT of work yourself. For example, when I had to write a server program that will be running 24x7, I wrote it in C#. Why? Because I don't have to bother about garbage collection or a remotest possible memory damage bug or memory fragmentation. But, when I had to write a program that will interpret bytes from a semi-intelligent terminal, before that is sent to the printer port and do some real-time processing on the buffer, I wrote it in C. Why? Because performance is of paramount importance there (read the word real-time?) When it boils down to system side programming (desktop application development, device drivers, writing new funky frameworks like - uh... .NET, etc.,), C++ is the absolute choice.
Got my 5 for this, Rajesh!
-
Of all your questions I've attempted, this is the toughest one, Christian. First off, .NET and C++ (I will say only C++ in this message. But, When I say C++, include the frameworks and libraries built on and around it - MFC, ATL, WTL, etc.,) are entirely two different things. They exist to solve different problem sets and they cater to different consumers. During the old days, there was not much of anything more than C/C++. There was another language known as VB, which was catering to an entirely different mass of programmers. VB was too easy to learn, someone quoted "as easy as falling a flight of stairs". But it had several drawbacks, which I won't be listing up here. So, C/C++ was the prominent choice if you wanted to build high quality, efficient programs. Then the .NET framework came along, which introduced a lot of new features, which would be very difficult if you were to achieve that with C++. So, the world witnessed a whole new array of fresh .NET programmers (programming became easy) and another mass of C++ guys shifted to .NET, even the "Big Dogs" of the C++ game (some of them being passionate towards technology, wanting to learn the new stuff, some other moved because .NET was easier to do and was the upcoming trend). With the days, .NET has grown to be a true giant, and is the choice for developing large scale business applications which usually involves networking, databases, client/servers, dynamic web-pages, etc. As you've come from .NET background, I don't have to explain you how good is .NET while dealing with these things. It is the absolute gun, and C++ is no rival. But don't forget it: What .NET can do, C++ CAN do, faster, with lesser dependencies and cripples, lesser resources. But the cost and time of production will increase logarithmically and you will have to do a LOT of work yourself. For example, when I had to write a server program that will be running 24x7, I wrote it in C#. Why? Because I don't have to bother about garbage collection or a remotest possible memory damage bug or memory fragmentation. But, when I had to write a program that will interpret bytes from a semi-intelligent terminal, before that is sent to the printer port and do some real-time processing on the buffer, I wrote it in C. Why? Because performance is of paramount importance there (read the word real-time?) When it boils down to system side programming (desktop application development, device drivers, writing new funky frameworks like - uh... .NET, etc.,), C++ is the absolute choice.
WOW! that's a wonderful post. I appreciate your effort.
Rajesh R Subramanian wrote:
Theese C++ guys are the true Gurus, true Geeks
Rajesh R Subramanian wrote:
Please don't forget this: My compiler compiled your compiler.
I understand and truly regret for not studying it so far. But I am on the track and expecting to be a small geek very soon. :) I have finished the "Thinking in C++" book suggested by you. No second thoughts, it was a great read. BTW, do you have any MFC book suggestions? Thanks again.
-
Got my 5 for this, Rajesh!
Thanks pal. Unfortunately there is a lot of MVP NDA stuff, which I cannot legally disclose. Otherwise, I could have put forward a lot of points to prove that the future plans of MS shows how much they respect Windows Programmers and that they've taken our betterment very seriously. :)
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]
-
WOW! that's a wonderful post. I appreciate your effort.
Rajesh R Subramanian wrote:
Theese C++ guys are the true Gurus, true Geeks
Rajesh R Subramanian wrote:
Please don't forget this: My compiler compiled your compiler.
I understand and truly regret for not studying it so far. But I am on the track and expecting to be a small geek very soon. :) I have finished the "Thinking in C++" book suggested by you. No second thoughts, it was a great read. BTW, do you have any MFC book suggestions? Thanks again.
Christian Flutcher wrote:
BTW, do you have any MFC book suggestions?
Surely, yes. I would recommend you the following books: Programming Windows with MFC by Jeff prosise[^] Programming Microsoft Visual C++ by David Kruglinski, Scott Wingo and George Shepherd.[^] MFC Internals by Scott Wingo and George Shepherd[^] My recommendations are in that order. There are more good books, but I can't remember any at the moment. May be you should start another thread asking for book suggestions and you'll get great help there. But there is a risk, as most of these books are old farts and MFC has changed quite a bit at least as far as UI development and controls are concerned (well, the framework remains the same) with the Visual C++ 2008 feature pack. However, there is no harm in reading those books, as they explain the fundamentals (which hasn't changed) very well.
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]
-
Christian Flutcher wrote:
BTW, do you have any MFC book suggestions?
Surely, yes. I would recommend you the following books: Programming Windows with MFC by Jeff prosise[^] Programming Microsoft Visual C++ by David Kruglinski, Scott Wingo and George Shepherd.[^] MFC Internals by Scott Wingo and George Shepherd[^] My recommendations are in that order. There are more good books, but I can't remember any at the moment. May be you should start another thread asking for book suggestions and you'll get great help there. But there is a risk, as most of these books are old farts and MFC has changed quite a bit at least as far as UI development and controls are concerned (well, the framework remains the same) with the Visual C++ 2008 feature pack. However, there is no harm in reading those books, as they explain the fundamentals (which hasn't changed) very well.
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]
I will check those books. Thanks Rajesh :)
-
Of all your questions I've attempted, this is the toughest one, Christian. First off, .NET and C++ (I will say only C++ in this message. But, When I say C++, include the frameworks and libraries built on and around it - MFC, ATL, WTL, etc.,) are entirely two different things. They exist to solve different problem sets and they cater to different consumers. During the old days, there was not much of anything more than C/C++. There was another language known as VB, which was catering to an entirely different mass of programmers. VB was too easy to learn, someone quoted "as easy as falling a flight of stairs". But it had several drawbacks, which I won't be listing up here. So, C/C++ was the prominent choice if you wanted to build high quality, efficient programs. Then the .NET framework came along, which introduced a lot of new features, which would be very difficult if you were to achieve that with C++. So, the world witnessed a whole new array of fresh .NET programmers (programming became easy) and another mass of C++ guys shifted to .NET, even the "Big Dogs" of the C++ game (some of them being passionate towards technology, wanting to learn the new stuff, some other moved because .NET was easier to do and was the upcoming trend). With the days, .NET has grown to be a true giant, and is the choice for developing large scale business applications which usually involves networking, databases, client/servers, dynamic web-pages, etc. As you've come from .NET background, I don't have to explain you how good is .NET while dealing with these things. It is the absolute gun, and C++ is no rival. But don't forget it: What .NET can do, C++ CAN do, faster, with lesser dependencies and cripples, lesser resources. But the cost and time of production will increase logarithmically and you will have to do a LOT of work yourself. For example, when I had to write a server program that will be running 24x7, I wrote it in C#. Why? Because I don't have to bother about garbage collection or a remotest possible memory damage bug or memory fragmentation. But, when I had to write a program that will interpret bytes from a semi-intelligent terminal, before that is sent to the printer port and do some real-time processing on the buffer, I wrote it in C. Why? Because performance is of paramount importance there (read the word real-time?) When it boils down to system side programming (desktop application development, device drivers, writing new funky frameworks like - uh... .NET, etc.,), C++ is the absolute choice.
-
Of all your questions I've attempted, this is the toughest one, Christian. First off, .NET and C++ (I will say only C++ in this message. But, When I say C++, include the frameworks and libraries built on and around it - MFC, ATL, WTL, etc.,) are entirely two different things. They exist to solve different problem sets and they cater to different consumers. During the old days, there was not much of anything more than C/C++. There was another language known as VB, which was catering to an entirely different mass of programmers. VB was too easy to learn, someone quoted "as easy as falling a flight of stairs". But it had several drawbacks, which I won't be listing up here. So, C/C++ was the prominent choice if you wanted to build high quality, efficient programs. Then the .NET framework came along, which introduced a lot of new features, which would be very difficult if you were to achieve that with C++. So, the world witnessed a whole new array of fresh .NET programmers (programming became easy) and another mass of C++ guys shifted to .NET, even the "Big Dogs" of the C++ game (some of them being passionate towards technology, wanting to learn the new stuff, some other moved because .NET was easier to do and was the upcoming trend). With the days, .NET has grown to be a true giant, and is the choice for developing large scale business applications which usually involves networking, databases, client/servers, dynamic web-pages, etc. As you've come from .NET background, I don't have to explain you how good is .NET while dealing with these things. It is the absolute gun, and C++ is no rival. But don't forget it: What .NET can do, C++ CAN do, faster, with lesser dependencies and cripples, lesser resources. But the cost and time of production will increase logarithmically and you will have to do a LOT of work yourself. For example, when I had to write a server program that will be running 24x7, I wrote it in C#. Why? Because I don't have to bother about garbage collection or a remotest possible memory damage bug or memory fragmentation. But, when I had to write a program that will interpret bytes from a semi-intelligent terminal, before that is sent to the printer port and do some real-time processing on the buffer, I wrote it in C. Why? Because performance is of paramount importance there (read the word real-time?) When it boils down to system side programming (desktop application development, device drivers, writing new funky frameworks like - uh... .NET, etc.,), C++ is the absolute choice.
Nice post Rajesh! :)
Mark Salsbery Microsoft MVP - Visual C++ :java:
-
I know .NET framework and C# well. Recently I started working with C++/CLI which I felt more interesting than C#. Since .NET framework is becoming popular, do you think MFC got obsolete? Are you guys doing any projects in MFC other than maintaining the legacy applications? I don't know MFC and I would like to know whether learning MFC is worth now?
-
Of all your questions I've attempted, this is the toughest one, Christian. First off, .NET and C++ (I will say only C++ in this message. But, When I say C++, include the frameworks and libraries built on and around it - MFC, ATL, WTL, etc.,) are entirely two different things. They exist to solve different problem sets and they cater to different consumers. During the old days, there was not much of anything more than C/C++. There was another language known as VB, which was catering to an entirely different mass of programmers. VB was too easy to learn, someone quoted "as easy as falling a flight of stairs". But it had several drawbacks, which I won't be listing up here. So, C/C++ was the prominent choice if you wanted to build high quality, efficient programs. Then the .NET framework came along, which introduced a lot of new features, which would be very difficult if you were to achieve that with C++. So, the world witnessed a whole new array of fresh .NET programmers (programming became easy) and another mass of C++ guys shifted to .NET, even the "Big Dogs" of the C++ game (some of them being passionate towards technology, wanting to learn the new stuff, some other moved because .NET was easier to do and was the upcoming trend). With the days, .NET has grown to be a true giant, and is the choice for developing large scale business applications which usually involves networking, databases, client/servers, dynamic web-pages, etc. As you've come from .NET background, I don't have to explain you how good is .NET while dealing with these things. It is the absolute gun, and C++ is no rival. But don't forget it: What .NET can do, C++ CAN do, faster, with lesser dependencies and cripples, lesser resources. But the cost and time of production will increase logarithmically and you will have to do a LOT of work yourself. For example, when I had to write a server program that will be running 24x7, I wrote it in C#. Why? Because I don't have to bother about garbage collection or a remotest possible memory damage bug or memory fragmentation. But, when I had to write a program that will interpret bytes from a semi-intelligent terminal, before that is sent to the printer port and do some real-time processing on the buffer, I wrote it in C. Why? Because performance is of paramount importance there (read the word real-time?) When it boils down to system side programming (desktop application development, device drivers, writing new funky frameworks like - uh... .NET, etc.,), C++ is the absolute choice.
-
Of all your questions I've attempted, this is the toughest one, Christian. First off, .NET and C++ (I will say only C++ in this message. But, When I say C++, include the frameworks and libraries built on and around it - MFC, ATL, WTL, etc.,) are entirely two different things. They exist to solve different problem sets and they cater to different consumers. During the old days, there was not much of anything more than C/C++. There was another language known as VB, which was catering to an entirely different mass of programmers. VB was too easy to learn, someone quoted "as easy as falling a flight of stairs". But it had several drawbacks, which I won't be listing up here. So, C/C++ was the prominent choice if you wanted to build high quality, efficient programs. Then the .NET framework came along, which introduced a lot of new features, which would be very difficult if you were to achieve that with C++. So, the world witnessed a whole new array of fresh .NET programmers (programming became easy) and another mass of C++ guys shifted to .NET, even the "Big Dogs" of the C++ game (some of them being passionate towards technology, wanting to learn the new stuff, some other moved because .NET was easier to do and was the upcoming trend). With the days, .NET has grown to be a true giant, and is the choice for developing large scale business applications which usually involves networking, databases, client/servers, dynamic web-pages, etc. As you've come from .NET background, I don't have to explain you how good is .NET while dealing with these things. It is the absolute gun, and C++ is no rival. But don't forget it: What .NET can do, C++ CAN do, faster, with lesser dependencies and cripples, lesser resources. But the cost and time of production will increase logarithmically and you will have to do a LOT of work yourself. For example, when I had to write a server program that will be running 24x7, I wrote it in C#. Why? Because I don't have to bother about garbage collection or a remotest possible memory damage bug or memory fragmentation. But, when I had to write a program that will interpret bytes from a semi-intelligent terminal, before that is sent to the printer port and do some real-time processing on the buffer, I wrote it in C. Why? Because performance is of paramount importance there (read the word real-time?) When it boils down to system side programming (desktop application development, device drivers, writing new funky frameworks like - uh... .NET, etc.,), C++ is the absolute choice.
included at my tips site, any problem please contact on phone :-) before sending legal notice...he he he
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
Never mind - my own stupidity is the source of every "problem" - Mixturecheers, Alok Gupta VC Forum Q&A :- I/IV Support CRY- Child Relief and You/xml>
-
I know .NET framework and C# well. Recently I started working with C++/CLI which I felt more interesting than C#. Since .NET framework is becoming popular, do you think MFC got obsolete? Are you guys doing any projects in MFC other than maintaining the legacy applications? I don't know MFC and I would like to know whether learning MFC is worth now?
I still using MFC in my applications!, last application/DLL i developed, used MFC classes in it.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
Never mind - my own stupidity is the source of every "problem" - Mixturecheers, Alok Gupta VC Forum Q&A :- I/IV Support CRY- Child Relief and You/xml>
-
included at my tips site, any problem please contact on phone :-) before sending legal notice...he he he
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
Never mind - my own stupidity is the source of every "problem" - Mixturecheers, Alok Gupta VC Forum Q&A :- I/IV Support CRY- Child Relief and You/xml>
Legal notice? Hehe... :-D What got on my eye was - the site shows[^] the post was published on July 27th 2008. :~
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]
-
Legal notice? Hehe... :-D What got on my eye was - the site shows[^] the post was published on July 27th 2008. :~
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]
Rajesh R Subramanian wrote:
the post was published on July 27th 2008.
That’s unforgettable date for me... I was engaged that day... See I am giving your post special place in history
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
Never mind - my own stupidity is the source of every "problem" - Mixturecheers, Alok Gupta VC Forum Q&A :- I/IV Support CRY- Child Relief and You/xml>
-
Rajesh R Subramanian wrote:
the post was published on July 27th 2008.
That’s unforgettable date for me... I was engaged that day... See I am giving your post special place in history
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
Never mind - my own stupidity is the source of every "problem" - Mixturecheers, Alok Gupta VC Forum Q&A :- I/IV Support CRY- Child Relief and You/xml>
July 25 and 26 are unforgettable for me. July 25 is my best friend's birthday and 26 was the day my sister got caught up in Mumbai flood (and was rescued the same day). Chabbeese July - sounds familiar? BTW, congrats on your new endeavor. :)
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]
modified on Friday, September 26, 2008 6:10 AM
-
I know .NET framework and C# well. Recently I started working with C++/CLI which I felt more interesting than C#. Since .NET framework is becoming popular, do you think MFC got obsolete? Are you guys doing any projects in MFC other than maintaining the legacy applications? I don't know MFC and I would like to know whether learning MFC is worth now?
Sometimes I prefer C++ with VCL :) Seems to have less bugs :)
-
Christian Flutcher wrote:
Is MFC obsolete?
NO, it is NOT ! there's nothing better than native C++ coding !!! ;P
[VisualCalc][Binary Guide][CommDialogs] | [Forums Guidelines]
toxcct wrote:
NO, it is NOT !
True.
toxcct wrote:
there's nothing better than native C++ coding !!!
Absolutely true. Anyway, the two sentences are...unrelated. :rolleyes: :)
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles]