2010-01-22 6 views

Antwort

13

Argumentieren, hat niemand sollte jemals MFC (gesprochen wie jemand verwendet wer seit MFC 1.0) ausgesetzt gewesen. Es gab immer bessere Technologien für die GUI-Entwicklung, von Guptas SQLWindows und Borlands Delphi bis hin zu Microsofts Visual Basic. Und heutzutage haben wir .NET oder vielleicht mehr MFC-ähnliche, Qt.

MFC selbst war eine Reihe von Hacks und oft vorsätzliche Missbrauch der C++ - Sprache. Natürlich, wenn Sie ein großes MFC-Projekt haben, stecken Sie wahrscheinlich fest.

+5

MFC ist die Teufelsarbeit. – jkp

+5

Es ist nicht so schlimm. Es funktioniert auf eine ziemlich solide Art und Weise. Sicher, es ist eigenartig, aber die meisten Leute scheinen es zu hassen, weil "es Makros verwendet", was ein schlechtes Argument ist. –

+0

@John: Klingt wie C++ im Allgemeinen zu mir ;-) – Joey

4

Es ist nur eine ältere Technologie: Es gibt neuere, glänzendere Technologien gibt, die weit einfacher zu bedienen sind ...

+2

Ich wünschte, Sie könnten diese "glitzernden" Technologien mit nativem Code verwenden ... Ich würde sie wie einen Schuss aufnehmen ... * seufz * – Goz

+1

+1 für viel einfacher zu bedienen (und zu pflegen). Ich würde lieber C# -Code als MFC-Code sehen. –

3

Es ist ein bisschen schwer zu sehen, einen guten Grund, warum ein neues Projekt MFC/C++ ... verwenden würde, es sei denn es ist die Technologie, die ein Entwickler-Team kennt. Ein Team in C++ erlebt & MFC, der Großhandel in .NET/WPF auf ein neues Projekt springt, wird eine Menge Zeit verlieren.

Joel schrieb einen guten Artikel auf diesem Weg zurück (denke ich), aber ich kann es nicht finden. Im Grunde brauchen Sie einen geschäftlichen Grund, um die Technologie zu wechseln. "Es ist alt und hässlich und wir wollen mit WPF cool sein" ist kein Geschäftsgrund.

+0

Es liegt im Interesse des Entwicklers, mit den aktuellen Technologien/Frameworks Schritt zu halten. Besonders diejenigen, die von der Industrie akzeptiert werden. – danjarvis

+0

In vielen Branchen wollen sie Software mit bewährten Technologien. In solchen Bereichen gilt sogar .NET als zu unausgereift, um vertrauenswürdig zu sein. –

+0

Es ist in _a_ Entwickler Interesse. Aber das ist nicht dasselbe wie eine Firma, die ein Team von erfahrenen C++/MFC-Entwicklern hat. Es macht Sinn, dass sie bei dem bleiben, was sie wissen, bis sie ihre Leute mit etwas Neuem ausbilden lassen können. –

2

An manchen Tagen fühle ich mich ein bisschen wie Paul Bunyan in dem Sinne, dass ich meine MFC Axt schwinge und viele Bäume abnehme, nur um diese neuen Kettensägen zu sehen. Jeder sagt, wie viel besser die Kettensäge ist, also lerne ich, die Kettensäge zu benutzen, und ich fange an, diese Bäume zu fällen, und dann zeigt sich die feller-buncher, und jeder sagt, wie viel besser der Fälscher-Bunker ist, also lerne ich den Feller zu gebrauchen -buncher und ich fällen mehr Bäume.

Ich sage nicht, die AXE ist besser als der Feller-Buncher - es ist nicht - aber wenn Sie bereits die Axt besitzen, und Sie bereits wissen, wie man die Axt verwendet, und alles, was Sie tun müssen, ist a Baum ...

Manchmal ist der Teufel, den du kennst, besser als der, den du nicht tust.

FWIW - fast das gesamte Windows SDK basiert auf einem Makro; es ist fast wie #ifdef und #define eine ganze Entwicklungssprache an sich.

7

Nein, das stimmt nicht. Solche Aussagen sind immer falsch, denn für jedes Projekt und jede Situation müssen Sie die Bibliotheken und Sprachen erneut auswerten. Und einfach MFC ohne guten Grund zu verwerfen ist falsch.

Obwohl MFC schon seit Jahren existiert und viele Leute es nicht mehr für neue Projekte verwenden wollen, kann es immer noch die beste Wahl sein, abhängig vom Projekt. Ja, .NET und seine UI-Bibliotheken sind in den meisten Situationen die bessere Wahl für neue Projekte. Aber wenn Sie einen kleinen Speicherbedarf haben, sehr schnelle Startzeiten benötigen oder Ihre App auf sehr begrenzten Computern ausgeführt werden muss, kann MFC immer noch eine gute Wahl sein.

Zum Beispiel sind Netbooks (oder was auch immer Sie sie nennen wollen) beliebt, und nicht alle von ihnen haben das .NET-Framework installiert. Und diejenigen, die nur 512 MB-1 GB RAM haben, möchten vielleicht nicht, dass Ihre App dieses Framework verwendet.

Und natürlich gibt es andere non.NET-Bibliotheken neben MFC, die Sie verwenden könnten. Aber MFC ist immer noch eine gute Wahl.

0

Wenn Sie die Project Centennial Talk von Build 2015 sehen, zeigt Adobe immer noch MFC in ihren Adobe-Produkten. Sie verwenden mfc100 von VS2010, um eine UWP-Anwendung aus Win32/COM/MFC-Komponenten zu erstellen, sodass MFC weiterhin verwendet wird.

Bis Microsoft ein C++ - UI-Framework mit den UI-Elementen zur Verfügung stellt, die Desktop-Anwendungen Ribbons/ToolBar/Menüs/Dialog usw. verwenden, kann MFC auch mit all seinen schrulligen Bits immer noch beliebt bleiben.

Verwandte Themen