Content Management Framework


Content Management Framework (CMF) — это фреймворк для проектирования систем управления контентом. На их основе создаются системы управления содержимым (CMS), а также веб-приложения.

Если основная задача универсальных систем управления содержимым — простота создания сайта без вмешательства программиста, то есть — конструктор сайтов, то каркас управления содержимым — это конструктор систем управления содержимым (в том числе узкоспециализированных) для программиста. Благодаря такому подходу сайт, созданный с помощью каркаса, по сравнению с сайтом на базе системы управления содержимым, может иметь более простую и безопасную в работе административную панель (в которой отсутствуют функции настройки сайта под любые задачи) и быть менее требовательным к ресурсам системы (каждый модуль реализует именно те функции, которые необходимы в работе сайта). При наличии грамотно спроектированного каркаса и готовых модулей, программисту остаётся только сборка этих модулей в единое пространство и оформление вывода в соответствии с пожеланиями клиента, то есть разработка сайта на основе каркаса вполне сравнима по трудоёмкости с разработкой сайта на основе универсальной системы управления содержимым[1].

Сложности могут возникнуть, если программист-пользователь фреймворка столкнётся с программными ошибками в его реализации. Не будучи экспертом в архитектуре фреймворка, он может испытывать затруднение с её локализацией, не может быть уверен, сделал ли он ошибку сам, или столкнулся с ошибкой в фреймворке. Глубокие знания архитектуры фреймворка могут понадобиться и при его тонкой настройке, если программист желает получить максимальную производительность[2].

Фреймворки веб-приложений обычно обеспечивают механизмы доступа к базе данных, шаблонизации и управление сессиями[англ.][3].

Большинство современных фреймворков управления содержимым являются реализацией архитектуры Model-View-Controller. Веб-фреймворк обеспечивает бесшовную интеграцию всех трёх слоёв MVC архитектуры. Фреймворки скрывают от программиста детали подключения к базе данных и формирования веб страниц с помощью шаблонов-представлений, позволяя программисту сконцентрироваться на реализации бизнес-логики[2].

Процесс создания приложения с использованием MVC-фреймворка заключается в написании классов контроллеров, моделей и представлений, каждый из которых является наследником базовых классов для компонентов каждого слоя.