Interested Article - Content Management Framework
- 2020-01-11
- 1
Content Management Framework (CMF) — это фреймворк для проектирования систем управления контентом. На их основе создаются системы управления содержимым (CMS), а также веб-приложения .
Преимущества
Если основная задача универсальных систем управления содержимым — простота создания сайта без вмешательства программиста, то есть — конструктор сайтов, то каркас управления содержимым — это конструктор систем управления содержимым (в том числе узкоспециализированных) для программиста . Благодаря такому подходу сайт, созданный с помощью каркаса, по сравнению с сайтом на базе системы управления содержимым, может иметь более простую и безопасную в работе административную панель (в которой отсутствуют функции настройки сайта под любые задачи) и быть менее требовательным к ресурсам системы (каждый модуль реализует именно те функции, которые необходимы в работе сайта). При наличии грамотно спроектированного каркаса и готовых модулей, программисту остаётся только сборка этих модулей в единое пространство и оформление вывода в соответствии с пожеланиями клиента, то есть разработка сайта на основе каркаса вполне сравнима по трудоёмкости с разработкой сайта на основе универсальной системы управления содержимым .
Сложности могут возникнуть, если программист-пользователь фреймворка столкнётся с программными ошибками в его реализации. Не будучи экспертом в архитектуре фреймворка, он может испытывать затруднение с её локализацией, не может быть уверен, сделал ли он ошибку сам, или столкнулся с ошибкой в фреймворке. Глубокие знания архитектуры фреймворка могут понадобиться и при его тонкой настройке, если программист желает получить максимальную производительность .
Архитектура
Фреймворки веб-приложений обычно обеспечивают механизмы доступа к базе данных, шаблонизации и управление .
Большинство современных фреймворков управления содержимым являются реализацией архитектуры Model-View-Controller . Веб-фреймворк обеспечивает бесшовную интеграцию всех трёх слоёв MVC архитектуры. Фреймворки скрывают от программиста детали подключения к базе данных и формирования веб страниц с помощью шаблонов -представлений, позволяя программисту сконцентрироваться на реализации бизнес-логики .
Процесс создания приложения с использованием MVC-фреймворка заключается в написании классов контроллеров, моделей и представлений, каждый из которых является наследником базовых классов для компонентов каждого слоя.
Многие веб-фреймворки обеспечивают полуавтоматическое создание прототипа веб-приложения, выполняющего основные операции с данными ( создание, чтение, обновление, удаление ) с помощью метода метапрограммирования — скаффолдинга .
Важные характеристики фреймворка
- Размер. При выборе фреймворка управления содержимым стоит обращать внимание на такие факторы, как его размер. Если он слишком велик и фреймворк не имеет легко разделяемой модульной архитектуры, это может неоправданно увеличить размер приложения. Компактность фреймворка может вступить в противоречие с широтой возможностей, которые он предоставляет .
- Производительность — другая важная на практике характеристика веб-фреймворка. Она может косвенно зависеть от размера, особенно для интерпретируемых языков подобным PHP . Следует оценивать производительность фреймворка в таких единицах, как количество обрабатываемых в секунду запросов .
Граница между фреймворком и системой управления содержимым
Многие современные системы управления содержимым (CMS) построены вокруг MVC-паттерна. Такой фреймворк может быть специально написан для системы, примерами могут являться: Joomla! (начиная с версии 1.5), Bitrix (начиная с версии 6), MODX Revolution (начиная с версии 2.0), SilverStripe , Contao , Frog CMS / Wolf CMS ведётся постепенный перевод на такую архитектуру TYPO3 . Другие системы используют фреймворки, популярные сами по себе. Так, написанная на языке Python система управления содержимым Plone построена на основе объектно-ориентированного сервера приложений Zope (и его расширения — CMF ), коммерческая CMS ExpressionEngine использует свободный фреймворк CodeIgniter того же автора. CMS eZ publish основана на фреймворке , изначально того же разработчика (сейчас передан Apache Foundation и переименован в ). В последнее время появилась тенденция использовать в качестве базиса для построения системы управления содержанием Zend Framework : примерами могут служить вошедшие в финал Packt Open Source Awards — 2010 в категории «самые многообещающие CMS» и , а также Concrete5 , отмеченная в 2011 Open Source CMS Market Share Report, как самая быстрорастущая CMS. Выпущенная в конце 2014 года восьмая версия Drupal также построена вокруг Symfony .
Ряд cистем управления содержимым , предоставляющих интерфейс программирования приложений для расширения своей функциональности, претендуют на звание фреймворка, хотя провести чёткую границу между системой и фреймворком порой сложно. Основным отличием является то что используя систему можно построить сайт не написав ни одной строчки кода [ источник не указан 2960 дней ] .
Такая готовая к использованию система управления контентом, как Drupal , одновременно считается и каркасом для построения таких систем , что определяется как возможностью расширения функционала за счёт пользовательских модулей , так и богатством механизмов и абстракций для управления контентом, предоставляемым этой системой .
Примечания
- Дмитрий Попов. // PHP Inside. — phpclub.ru, 2004. — № 7 . — С. 97-107 . 7 мая 2006 года.
- ↑ Samisa Abeysinghe. Ch 3. Dealing with Complexity → Frameworks to simplify complexity // PHP Team Development. — , 2009. — P. 58-68. — 183 p. — ISBN 978-1-847195-06-7 .
- Rokas Firantas, Martynas Jusevičius. . — IT University of Copenhagen, 23 November — 20 December 2006. 5 ноября 2012 года.
- Дата обращения: 3 сентября 2014. Архивировано из 6 марта 2016 года.
- . Дата обращения: 8 февраля 2012. Архивировано из 27 августа 2016 года.
- Колисниченко Денис Николаевич. . — БХВ-Петербург, 2010-01-01. — 288 с. — ISBN 9785977505970 . 16 марта 2022 года.
- Angela Byron, Addison Berry, Bruno De Bondt. . — "O'Reilly Media, Inc.", 2012-04-10. — 495 с. — ISBN 9781449336158 . 16 марта 2022 года.
- Matt Butcher, Larry Garfield, John Wilkins. . — Packt Publishing Ltd, 2010-12-03. — 822 с. — ISBN 9781849511179 . 16 марта 2022 года.
- Jennifer Hodgdon. . — "O'Reilly Media, Inc.", 2015-10-13. — 339 с. — ISBN 9781491912621 . 16 марта 2022 года.
- Liran Tal. . — Packt Publishing Ltd, 2013-01-01. — 385 с. — ISBN 9781849516099 . 16 марта 2022 года.
Литература
- Martin Brampton. . — PACKT publishing, June 2008. — 328 p. — ISBN 978-1-847193-57-5 .
- Samisa Abeysinghe. Ch 3. Dealing with Complexity → Frameworks to simplify complexity // PHP Team Development. — , 2009. — P. 58-68. — 183 p. — ISBN 978-1-847195-06-7 .
- Дмитрий Попов. // PHP Inside. — phpclub.ru, 2004. — № 7 . — С. 97-107 . 7 мая 2006 года.
- Денис Баженов. // PHP Inside. — phpclub.ru, 2004. — № 9 . — С. 5-18 . (недоступная ссылка) , Денис Баженов. // PHP Inside. — phpclub.ru, 2005. — № 11 . — С. 5-11 . (недоступная ссылка)
- Йен Маурер. = Python Web frameworks, Part 1: Develop for the Web with Django and Python. — IBM developerWorks. , = Part 2: Web development with TurboGears and Python. — IBM developerWorks.
- Julia Plekhanova. // The IBIT Report. — Temple University, September 2009.
Ссылки
- , Choose your programming language to compare web frameworks
- 2020-01-11
- 1