Entscheidungsgründe für die MFC
-
Ich denke auch, dass es da hauptsächlich 2 Beweggründe gibt:
- Eben weil man nichts anderes kennt, bzw. es halt von andern empfohlen wird und immer noch recht verbreitet/bekannt ist (-> auch in Büchern wird quasi immer nur MFC/WinAPI erwähnt)
- Weil es nicht anders geht, da man schon irgendwie bestehende Dinge in MFC hat die man weiterentwickeln muss (und vergleichbares halt) und/oder es von Kunden/Firmen-Seite gewünscht wird.
Aus rein technologischer Sicht spricht ja nicht mehr allzuviel dafür heutzutage

-
Ja, damals als ich mit C++ anfing, habe ich auch die MFC benutzt. Schon alleine deshalb, weil es im Buchladen dafür Bücher gab. Und was ist daran falsch, in den Buchladen zu gehen und ein Buch zu kaufen? Heute gibt es zumindest schon mal Qt-Bücher, was z.B. die Verbreitung diese Lib vorantreibt.
Ein weiterer Grund wird auch sein, das die MFC out-of-the-box funktioniert: MSVC kaufen, mit einem Mouseklick installieren, und ALLES aus dem MSVC ist griffbereit. Wie oft lesen wir aber dagegen im Forum "Wie benutze ich Boost?" oder "Wie benutze ich wxWidgets?". Für jemanden, der das noch nie gemacht hat, sehr kompliziert. Vorallem weil die meisten Anleitungen nicht beschreiben, wie man es in seiner IDE benutzt. Klar, der User müsste seine IDE kennen, aber ist halt nicht immer so. Also müssten die anderen Libs halt mal in die Puschen kommen, und ihre angestrebte Neuuser besser informieren. Meistens sind die Lib-Entwickler aber überheblich, und stellen höchstens ein Makefile bereit.
Ultimate++ hats z.B. so gemacht: mit einem Mouseclick hast du eine komplette eigene U++-IDE mit MinGW, wo alles out-of-the-box funktioniert. Für jemanden, dem es "egal" ist, welche IDE er benutzt, und einfach nur GUIs mit C++ proggen will, eine super empfehlung. (gut, die Doku könnte noch besser sein)
wxPack ist schon mal ein sehr guter Anfang, da wird alles für MSVC zum installieren bereit gestellt. Auch gtkmm hat endlich gelernt mal eine vernünftige MSVC2005-Anleitung und Projekt-Sheets bereit zu stellen. Geht gleich alles viel einfacher. Dann werden diese Libs auch vielleicht irgendwann mal eher empfohlen, als MFC.
-
Leute, die MFC besteht nicht nur aus dem schrulligen GUI Editor. Viel interessanter sind IMHO Sockets, Internet Klassen, Datenbank anbindung und das "Handwerkszeug" wie z.B. Maps, Objekt Arrays usw - Wer mit char-Pointern angefangen ist, wird ewig dankbar sein für so tolle Erfindungen wie CString

-
Historisch seh ich als Hauptgrund einfach: Ist beim Visual Studio schon dabei während man alles Andere dazukaufen oder zumindest einrichten muß.
-
Hallo
Ich denke auch, dass der out-of-the-box Vorteil ein sehr großer von der MFC ist. Ich habe auch damit angefangen und bin dann zu .net gewechselt, was ja auch bei VS out-of-the-box ist. Keine Installlation, kein Suchen über google, MSDN gleich mitinstalliert. Das sind schon große Vorteile.
chrische
-
Cpp_Junky schrieb:
Leute, die MFC besteht nicht nur aus dem schrulligen GUI Editor. Viel interessanter sind IMHO Sockets, Internet Klassen, Datenbank anbindung und das "Handwerkszeug" wie z.B. Maps, Objekt Arrays usw - Wer mit char-Pointern angefangen ist, wird ewig dankbar sein für so tolle Erfindungen wie CString

