2010-01-22 3 views

Répondre

13

On peut dire que, personne ne devrait jamais ont utilisé MFC (parler comme quelqu'un qui a été exposé depuis MFC 1.0). Il y avait toujours de meilleures technologies pour le développement de l'interface graphique, depuis SQLWindows de Gupta et Delphi de Borland jusqu'au Visual Basic de Microsoft. Et de nos jours, nous avons .NET ou, peut-être plus de MFC-like, Qt. MFC lui-même était une série de hacks, et souvent des abus délibérés du langage C++. Bien sûr, si vous avez un gros projet MFC, vous êtes probablement bloqué avec.

+5

MFC est le travail de diables. – jkp

+5

Ce n'est pas si grave. Cela fonctionne d'une manière assez solide. Bien sûr, c'est bizarre, mais la plupart des gens semblent le détester parce que «ça utilise des macros», ce qui est un argument médiocre. –

+0

@John: Ca me ressemble en général C++ ;-) – Joey

4

Il est juste une technologie plus ancienne: il y a des technologies nouvelles, plus brillants là-bas qui sont beaucoup plus faciles à utiliser ...

+2

Je souhaite que vous pourriez utiliser ces technologies "plus brillantes" avec le code natif ... Je les prendrais comme un tir ... * soupir * – Goz

+1

+1 pour beaucoup plus facile à utiliser (et à maintenir). Je préférerais voir le code C# que le code MFC. –

3

Il est un peu difficile de voir pourquoi un nouveau projet utiliserait MFC/C++ ... sauf si c'est la technologie que connait une équipe de développeurs. Une équipe expérimentée en C++ & MFC qui saute en gros sur .NET/WPF sur un nouveau projet va perdre beaucoup de temps.

Joel a écrit un bon article sur ce chemin de retour (je pense), mais je ne le trouve pas. Fondamentalement, vous avez besoin d'une raison commerciale pour changer de technologie. "C'est vieux et moche et on veut être cool avec WPF" n'est pas une raison d'affaire.

+0

Il est dans l'intérêt des développeurs de suivre les technologies/frameworks actuels. Surtout ceux qui sont acceptés par l'industrie. – danjarvis

+0

Dans de nombreuses industries, ils veulent des logiciels utilisant des technologies éprouvées. Dans ces domaines, même .NET est considéré comme trop immature pour être fiable. –

+0

Il est dans l'intérêt du développeur. Mais ce n'est pas la même chose qu'une entreprise qui a une équipe de développeurs C++/MFC expérimentés. Il est logique pour eux de s'en tenir à ce qu'ils savent jusqu'à ce qu'ils puissent former leurs gens à quelque chose de plus récent. –

2

Certains jours, je me sens un peu comme Paul Bunyan dans le sens où je balance ma MFC Axe et que je descends beaucoup d'arbres pour voir apparaître ces nouvelles tronçonneuses. Tout le monde dit que la tronçonneuse est meilleure, alors j'apprends à utiliser la tronçonneuse et je commence à abattre ces arbres, puis le feller-buncher apparaît, et tout le monde dit à quel point l'abatteuse-groupeuse est meilleure, alors j'apprends à utiliser l'abatteuse -uncher et j'ai abattu plus d'arbres. Je ne dis pas que l'AX est meilleur que l'abatteuse-empileuse - ce n'est pas le cas - mais si vous possédez déjà la hache, et que vous savez déjà comment utiliser la hache, tout ce que vous devez faire est de couper arbre ...

Parfois, le diable que vous connaissez est meilleur que celui que vous ne connaissez pas. FWIW - à peu près tout le SDK de Windows est basé sur une macro; c'est presque comme #ifdef et #define sont un langage de développement entier en soi.

7

Non, ce n'est pas vrai. Les affirmations de ce type sont toujours fausses, car pour chaque projet et chaque situation, vous devez à nouveau évaluer les bibliothèques et les langages. Et rejeter simplement MFC sans raison est faux.

Même si MFC existe depuis des années et que beaucoup de gens ne veulent plus l'utiliser pour de nouveaux projets, il peut toujours être le meilleur choix selon le projet. Oui, .NET et ses librairies d'interface utilisateur sont dans la plupart des situations le meilleur choix pour de nouveaux projets aujourd'hui. Mais si vous voulez une petite empreinte de mémoire, un temps de démarrage très rapide ou votre application doit fonctionner sur des ordinateurs très limités, MFC peut toujours être un bon choix. Par exemple, les netbooks (ou ce que vous voulez les appeler) sont populaires, et tous n'ont pas le framework .NET installé. Et ceux qui ont seulement 512 Mo de RAM 1 Go, vous ne voulez pas que votre application utilise ce cadre.

Et bien sûr, il existe d'autres bibliothèques non-NET que MFC que vous pouvez utiliser. Mais MFC est toujours un bon choix.

0

Si vous regardez la conversation Project Centennial à partir de Build 2015, Adobe montre toujours l'utilisation de MFC dans leurs produits Adobe. Ils utilisent mfc100 de VS2010 pour créer une application UWP à partir de composants Win32/COM/MFC, donc MFC est toujours utilisé. Jusqu'à ce que Microsoft fournisse une infrastructure d'interface utilisateur C++ avec les éléments de l'interface utilisateur que les applications de bureau utilisent Rubans/ToolBar/Menus/Dialog etc, alors MFC peut toujours rester populaire même avec tous ses bits excentriques.

Questions connexes