Если вы сами определяете общую структуру программы, но для некоторых операций используете предварительно собранные строительные блоки и примитивы, вы используете библиотеку .
A framework , с другой стороны, определяет общую структуру программы, позволяя вам добавлять и расширять функциональность в предопределенных точках расширения.