Фреймворк — это платформа, оптимальная для создания сложных сайтов или веб-приложений по индивидуальному проекту. Продукты, разрабатываемые с помощью фреймворка, способены работать быстро и выдерживать серьезные нагрузки.
Надо быть готовым к тому что при выборе фреймворка в качестве платформы для разработки, придется достаточно много времени и ресурсов потратить на разработку бизнес-логики, это плата за предоставляемую ими гибкость.
Фреймворк — это программный продукт, который служит основой для сайта, но обычно не содержит в себе готовых программных модулей для реализации конкретных бизнес-процессов. Выражаясь техническим языком, фреймворк — это более низкоуровневое решение, чем CMS. Разработчики, при создании сайта на фреймворке, создают не только публичную часть сайта, но и проектируют базу данных, разрабатывают алгоритмы для модулей системы, а также создают административный интерфейс для управления проектом.
Этот вид платформ используют почти все крупные веб-проекты, а также подавляющее большинство веб-приложений и веб-сервисов. Коробочных решений для уникальных бизнес-процессов просто не существует, а использование не очень подходящих CMS в качестве основы для кастомизации очень усложняет разработку.
Разработка на фреймворке, в отличие от самописных решений, позволяет добиться простоты сопровождаемости проекта.
Возможна реализация любых бизнес-процессов, а не только тех, которые изначально заложены в систему. Также проекты на базе фреймворков легко масштабируемы и модернизируемы.
Решения на фреймворках, как правило, работают значительно быстрее и выдерживают большую нагрузку, чем CMS и самописные системы. Именно поэтому много популярных интернет-магазинов работают не на коробочных CMS, а на фреймворках. По уровню безопасности решения на фреймворках значительно превосходят самописные системы и сравнимы с CMS.
Сроки разработки типового функционала на фреймворках больше, чем при использовании CMS. Фреймворки содержат только базовые компоненты бизнеc-логики уровня приложения, поэтому многие функции реализовываются индивидуально.
Для разработки на фреймворке требуется понимание бизнес-процессов, которые требуется реализовать. Например, если в CMS уже есть некий предустановленный процесс обработки заказов, то фреймворки такого не предоставляют.
Разработка на CMS — наиболее правильный подход, если проект достаточно типовой. То есть в CMS уже есть все нужные вам модули, а те процессы, которые встроены в CMS, почти полностью соответствуют вашим ожиданиям.
Разработка на фреймворке — наиболее правильный подход, если ваше видение проекта не особо укладывается в возможности и процессы присутствующих на рынке CMS. То есть тогда, когда в случае использования CMS ее придется существенно дорабатывать.