Фреймворк
Материал из Википедии — свободной энциклопедии
Фреймворк (англ. framework) — термин, имеющий размытое значение. Обычно используется в программировании, обозначая «простую концептуальную структуру, используемую для решения сложной, проблемной задачи». Значение этого термина существенно зависит от контекста его использования.
Концептуальный фреймворк (англ. conceptual framework) — абстрактная структура, используется в исследованиях для определения возможных способов решения проблемы, или представления идеи.
Программный фреймворк (англ. software framework) — каркас программной системы (или подсистемы). Может включать вспомогательные программы, библиотеки кода, язык сценариев и другое ПО, облегчающее разработку и объединение разных компонентов большого программного проекта. Обычно объединение происходит за счёт использования единого API.
Примеры: системы управления контентом (CMS).
Отличается от библиотеки тем, что выполняет код написанный для него, а не исполняется сам. Пример программного каркаса — CMF (Content Management Framework), а пример библиотеки — модуль электронной почты.
Также, в отличие от библиотеки, которая объединяет в себе набор близкой функциональности, фреймворк содержит в себе большое число разных по тематике библиотек.
Прикладной фреймворк (англ. application framework) — каркас приложения (открытая инфраструктура приложения). Это программный фреймворк, который используется, чтобы обеспечивать выполнение стандартной структуры приложения для определённой операционной системы. Каркасы приложения стали популярны с появлением графических интерфейсов пользователя, который имел тенденцию к распространению стандартой структуры для приложений. С их использованием стало гораздо проще создавать средства для автоматического создания графических интерфейсов, так как структура внутренней реализации кода приложения стала известна заранее. Для обеспечения каркаса обычно используются техники объектно-ориентированного программирования, например части приложения могут наследоваться от базовых классов фреймворка.
Один из первых коммерческих каркасов приложения был MacApp, написанный Apple Computer под Macintosh. Первоначально созданный с помощью расширенной (объектно-ориентированной) версии языка Паскаль, впоследствии он был переписан на C++. Другие популярные каркасы для Macintosh включали Metrowerks Powerplant и MacZoop (все основаны на Carbon).
В различной степени, каркас приложения представляют собой Cocoa для Mac OS X, а также свободные каркасы, существующие как часть проектов Mozilla, OpenOffice.org, GNOME и KDE.
Microsoft создала похожий продукт для Windows, который называется "Microsoft Foundation Classes" (MFC). На данный момент основным продуктом Microsoft для разработки ПО предлагается .NET Framework.
Также существуют каркасы, которые создают одинаковые приложения для Linux, Macintosh и Windows из одного и того же исходного кода, например, widget toolkit, wxWidgets, Qt или FOX toolkit.
[править] Точки расширения фреймворка
Фреймворк определяется как множество конкретных и абстрактных классов, а также определений способов их взаимоотношения. Конкретный классы обычно реализуют взаимные отношения между классами. Абстрактные классы представляют собой точки расширения, в которых каркасы могут быть использованы или адаптированы. Точка расширения — это та часть каркаса, для которого не приведена реализация. Соответственно концептуальный фреймворк состоит из концептуальных классов, а программный фреймворк из классов языка программирования общего назначения.
Процесс создания фреймворка заключается в выборе подмножества задач проблемы и их реализаций. В ходе реализаций общие средства решения задач заключаются в конкретных классах, а изменяемые средства выносятся в точки расширения фреймворка.
[править] См. также
| Это незавершённая статья о программировании. Вы можете помочь проекту, исправив и дополнив её. |

