En fait, ces termes peuvent signifier beaucoup de choses différentes selon le contexte dans lequel elles sont utilisées.
Par exemple, sur Mac OS X cadres sont seulement des bibliothèques, emballé dans un paquet. Dans le bundle, vous trouverez une dynamique réelle de la bibliothèque (libWhatever.dylib). La différence entre un nu-bibliothèque et le cadre sur Mac est qu'un cadre peut contenir plusieurs versions différentes de la bibliothèque. Il peut contenir des ressources supplémentaires (images, des chaînes localisées, des fichiers de données XML, les objets de l'INTERFACE utilisateur, etc.) et à moins que le cadre est sorti pour le public, il contient généralement le nécessaire .h fichiers dont vous avez besoin pour utiliser la bibliothèque.
Ainsi, vous avez tout dans un seul package, vous devez utiliser la bibliothèque dans votre application (C/C++/Objective-C bibliothèque sans .h des fichiers est assez inutile, à moins que vous écrivez vous-même selon certains documentation de la bibliothèque), au lieu d'un tas de fichiers à déplacer (un Mac bundle est juste un répertoire sur Unix, mais l'INTERFACE utilisateur traite comme un seul fichier, un peu comme vous avez fichiers JAR de Java et lorsque vous cliquez dessus, vous n'avez généralement pas de voir à l'intérieur, sauf si vous explicitement sélectionnez pour afficher le contenu).
Wikipédia appels cadre d'un "buzzword". Il définit un cadre logiciel comme
Un cadre logiciel est une ré-utilisable
conception d'un système logiciel (ou
sous-système). Un cadre logiciel peut
inclure des programmes de soutien, code
bibliothèques, un langage de script, ou
un autre logiciel pour les aider à élaborer et à
colle ensemble les différents composants
d'un projet de logiciel. Les différentes parties
le cadre peut être exposé
au travers d'une API..
Donc, je dirais une bibliothèque est juste que, "une bibliothèque". C'est une collection d'objets/fonctions/méthodes (en fonction de votre langue et de votre application "liens" contre elle, et peut donc utiliser les objets/fonctions/méthodes. Il est en fait un fichier contenant du code réutilisable qui peut habituellement être partagé entre plusieurs applications (vous n'avez pas à écrire le même code).
Un cadre peut être ce que vous utilisez dans le développement de l'application. Il peut être une bibliothèque, une collection de beaucoup de bibliothèques, une collection de scripts, ou un morceau de logiciel que vous avez besoin pour créer votre application. Le cadre est juste un terme très vague.
Voici un article sur un gars qui concerne le thème de la "Bibliothèque de contre-Cadre". Personnellement, je pense que cet article est très contestable. C'est pas faux ce qu'il dit là, cependant, il est juste choisir l'une des multiples définitions de cadre et la compare à la définition classique de la bibliothèque. E. g. il dit que vous avez besoin d'un cadre pour les sous-classement. Vraiment? Je peux avoir un objet défini dans une bibliothèque, je peux relier contre elle, et la sous-classe dans mon code. Je ne vois pas en quoi j'ai besoin d'un "cadre" pour que. D'une certaine façon il explique comment le terme est utilisé de nos jours. C'est juste un mot hype, comme je l'ai dit avant. Certaines entreprises de presse juste un fonctionnement normal de la bibliothèque (dans tous les sens, d'une bibliothèque classique) et de l'appeler un "cadre" parce que ça sonne plus de fantaisie.