45 votes

Framework Vs. API

Maintenant, cela peut être une question stupide, mais parfois les conditions-Cadre et de l'API sont utilisées de façon interchangeable. La façon dont je le vois, c'est qu'un Framework est un plus générique chose, contenant de nombreuses API, qui pourrait être utilisé pour diverses tâches de programmation (par exemple, l' .NET Framework.) Une API est plus petit et plus spécialisés (par exemple, le Facebook de l'API.) N'importe qui veulent partager leurs idées sur la question?

Et de prendre pour exemple que Microsoft appel .NET un Cadre alors que le Soleil appels de leur Plate-forme ... ainsi pourrait-il être également un commercial/marketing décision relative à la procédure d'appel une "collection de bibliothèques."?

36voto

Stefano Ricciardi Points 1431

Modèles de conception de fournir les définitions suivantes:

  • boîtes à outils: "bien souvent, les applications intégrera des classes à partir d'une ou plusieurs bibliothèques de classes prédéfinies appelées boîtes à outils. Un toolikt est un ensemble de et des classes réutilisables conçu pour fournir des informations utiles, d'usage général, de la fonctionnalité".
  • cadres: "un framework est un ensemble de coopérer classes qui composent une conception réutilisable pour une classe spécifique de logiciels".

La clé ici est que tandis que les boîtes à outils (Api) peut être utile dans de nombreux domaines, les cadres sont conçus pour résoudre les problèmes de spécifique classes de problèmes, qui peuvent être personnalisés "par la création d'applications spécifiques sous-classes des classes abstraites du cadre".

En outre, et peut-être plus important encore, "le cadre dicte l'architecture de votre application": l'Inversion De Contrôle est l'une des caractéristiques de cadres (voir Martin Fowler sur cette); au lieu d'avoir vos applications appeler des Api spécifiques à mettre en œuvre un comportement spécifique, c'est le cadre qui appelle votre code.

20voto

paxdiablo Points 341644

J'ai toujours pensé que le cadre était le tout, le code interne, les API, etc.

Alors que l'API n'est que le bit que vous utilisez lorsque vous souhaitez utiliser le framework.

En d'autres termes, le framework .NET se compose des bibliothèques .NET, de toutes les langues, etc. L'API est juste la façon dont vous appelez les fonctions.

16voto

VonC Points 414372

Un cadre de n'introduire la notion d' inversion de contrôle
(c'est à dire l'ensemble du programme du flux de contrôle n'est pas dictée par l'appelant, mais par le cadre)

Lorsque vous faites référence à la langue des cadres (comme Java Cadre ou .Net Framework), vous avez réellement compris plus que seulement des bibliothèques et à leurs Api (ce qui serait plus limitée à un Cadre de Logiciel si ces bibliothèques fournissent une inversion de contrôle).

Un Langage comprend l'élaboration et l'exécution de environnements qui appelle votre code (pour la compilation ou à l'exécuter).
C'est pourquoi .Net Framework est un "Cadre".


Java peut se référer à ses Cadres (JDK, JRE) comme une "Plate-forme Java", afin de souligner sa "plate-forme indépendante de" langage de programmation de fonction.

De Sur la Technologie Java

Une plate-forme est l'environnement matériel ou logiciel dans lequel un programme qui s'exécute. (y compris Microsoft Windows, Linux, Solaris OS et Mac OS).
La plupart des plates-formes peut être décrite comme une combinaison du système d'exploitation et le matériel sous-jacent.
La plate-forme Java diffère de la plupart des autres plates-formes que c'est un logiciel seule plate-forme qui fonctionne sur d'autres matériels de plates-formes.

La plate-forme Java a deux composantes:

  • La Machine Virtuelle Java
  • La Java Interface de Programmation d'Application (API)

Java Platform

9voto

mouviciel Points 36624

Comme son nom l'indique (Application Programming Interface), l'API n'est que l'interface du framework.

6voto

Mark Points 49079

D'après ma compréhension, une API est fondamentalement un moyen d'interfacer avec une application existante (comme Facebook), tandis qu'un framework est essentiellement un outil pour construire votre propre application à partir de zéro.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X