Pour commencer cette série de publications je vais aborder une technologie dédiée la conception des logiciels appartenant à Microsoft. Il s'agit du Microsoft Foundation Class Library.

Pourquoi commencer par un tel article ?

Ce blog s'inscrit dans un projet plus global de publications diverses que j'ai en tête depuis plusieurs mois. Malheureusement ma formation en informatique ne me laissait que peu de temps pour pouvoir le réaliser. Celle-ci devrait se conclure cette année par l'obtention d'un diplôme intitulé "Responsable en ingénierie des logiciel". Afin de valider mon année je dois effectuer un stage d'environ 4 mois en entreprise. Stage au cours duquel je suis confronté à là technologie que je vais rapidement critiquer ici.

Qu'est ce que MFC ?

Le Microsoft Foundation Class est une bibliothèque de classes écrite en C++. Elle encapsule l'API Win32 (Vous savez peut être déjà que Win32 est écrite en C). MFC utilise une architecture objet comparable au modèle/vue/contrôleur à l'exception prés que le contrôleur n'existe pas réellement car il est géré complétement indépendamment du reste via l'OS.

Est ce que c'est utile ?

Clairement, en 2010, je ne vois plus l'intérêt d'utiliser MFC pour réaliser des applications de gestion. En effet, MFC a un niveau d'abstraction par rapport à Win32 relativement faible. Ce qui implique des développements lourds avec un grand nombre de lignes de codes alors que les technologies managées nous permettent d'obtenir le même résultat avec une différence de performances imperceptible sur les machines actuelles. De plus, le modèle objet « Document/view » utilisé par MFC est très rigide et peu pratique.

Ici je souhaite juste initialiser un label ...

CStatic *lblPresent = new CStatic; lblPresent->Create(L"Present", WS_CHILD | WS_VISIBLE, CRect(20, 20, 100, 40), this);

Mais alors, quel est l'intérêt ?

Son seul intérêt réside dans la possibilité d'utiliser des contrôles propre à l'OS qui sont indisponibles dans le Framework .net, et d'intégrer des appels au kernel et à directX. Avec la possibilité d'utilisation de directX on pourrait alors penser que MFC peut servir au développement de jeux vidéos ... mais même pas : le « Document/view » est un dérivé du MVC, donc inadaptés à cette utilisation.

Conclusion

Je suis très déçu par cette technologie ainsi que par le stage dans son ensemble d'ailleurs. Mais comme je ne suis pas du genre à cracher publiquement sur la société qui à bien voulu me prendre en stage je ne détaillerais pas ce dernier point ici. J'espère seulement que la médiocre qualité de mon travail et le peu d'intérêt que j'ai eu à travailler sur ce projet me permettront quand même de réussir ma soutenance et d'obtenir mon diplôme.