15.2  Эволюция MFC

Библиотека MFC впервые появилась в 1992 году, в версии 1.0, которая входила в Microsoft С/C++ 7.0. Версия 1.0 была всего лишь набором классов С++, которые служили оболочками для отдельных частей Windows API (интерфейса прикладных программ).

Версия MFC 2.0, выпущенная вместе с VisualC++ 1.0 в начале 1993 года, обладала более высоким уровнем абстракции, в ней была реализована знакомая для программистов SmallTalk концепция «модель, вид, контейнер», в которой «модель» представляет данные, «вид» – их визуализацию, а «контейнер» определяет логику работы приложения (то есть ход выполнения программы).

В терминах MFC эта модель называлась «документ, вид, приложение», но не стоит ошибочно воспринимать слово «документ». Оно вовсе не означает, что возможности программ на базе MFC ограничиваются обработкой документов. Объект-документ просто соответствует данным, с которыми работает приложение; он может содержать произвольную информацию. Необходимо понимать, что пользователь не обязан всегда пользоваться этой архитектурой, однако она может принести дополнительные преимущества.

Версия 2.5 была выпущена вместе с VisualC++ 1.5 в конце 1993 года. В нее были добавлены многочисленные классы OLE и написанные на языке C++ оболочки для работы с ODBC (открытой архитектурой баз данных) API. Эта версия позволяла создавать объекты и контейнеры OLE, а также приложения, работающие с базами данных через ODBC, посредством гораздо меньшего объема кода.

Версия 3.0 вышла в составе VisualC++ 2.0 в сентябре 1994 года. Нововведений было много – поддержка 32-разрядных OLE и ODBC, многопоточность, классы-коллекции на базе настоящих шаблонов C++ (VisualC++ 2.0 стал первым компилятором C++, выпущенным Microsoft, в котором поддерживались шаблоны C++), блокноты и страницы свойств, закрепляемые панели инструментов с подсказками и ряд других мелочей.

Версия MFC3.1 появилась в январе 1995 года с VisualC++ 2.1 и по сравнению с версией 3.0 включала такие дополнения, как поддержку сокетов, базовую поддержку MAPI и «оболочки» для новых системных элементов Windows95. Сокеты и страницы свойств также были добавлены в 16-разрядную MFC 2.52, которая прилагалась на CD-ROM к VisualC++ 2.1.

Версия 4.0 вышла в сентябре 1995 года. В ней присутствовали классы-оболочки для многих компонентов пользовательского интерфейса Windows95, а также возможность создания элементов и контейнеров ActiveX.

В появившейся позже версии 4.1 (начало 1996 года) добавились различные аспекты поддержки Internet (ISAPI DLL), а в версии 4.2 (июль1996 года) – поддержка ряда возможностей, связанных с ActiveX: особенностей элементов OCX 96 и ActiveX, создания объектов документов ActiveX и некоторых мелочей из ActiveX SDK (например, асинхронных моникеров). Следовательно, сейчас мы имеем дело уже с девятым выпуском библиотеки MFC, поэтому она превратилась в стабильный набор классов, многократно протестированных в реальных приложениях. Кроме того, MFC завоевала репутацию стандартной библиотеки классов для разработки Windows-приложений.