Фреймворк (в перекладі з англ. Framework- каркас) - це набір бібліотек для автоматизації рутинних дій, внесення в процес розробки більшої передбачуваності і комфорту, спрощення зв'язку між різними частинами програми.
Складність і обсяг фреймворка визначаються вирішуваних завдань. Наприклад, низькорівневий фреймворк на С, який інкапсулює роботу з сокетами, файлами і потоками, може складатися з 3-4 файлів по 5-10 Кб. Веб-фреймворк на PHP, який вирішує різні завдання - від доступу до бази даних до автоматичної генерації AJAX інтерфейсів, може складатися з двох тисяч файлів загальним розміром до 20-30 Мб.
Від фреймворка залежить програмний інтерфейс (API), а також архітектура побудованого з його допомогою майбутнього програми. Тому розробник повинен не тільки знати бібліотеки, а й розуміти основні патерни проектування.
Багато з рішень, крім самих бібліотек, включають додаткові утиліти для створення каркаса вихідного коду, виконання комплексного і функціонального тестування, міграцій даних.
Приклади фреймворків
Найбільш відомі фреймворки, які генерують каркас додатка і визначають його логіку:
- Zend framework для PHP,
- Ruby on Rails для Ruby,
- Django для Python,
- ASP.Net для мов .Net,
- Spring для Java і ін.
Ці фреймворки популярні завдяки тому, що мають практично все необхідне для роботи, а значить, використання додаткових бібліотек для реалізації окремих компонентів програми не потрібно. Наприклад, розробнику, використовуючи RoR, безпосередньо працювати з SQL не доведеться.
Для декстопних програм існують фреймворки, побудовані на тій же основі або реалізують аналогічний функціонал, наприклад, .Net від Microsoft.