Framework (с англ. framework - «каркас, структура») – в веб-программировании это специальная программная платформа или комплекс компонентов и моделей, облегчающих процесс веб-разработки. Хотя фреймворки известны и в других областях программирования, именно в веб-разработке, в последние годы они получили интенсивное развитие.
Во всех фреймворках применяется паттерн проектирования MVC (англ. model-view-controller – «модель-представление-контроллер»). MVC – это необходимое условие для организации кода или компонентов. Его задача – решить проблему проектирования, которая возникла в рабочем решении.
Кроме того, паттерн проектирования разделяет все приложение на три элемента:
С помощью шаблона MVC большинство фреймворков помогают организовать код таким образом, что любые изменения в модели, контроллере или виде не оказывают сильного влияния на структуру приложения. У фреймворков много достоинств, но есть и недостатки. В частности, недостатком является процесс обнаружения ошибок из-за особенностей конфигурации.
Сегодня существуют самые разные фреймворки. Для таких языков программирования, как Java, PHP, Ruby и некоторых других, разработаны или разрабатываются несколько фреймворков. Особенно популярны проекты для Java и PHP. Для наиболее востребованных фреймворков создаются сообщества, разрабатываются учебники и документация.
Для работы сайта и его продвижения фреймворки, возможно, будут даже эффективнее, чем системы управления сайтом. В отличие от последних, фреймворки обеспечивают сайтам быстродействие и не требуют много ресурсов. Впрочем, CMS, по существу, тоже является фреймворком, а точнее, продвинутым фреймворком, в том время как, например, Zend или Yii считаются чистыми фреймворками. В конечном счете, что использовать для разработки сайта – чистый или продвинутый фреймворк – решать разработчику и заказчику. Цель и конкретные задачи определяют метод решения.