- Microsoft Foundation Classes
-
Die Microsoft Foundation Classes (MFC) sind eine Sammlung objektorientierter Klassenbibliotheken, die von Microsoft für die Programmierung von Anwendungen mit grafischen Benutzeroberflächen für Windows mit C++ entwickelt wurden. Sie bieten eine professionelle Klassenhierarchie implizit an, die von normalen Softwareentwicklern in diesem Vollkommenheitsgrad kaum erstellt werden können.[1] Microsoft führte die MFC 1992 mit dem hauseigenen C/C++-Compiler ein. Die MFC werden mit diversen Microsoft C++-Übersetzern ausgeliefert und sind Teil der Vollversionen der integrierten Entwicklungsumgebung Microsoft Visual Studio. Die kostenlosen Visual Studio Express Editionen enthalten die MFC nicht. Seit Windows 2000 ist eine oder mehrere MFC-Programmbibliotheken im Betriebssystem enthalten. Zur Nutzung von übersetzten MFC-Programmen ist demzufolge nur im Ausnahmefall die Installation einer Runtime-Library(DLL) notwendig.
Die MFC dienen als Schnittstelle zu den nicht objektorientierten API-Funktionen des Betriebssystems und sollen den Umgang mit den vom Betriebssystem zur Verfügung gestellten Ressourcen erheblich vereinfachen. Die MFC stellen somit eine Umsetzung des Adapter-Entwurfsmusters dar – anstatt nur direkt die Win32-API-Funktionen verwenden zu können, kann der Programmierer nun als Adapter die Klassen der MFC verwenden.
Die MFC unterstützen eine Abwandlung des Model-View-Controller-Architekturmusters. Es werden die Klassen CDocument und CView zur Verfügung gestellt, wobei mit CDocument das Modell, d.h. der Datenbehälter und mit CView sowohl Ansicht als auch Steuerung implementiert werden. Der in Microsoft Visual Studio enthaltene Assistent ermöglicht es, Programmiergerüste unter Verwendung dieser Architektur automatisch zu erstellen.
Ein Sondermerkmal von MFC ist die Verwendung von "Afx" als Präfix vieler Funktionen, Makros und sein Vorkommen beim standardmäßig vorkompilierten Headernamen "stdafx.h", was davon herrührt, daß in der frühen Entwicklung der MFC diese zunächst "Application Framework Extensions" genannt und mit "Afx" abgekürzt wurde. Erst viel später wurde "Afx" in MFC umbenannt - so spät, dass diese Bezüge nicht mehr verändert werden konnten.
Neben der Weiterentwicklung durch den Hersteller bei weitgehender Abwärtskompatibilität existieren zahlreiche Ergänzungen durch kommerzielle Anbieter sowie eine ausführliche Dokumentation. Alle in Windows verwendeten Steuerelemente können verwendet werden. So sind aktuelle Komponenten aus Windows und anderen Microsoft-Produkten (z. B. Ribbons) in den MFC verfügbar, sowie das aktuelle Aero-Design.
Inhaltsverzeichnis
Alternative Bibliotheken
Bekannte Alternativen zu den MFC sind zum Beispiel die Active Template Library (ATL, ebenfalls Microsoft), auch in Kombination mit der Windows Template Library (WTL, von Microsoft als Open Source freigegeben), und die Visual Component Library (Borland). Die .NET-Plattform verwendet ein System namens Windows Forms, das von der MFC (und dem Thunderforms-System von Visual Basic) beeinflusst wurde. Im Gegensatz zu MFC wird zum GUI-Entwickeln dabei kein reines C++, sondern die Microsoft C++-Spracherweiterung C++/CLI verwendet. Plattformübergreifende Alternativen sind Qt und wxWidgets – beide basierend auf C++ – oder GTK+ – basierend auf C. Alle drei Alternativen haben außerdem Sprachanbindungen für Java, Perl, Python, Ruby, und andere Sprachen.
Referenzen
- ↑ MFC. WEBOPEDIA. Abgerufen am 15. Juni 2011. „Short for Microsoft Foundation Classes, a large library of C++ classes developed by Microsoft. For Windows -based applications written in C++, MFC provides an enormous headstart. One of the hardest parts of developing C++ programs is designing a logical hierarchy of classes. With MFC, this work has already been done.“
Literatur
- Frank Budszuhn: Visual C++. Studentenausgabe. Windows-Programmierung mit den MFC. Addison-Wesley, 2004, ISBN 3-82732-175-1.
- George Shepherd, David J. Kruglinski: Inside Visual C++ .NET. Microsoft Press Deutschland, 2003, ISBN 3-86063-678-2.
- Jeff Prosise: Programming Windows with MFC Second Edition. Microsoft Press Books, 1999, ISBN 1-57231-695-0.
Weblinks
Kategorien:- GUI-Framework
- Windows
Wikimedia Foundation.