Ich kann mich nicht mehr an die Quelle dieser Antwort erinnern (ich glaube, ich habe sie in einer .ppt im Internet gefunden), aber die Antwort ist ganz einfach.
Eine Bibliothek und ein Framework sind eine Reihe von Klassen, Modulen und/oder Code (abhängig von der Programmiersprache), die in Ihren Anwendungen verwendet werden können und Ihnen helfen, ein bestimmtes "Problem" zu lösen.
Das Problem kann die Protokollierung oder das Debuggen von Informationen in einer Anwendung sein, das Zeichnen von Diagrammen, das Erstellen eines bestimmten Dateiformats (html, pdf, xls), das Herstellen einer Verbindung zu einer Datenbank, das Erstellen eines Teils einer Anwendung oder einer vollständigen Anwendung oder eines Codes, der auf eine Entwurfsmuster .
Man kann ein Framework oder eine Bibliothek haben, um all diese Probleme und viele mehr zu lösen. Normalerweise helfen die Frameworks dabei, komplexere oder größere Probleme zu lösen, aber das ist eine Folge ihres Hauptunterschieds und keine Hauptdefinition für beide.
Der Hauptunterschied zwischen einer Bibliothek und einem Framework ist die Abhängigkeit zwischen ihrem eigenen Code, oder anders ausgedrückt, um ein Framework zu verwenden, müssen Sie müssen Sie fast alle Klassen, Module oder Code in der FW verwenden, aber um eine einer Library können Sie eine oder wenige Klassen, Module oder Code in der lib in Ihrer eigenen Anwendung verwenden
Das heißt, wenn ein Framework z.B. 50 Klassen hat, müssen Sie, um das Framework in einer App zu verwenden, 10-15 oder mehr Klassen in Ihrem Code verwenden, denn so ist ein Framework aufgebaut, einige Klassen (Objekte dieser Klassen) sind Eingaben/Parameter für Methoden in anderen Klassen im Framework. Siehe das .NET-Framework, Spring oder ein beliebiges MVC-Framework.
Aber zum Beispiel eine Log-Bibliothek, können Sie nur eine Log-Klasse in Ihrem Code verwenden, und hilft Ihnen, die "Logging-Problem" zu lösen, das bedeutet nicht, dass die Log-Bibliothek nicht mehr Klassen in seinem Code, wie Klassen, um Dateien zu behandeln, behandeln Bildschirmausgaben, oder sogar Datenbanken, aber Sie nie berühren / verwenden, dass Klassen in Ihrem Code, und das ist der Grund, warum ist eine Bibliothek und nicht ein Rahmen.
Außerdem gibt es noch mehr Kategorien als Frameworks und Bibliotheken, aber das ist ein anderes Thema.