Разница между библиотекой и фреймворком
Библиотека является просто набором определенных классов, функций, методов и т.д., которые вы вызываете сами. Всё, что вам нужно сделать, - это подключить библиотеку и повторно использовать код который уже был написан другими разработчиками.
Фреймворк - это фундамент, на котором разработчики создают программы для конкретных платформ. В этот фундамент вы можете вставлять либо уже заранее готовый код, либо писать свой.
Из всего выше сказанного, ключевое отличие – это инверсия управления. Когда вы вызываете метод из библиотеки, то вы контролируете ситуацию. Но с фреймворком управление перевернуто: фреймворк вызывает ваш код.