Microsoft Foundation Classes

De la Wikipedia, enciclopedia liberă
(Redirecționat de la AFX)

În programare, Microsoft Foundation Classes (sau MFC), cu numele originar Application Framework eXtension (sau AFX) este o bibliotecă aparținând Microsoft, care încapsulează porțiuni din Windows API în clase de C++, formând o fundație pentru aplicațiile care rulează sub sistemul de operare Microsoft Windows. Clasele sunt definite pentru mai multe obiecte handle, unitățile de bază ale sistemului de operare, care definesc și obiecte grafice.

Istorie[modificare | modificare sursă]

MFC a fost introdus în anul 1992, împreună cu compilatorul Microsoft C/C++ 7.0 folosit pentru versiunile de Windows pe 16 biți. A fost parte a unui efort al Microsoft de a mai câștiga din piața de dezvoltare a produselor software, cât și pentru a arăta câteva avantaje ale programării în C++. C++ tocmai era pe cale de a înlocui limbajul C în cadrul instrumentelor de dezvoltare pentru aplicații comerciale, iar C/C++ 7.0 era primul compilator al Microsoft, cu suport pentru C++. MFC a fost inspirat din TCL (Think Class Library) pe Macintosh.

Versiunea 8 a MFC a fost lansată împreună cu produsul Microsoft Visual Studio 2005 și nu este inclusă în varianta gratuită denumită Express, a produsului. Microsoft recomandă folosirea alternativei .NET pentru viitorul dezvoltării software.

Object Windows Library (OWL), creată de către Borland și inclusă în compilatorul Borland Turbo C compiler, era un competitor al acelei vremi. Din moment ce urmărea principiile programării orientată pe obiecte, OWL a fost mai populară decât MFC pentru un timp. A început să piardă din piață din cauza reînnoirilor întârziate și din cauza incompatibilității cu noile beneficii aduse de Windows. Borland a lansat apoi VCL (Visual Component Library) pentru a înlocui OWL.

Caracteristici[modificare | modificare sursă]

Când MFC a fost lansat, Microsoft a extins sintaxa C++ cu o serie de macro-uri pentru a servi mesajelor Windows, excepțiilor, identificării tipurilor la rulare, instanțierea dinamică a claselor (multe dintre aceste caracteristici – excepții sau identificarea tipurilor la rulare, spre exemplu – nu au fost construite în compilatorul Microsoft, la acea vreme, dar vor apărea în versiuni ulterioare) etc.

Avantaje[modificare | modificare sursă]

  • furnizează un model orientat pe obiecte pentru Windows API.