Quelle est la différence entre une bibliothèque et d'un cadre

, j'entends toute la journée les termes de la bibliothèque de classe, bibliothèque de classes de base, un Cadre de référence ...

Qu'est-ce qui met en évidence un cadre et quelle bibliothèque de classe de base?

17
demandé sur Bill the Lizard 2009-04-07 11:11:39

13 réponses

la caractéristique distinctive entre une bibliothèque de classe et un framework logiciel est que dans un framework, le flux de contrôle n'est pas déterminé par le code d'utilisateur, mais par le framework.

C'est aussi connu sous le nom de principe D'Hollywood (ne nous appelez pas, nous vous appelons).

soit dit en passant, il y a aussi un bel article Wikipédia sur ce sujet.

22
répondu Jochen Walter 2009-04-07 07:24:34

vous utilisez une bibliothèque de classe pour écrire votre code, mais vous codez dans un framework.

Le terme de "cadre" est destinée à invoquer le sentiment "d'être dans un environnement". Si je mettais une analogie (limitée) à cela, je dirais qu'une bibliothèque de classe c'est comme pouvoir manger du fromage et boire du vin, alors qu'un cadre c'est comme visiter la France; faire l'expérience de la culture. Le cadre est la structure autour de laquelle vous construisez votre programme. Classe bibliothèque sont les outils que vous utilisez (éventuellement dans un cadre).

bien sûr, un framework contiendra typiquement des bibliothèques de classes. .NET, par exemple, a des tas de bibliothèques de classe qui sont incluses dans le cadre entier.

13
répondu Smashery 2009-04-07 07:18:08

de la Bibliothèque:

il s'agit simplement d'une collection de routines (programmation fonctionnelle) ou définitions de classe (programmation orientée objet). La raison derrière est tout simplement code reuse , c'est-à-dire obtenir le code qui a déjà été écrit par d'autres développeurs. Les classes ou routines définissent normalement opérations spécifiques dans une zone spécifique de domaine . Pour par exemple, il existe certaines bibliothèques de mathématiques qui peuvent laisser le développeur appeler simplement la fonction sans refaire l'implémentation de la façon dont un algorithme fonctionne.

Cadre:

dans le cadre, tout le flux de contrôle est déjà là, et il y a un tas de taches blanches prédéfinies que nous devrions remplir avec notre code . Un cadre est normalement plus complexe. It définit un squelette où l'application définit ses propres caractéristiques de remplir le squelette. De cette façon, votre code sera appelé par le framework lorsqu'il est approprié. L'avantage est que les développeurs n'ont pas besoin de se soucier si un design est bon ou pas, mais juste de mettre en œuvre des fonctions spécifiques au domaine.

de la Bibliothèque,le Cadre et votre Code de représentation de l'image:

Library,Framework and your Code image relation

Principale différence:

la principale différence entre une bibliothèque et un cadre est " Inversion du contrôle " . Quand vous appelez une méthode d'une bibliothèque, vous êtes en contrôle. Mais avec un framework, le contrôle est inversé: le framework vous appelle . de la Source.

:

tous deux définis API, qui est utilisé pour les programmeurs à utiliser. Mettre ensemble, nous pouvons penser à une bibliothèque comme une fonction d'une application, un cadre comme le squelette de l'application, ainsi qu'une API est le connecteur à mettre ensemble. Un processus de développement typique commence normalement par un framework, et remplit des fonctions définies dans les bibliothèques à l'aide de L'API.

réponse Originale à cette question

8
répondu Durai Amuthan.H 2017-05-23 11:47:02

Un bibliothèque de classes est généralement une DLL ou un paquet de classes que vous pouvez inclure "/"référence" dans votre solution et la réutilisation.

Un cadre est généralement un motif récurrent/solution qui s'adresse à un contexte précis, par exemple une interface graphique, Cadre. Un cadre implique plus que souvent que vous écrivez certaines pièces comme dictées par les concepteurs de cadre, les fente dans les endroits attendus/corrects et il devrait fonctionner.

  • p.ex. le ressort est un cadre pour DI. Vous écrivez des fichiers xml dans un format dicté par les concepteurs et puis le cadre vous permet d'obtenir des classes assemblées sans avoir à vous soucier du cadre le fait.
  • Rails est un framework en Ruby pour RAD web-apps. Vous écrivez seulement les modèles, les contrôleurs et les vues et vous avez une web app en moins d'une heure.
  • la BCL est un ensemble de bibliothèques de classe pour que vous ne pas avoir à mettre en œuvre des structures de données et des types fréquemment utilisés dans .NET et juste obtenir les implémentations testées éprouvées GRATUITEMENT en les incluant simplement.

un framework contient habituellement plusieurs bibliothèques de classe. Comme toujours, les termes sont utilisés de manière ambiguë de nos jours.. mais ce qui précède représente l'interprétation la plus courante des termes... le mien au moins :)

6
répondu Gishu 2009-04-07 07:27:36

souvent, vous utilisez des bibliothèques pour obtenir une certaine fonctionnalité dans votre propre logiciel/infrastructure. Par exemple, si vous imprimez un code à barres, vous utiliserez une bibliothèque pour le faire. Un cadre résume une classe entière de problèmes, peut-être le problème de l'écriture des applications web. Pour ce faire, le framework fournit le "cadre" avec toutes les fonctionnalités et les talons contre lesquels vous pouvez programmer.