Ja, das große Framework ist nicht zuverachten. Ich denke nicht, das jemand diese Leistung schmälern will. Vorallem zu damaligen Zeiten, ohne C++-Norm.
Aber String- und Container-Klassen hat C++ mittlerweile, ist für einen Neueinsteiger nicht das Killerargument, die MFC nutzen zu müssen. Network, Threads usw. kommt auch demnächst in C++0x und C++ TR2.
Aber wie gesagt, die MFC ist ein leistungsfähiges Framework. Das werden die wenigsten abstreiten. Aber trotzdem steht auch die MFC nunmal in Kokurrenz.

-
Hallo
Die ersten Begegnungen mit der MFC werden wohl dir meisten mit der GUI gemacht haben. Sockets usw. sind idR für Anfänger erstmal zweitrangig, wenn sie überhaupt wissen, um was es sich handelt.
chrische
-
MFC ist ganz ok für GUI:) für die eingliche progammlogig kann ja prues C++ verwendet werden mit stl etc.
-
Wie schon gesagt wurde sehe ich ebenfalls das die MFC den Vorteil hat out-of-the-box zu funktionieren und einem Anfänger damit viel abnimmt. Es ist zu hoffen das hier auch die anderen GUI Bibliotheken das integrieren bzw. nutzen Ihrer Biobliotheken vereinfachen.
@BorisDieKlinge
GUI's lassen sich teilweise mit manch anderen Frameworks angenehmer erstellen, dies ist zumindest ein Erfahrungswert von mir persönlich.
-
ich denke der hauptgrund ist, dass es sich so angenehm über die winapi legt, und da damals, zu MFC 1.0 zeiten, nunmal viele von der winapi kamen, die imho unter windows wirklich essentiell ist (jajaja... .NET bla bla), sah man mit der MFC die chance, winapi programmierung auf vereinfachter ebene zu bewerkstelligen, sich weniger um GDI leaks und resourcenfreigabe kümmern zu müssen.
@Boris:
Ja, MFC-style mit stl-style gemischt sieht unheimlich sexy aus.
lies dir mal was zum thema "how to write unmaintainable code" durch...
-
Cpp_Junky schrieb:
Leute, die MFC besteht nicht nur aus dem schrulligen GUI Editor. Viel interessanter sind IMHO Sockets, Internet Klassen, Datenbank anbindung und das "Handwerkszeug" wie z.B. Maps, Objekt Arrays usw - Wer mit char-Pointern angefangen ist, wird ewig dankbar sein für so tolle Erfindungen wie CString

Das "Handwerkszeugs" ist mittlerweile aber unwichtig, da es das auch alles bei C++ standardisiert gibt (im Gegensatz zu früher). Hab glaub auch mal was von offizeller MFC-Seite gelesen, wo geschrieben stand, dass man für heutige Entwicklungen davon abrät die MFC-Containerklassen zu benutzen, sondern lieber die STL-Container statt dessen verwenden soll.
Und die MFC-Socketklassen sind ein Witz. Bin mir ziemlich sicher, dass so gut wie kein Produktivsystem diese benutzt. In irgendnem Microsoft-nahen Buch über MFC (Inside Visual C++ 6 oder Inside MFC?) haben die auch davon abgeraten die zu benutzen und haben sich statt dessen auch eigene Socket-Klassen gebastelt.
Zudem: Andere Toolkits (QT, wxWidgets, ...) bieten das ebenfalls alles an. Also alles keine Entscheidungsgründe für MFC. Da treffen eher die bereits genannten zu.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum MFC (Visual C++) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
BorisDieKlinge schrieb:
MFC ist ganz ok für GUI:) für die eingliche progammlogig kann ja prues C++ verwendet werden mit stl etc.
Hä hä, dann gehörst du wohl zu denen, von denen wir hier reden: kennst nix anderes, sonst würdest du MFC für GUI nicht OK finden... wobei, hast Schwein das du es nicht super findest.
