Является ли МФЦ устаревшим? - PullRequest
6 голосов
/ 23 декабря 2011

В настоящее время я работаю в проекте, который часто использует MFC, но мне кажется, что технология MFC в настоящее время широко не используется. Насколько устарела МФЦ? Каковы альтернативы для этого? Я использую VS2010 на Windows.

Спасибо за ваши ответы.

Ответы [ 3 ]

7 голосов
/ 23 декабря 2011

Windows Forms и WPF становятся все более и более популярными в наши дни, но, учитывая, что новая версия MFC была выпущена всего несколько месяцев назад (см. здесь ), я бы даже не назвал ее устаревшей.

3 голосов
/ 23 декабря 2011

Да, MFC - это не то, что вы бы назвали современным.Если вы запускаете новое (UI) приложение с нуля, у вас должны быть действительно веские причины использовать MFC (например, у вас уже есть код).Существует множество недостатков, например, архитектура документа / представления, которая подходит только для небольших приложений пользовательского интерфейса или большое количество настроек, которые вам необходимо вставить, если вы хотите элементы управления, которые не включены в эту среду (и вы, конечно,какой-то момент).Кроме того, тестировать классы MFC не так просто, о чем вам следует помнить.

Широко используются подходы с архитектурой MVC (модель-представление-контроллер).Подробнее об этих двух архитектурах можно прочитать здесь:

Document / View, используемый в MFC

Контроллер модельного представления

Поскольку вы рассматриваете MFC, я предполагаю, что у вас уже есть знания в C ++.Поэтому вам может быть интересна Qt Framework от Trolltech / Nokia.Он поддерживает архитектуру MVC, кроссплатформенно совместим и все еще активно развивается.

2 голосов
/ 25 декабря 2011

МФЦ не так уж и плох.Проблема в том, что большинство компонентов (окна / виджеты) довольно плохие или точнее очень негибкие.Как сказал Ганс, это 18 лет обратной совместимости, и поэтому учитываются все такты и байты памяти.Сегодня это больно.

Я использую его, потому что Windows Forms и WPF просто не пригодны для кросс-платформенной разработки графического интерфейса, где языковой язык бэкэнда - C или C ++ (если Java не подходит для вашего проектапо любой причине).

В зависимости от того, что вы хотите сделать и насколько важен очень естественный графический интерфейс, MFC может быть единственным выбором, особенно когда вы можете позволить себе купить компоненты сторонних производителей и использовать пакет функций илиЛенты.

Я не комментирую QT / GTK / FLTK или другой инструментарий, если вы не расскажете нам больше о своем проекте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...