5
répondu Mork0075 2009-04-07 07:18:49

vous appelez le code de la bibliothèque de classe où comme le cadre appelle votre code

4
répondu Uday 2009-04-07 07:54:44

une bibliothèque de classe est simplement un ensemble de classes encapsulées dans une unité définissable telle qu'un assemblage. Le terme n'est pas limité à une langue particulière ou d'un cadre.

la bibliothèque de classe de Base (BCL) est un terme spécifique attribuant à l'ensemble des libaires de classe préinstallés avec le Framework .NET qui fournit des classes soigneusement organisées en espaces de noms de sorte que vous ayez une API contre laquelle construire vos propres solutions.

un framework est un terme plus large qui inclut les bibliothèques de classe, une machine virtuelle qui gère l'exécution contrôlée des processus, fournit un environnement d'exécution, ainsi que d'autres services tels que la gestion de la mémoire et la gestion des exceptions. Voir le .net Framework pour plus d'informations.

4
répondu Cerebrus 2010-12-13 16:18:06

je dirais que les deux sont assez interchangeables... - il s'agit simplement d'un ensemble de code commun réutilisable (quelle que soit la plate-forme que vous ciblez), généralement fourni par la plate-forme.

peut-être pourriez-vous faire valoir que la BCL représente habituellement les modules" purs "(indépendants du vendeur), où-comme le" cadre " mai (selon la façon dont vous utilisez le terme) inclure les modules sur mesure du vendeur. Mais que peut-être ouvert à l'interprétation locale.

2
répondu Marc Gravell 2009-04-07 07:19:59

Un cadre qui est supposée collection cohérente d'un ou de plusieurs bibliothèques de classe. Les cadres Java et .NET, par exemple, sont constitués de centaines de bibliothèques de classe. Dans .NET il y a, par coutume mais pas nécessairement, une correspondance entre les assemblées et les bibliothèques de classe. En Java, il y a une correspondance approximative entre les namespaces et les bibliothèques de classes.

bien que je n'ai jamais remarqué la phrase base class library", Je m'attendrais une telle chose doit contenir des classes abstraites destinées à être sous-classées avant utilisation.

Cadre dans le sens de mon premier paragraphe implique l'exhaustivité dans le domaine de la bibliothèque. Par exemple, vous vous attendez à ce qu'un cadre de manipulation d'image contienne tout ce dont vous avez besoin pour manipuler les images, allant des analyseurs de format de fichier aux opérations graphiques en mémoire.

1
répondu Peter Wone 2009-04-07 07:23:28

je pense à un cadre comme un modèle qu'une application peut se conformer, défini dans un ensemble de bibliothèques.

Une "de base" de la bibliothèque de classe peut signifier plusieurs choses, selon le contexte; il pourrait aussi se référer à des catégories qui sont conçus pour être dérivé, qui est une approche commune dans les cadres, ou elle pourrait simplement se référer à une bibliothèque de classes qui sont supposés être utile dans n'importe quelle application et sont considérés comme une "base" au besoin, presque partie de la langue (pour exemple, les catégories de contenants).

0
répondu Daniel Earwicker 2009-04-07 07:17:40

L'Inversion du contrôle est un élément clé de ce qui rend un framework différent d'une bibliothèque. Une bibliothèque est essentiellement un ensemble de fonctions que vous pouvez appeler, ces jours généralement organisés en classes. Chaque appel fait du travail et renvoie le contrôle au client.

Un cadre incarne une certaine conception abstraite, avec plus de comportement intégrée. Afin de l'utiliser, vous avez besoin d'insérer votre comportement dans divers endroits dans le cadre soit par subclassage ou en branchant votre propres classes. Le code du framework appelle alors votre code à ces points.

0
répondu Debaprasad 2014-02-25 04:19:54

une application a de nombreuses parties coexistant dans la synchronisation offrant des fonctionnalités différentes...maintenant le code doit être écrit pour chacune de ces parties pour fonctionner et donc un cadre D'Application fait ce code pour vous afin que vous n'ayez pas à passer par la nitty-gritty d'écrire chaque code lié à chaque fonctionnalité.Les cadres d'Application facilitent la rédaction des demandes.

en termes simples si vous faites un bâtiment puis son squelette la structure,la forme,les fonctions qu'elle peut supporter , la conception électrique et hydraulique,les cadres, etc sont tous ses cadres et maintenant vous devez travailler dans ce cadre pour faire de votre bâtiment de sorte que tout le souci de faire une structure à l'épreuve des tremblements de terre ou de faire un bâtiment érigé linéairement a été manipulé par votre cadre

c'est aussi simple que ça. Le cadre prend toutes les complexités de l'interfaçage avec le système d'exploitation et simplifie pour vous. Il gère tous les détails de détails pour vous. Évidemment, certains cadres de faire un meilleur travail que d'autres.

différence entre le cadre D'Application et les bibliothèques : vous utilisez une bibliothèque de classe pour écrire votre code, mais vous codez dans un cadre.

0
répondu Ashish dahiya 2016-06-05 17:11:53

il y a une bonne explication de quelques membres ici: Quelle est la différence entre un framework et une bibliothèque?

j'aime la façon dont les exemples concrets sont donnés .. c'est plus facile de s'enrouler la tête autour!

-1
répondu Plasmar 2017-05-23 11:54:53