"Никто больше не должен использовать MFC" почему?

правда ли, что "никто больше не должен использовать MFC"

и почему?

6 ответов


возможно, никто не должен когда-нибудь использовали MFC (говоря как кто-то, кто подвергался ему с MFC 1.0). Всегда были лучшие технологии для разработки GUI, от SQLWindows Gupta и Delphi Borland до собственного Visual Basic Microsoft. И в настоящее время у нас есть .NET или, возможно, более похожий на MFC, Qt.

MFC сам по себе был серией хаков и часто преднамеренных злоупотреблений языком C++. Конечно, если у вас есть большой проект MFC, вы, вероятно, придерживаться ее.


нет, это неправда. Такие утверждения всегда ошибочны, потому что для каждого проекта и каждой ситуации вы должны снова оценить библиотеки и языки. И просто отказаться от MFC без уважительной причины неправильно.

несмотря на то, что MFC существует уже много лет, и многие люди больше не хотят использовать его для новых проектов, он по-прежнему может быть лучшим выбором в зависимости от проекта. Да, .NET и это UI libs в большинстве ситуаций являются лучшим выбором для новых проектов сегодня. Но если вы хотите небольшой объем памяти, очень быстрое время запуска или ваше приложение должно работать на очень ограниченных компьютерах, MFC все еще может быть хорошим выбором.

например, нетбуки (или как вы их называете) популярны, и не у всех из них установлена .NET framework. И те, у кого есть только 512MB-1GB RAM, вы можете не захотеть, чтобы ваше приложение использовало эту структуру.

и, конечно, есть другие non-.NET библиотеки помимо MFC вы можете использовать. Но MFC все еще хороший выбор.


Это просто старая технология: есть новые, более блестящие технологии, которые намного проще в использовании...


Это немного трудно понять, почему новый проект будет использовать MFC и C++ ... если это технология, которую знает команда разработчиков. Команда, опытная в C++ & MFC, которая прыгает оптом в .NET/WPF в новом проекте, потеряет много времени.

Джоэл написал хорошую статью об этом пути назад (я думаю), но я не могу ее найти. В принципе, вам нужна деловая причина для переключения технологий. "Это старый и уродливый, и мы хотим быть крутыми с WPF" - это не бизнес причина.


иногда я чувствую себя немного как Пол Баньян в том смысле, что я размахиваю топором MFC и снимаю много деревьев только для того, чтобы увидеть, как появляются эти новые зубчатые бензопилы. Все говорят, что бензопила намного лучше, поэтому я учусь пользоваться бензопилой и начинаю рубить деревья, а потом ... --1-->валочно-пакетирующей машины появляется, и все говорят, насколько лучше feller-buncher, поэтому я учусь использовать feller-buncher, и я срубил больше деревьев.

Я не говорю топор лучше, чем валочно-пакетирующей машины - его нет - но если у вас уже есть топор, и вы уже знаете, как использовать топор, и все, что вам нужно сделать, это спилить дерево...

иногда дьявол, которого вы знаете, лучше, чем тот, которого вы не знаете.

FWIW - почти весь Windows SDK основан на макросе; его почти как #ifdef и #define-это целый язык разработки сам по себе.


Если вы посмотрите Проект Столетие talk from Build 2015 показывает, что Adobe все еще использует MFC в своих продуктах Adobe. Они используют mfc100 из VS2010 для создания приложения UWP из компонентов Win32/COM/MFC, поэтому MFC все еще используется.

пока Microsoft не предоставит C++ UI Framework с элементами UI, которые настольные приложения используют ленты / панель инструментов/меню / диалог и т. д., Тогда MFC может оставаться популярным даже со всеми его причудливыми битами.