[visual-c++] Wird MFC immer noch für Neuentwicklungen verwendet (mit beliebigem Materialvolumen)?


2 Answers

Coolness spielt keine Rolle bei der Auswahl der Technologie für ein neues System. Ja, wenn Sie ein Student sind oder spielen möchten, wählen Sie, was Sie wollen.

Aber in der realen Welt hat jede Technologie Vor- und Nachteile. Vor einem Jahr hat eines der Teams ein neues Projekt gestartet, es wurde beschlossen, dass es in MFC gemacht wird. Der Grund ist sehr einfach: Sie müssen Windows API viel für Low-Level-Operationen mit dem Drucker, Internet-Explorer und Gott weiß was noch.

C # war nicht einmal im Spiel, die Entscheidung fiel zwischen MFC und QT, beide hatten die benötigte Funktionalität, beide konnten problemlos die Low-Level-Funktionalität integrieren, der einzige Unterschied war, dass einige Teammitglieder bereits MFC-Erfahrung hatten, also nicht müssen mit Schulungen Zeit und Geld verschwenden.

Nehmen wir an, sie wählen C # und WPF:
-1 Sie müssen den gesamten nativen C ++ - und ASM-Code in eine DLL einbinden (das kann schmerzhaft sein, anstatt dass Sie Wrapper schreiben).
-1 Du brauchst jetzt wahrscheinlich zwei Teams, eins für die ui eins für das Winapi-Zeug. Es ist sehr unwahrscheinlich, dass Sie viele Leute finden, die sowohl C # als auch Winapi schreiben können. Einverstanden, dass man auf jeden Fall jemanden braucht, um die Schnittstelle hübsch zu machen (Programmierer sind normalerweise nervtötend und kosten mehr), aber zumindest mit C ++ nur Code, es gibt keine Wartezeit zwischen zwei Teams, brauche eine Modifikation, kein Problem, das ich nicht verstehe Ich muss nicht auf den Designer warten, er wird es später schön machen.
+1 Sie können den UI-Code in C # und WPF schreiben, sagen wir, die UI-Entwicklung ist schneller, aber die UI ist nur 1/4 des Projekts, also ist der Gesamtgewinn wahrscheinlich sehr gering.
-1 Leistungseinbußen: Für jede kleine Operation, die Sie nicht in C # ausführen können, rufen Sie eine externe DLL auf (dies ist ein kleines Problem, da das Programm auf 8 GB RAM Quad Cores läuft).

Fazit: MFC wird immer noch für Neuentwicklungen verwendet, weil die Anforderungen und die Kosten die Technologie für ein Projekt bestimmen und MFC in manchen Fällen sogar die beste ist.

Question

Ich war nie ein großer Fan von MFC, aber das ist nicht wirklich der Punkt. Ich habe gelesen, dass Microsoft eine neue Version von MFC im Jahr 2010 veröffentlichen wird und es hat mich wirklich merkwürdig getroffen - ich dachte, MFC wäre tot (keine böse Absicht, das habe ich wirklich).

Wird MFC für neue Entwicklungen verwendet? Wenn ja, was ist der Vorteil? Ich konnte mir nicht vorstellen, dass es irgendeinen Vorteil gegenüber etwas wie C # (oder sogar nur C ++ mit Win32-APIs) hätte.




Es gibt Vorteile, wenn Sie sich von verwaltetem Code fernhalten (vielleicht schreiben Sie eine Treiber-Benutzeroberfläche oder machen COM).

Das und es gibt Tonnen von MFC-Code da draußen. Vielleicht arbeiten Sie für Unternehmen X und müssen eine der zahllosen DLLs verwenden, die sie in den letzten zwölf Jahren geschrieben haben.




MFC wurde mit jeder Version von Visual Studio aktualisiert. Es ist einfach nicht der Überschrift-Feature-Artikel.

Was die neue Entwicklung angeht, ja. Es wird immer noch benutzt und wird es auch weiterhin sein (obwohl ich, wie du, lieber nicht). Viele Organisationen haben die Technologieentscheidung vor Jahren getroffen und haben keinen Grund, sich zu ändern.

Ich denke aber, dass Sie über gut etablierte Geschäfte sprechen, Leute mit mehr Interesse an der Aufrechterhaltung / Verbesserung dessen, was geschrieben wurde, anstatt auf dem neuesten Stand zu bleiben.




Related