Framework Vs. API

Agora, esta pode ser uma pergunta tola, mas às vezes os Termos Framework e API são usados indistintamente. Do meu ponto de vista é que um Framework é uma coisa mais genérica maior, contendo muitas API's, que poderia ser usado para várias tarefas de programação (por exemplo, o Framework.net.) Uma API é menor e mais especializada (por exemplo, a API do Facebook.) Alguém quer compartilhar suas idéias sobre o assunto?

e tomemos por exemplo que a Microsoft chama a. NET um Framework enquanto a Sun chama-lhes plataforma ... então poderia ser também uma decisão de negócio / marketing sobre como chamar uma " coleção de bibliotecas."?

Author: jasonco, 2009-04-07

13 answers

Os padrões de Projecto fornecem as seguintes definições:

  • toolkits: "muitas vezes uma aplicação irá incorporar classes de uma ou mais bibliotecas de classes predefinidas chamadas toolkits. Toolkit é um conjunto de classes relacionadas e reutilizáveis projetado para fornecer funcionalidade útil, de propósito geral".
  • Frameworks: "um framework é um conjunto de classes cooperantes que constituem um design reutilizável para uma classe específica de software".
A chave aqui é que ... embora toolkits (APIs) possam ser úteis em muitos domínios, frameworks são voltados para resolver problemas para classes específicas de problemas, que podem ser personalizadas "criando subclasses específicas de aplicação de classes abstratas do framework".

Além disso, e talvez mais importante, "o quadro dita a arquitectura da sua aplicação": a inversão do controlo é uma das características dos quadros (ver Martin Fowler sobre isto); em vez de ter a sua aplicação chame APIs específicos para implementar um comportamento específico, é a estrutura que chama o seu código.

 33
Author: Stefano Ricciardi, 2016-01-26 13:29:18

Eu sempre pensei que o framework era a coisa toda, código interno, API's, etc.

Enquanto a API é apenas o bit que você usa quando quer fazer uso do framework.

Em outras palavras, o framework. net consiste nas bibliotecas. Net, Todas as línguas e assim por diante. A API é a forma como você chama as funções.

 19
Author: paxdiablo, 2009-04-07 06:45:50
Um enquadramento introduz a noção de inversão do comando
(isto é, o fluxo de controle do programa global não é ditado pelo chamador, mas pelo framework)

Quando se refere aos frameworks da linguagem (como o Java Framework ou o. NET Framework), você na verdade inclui mais do que apenas bibliotecas e suas APIs (o que seria mais limitado a Framework de Software se essas bibliotecas fornecerem uma inversão de controle).

Uma estrutura linguística inclui os ambientes de desenvolvimento e execução que irão chamar ao seu código (para compilá-lo ou executá-lo).
É por isso que o Framework.Net é um "Framework".


Java pode referir-se aos seus Frameworks (JDK, JRE) como um "plataforma Java" a fim de enfatizar o seu recurso" plataforma independente " linguagem de programação.

De sobre a tecnologia Java

Uma plataforma é o hardware ou ambiente de software no qual um programa é executado. (incluindo Microsoft Windows, Linux, Solaris OS e Mac OS).
a maioria das plataformas pode ser descrita como uma combinação do sistema operacional e hardware subjacente.
A plataforma Java difere da maioria das outras plataformas na medida em que é uma plataforma somente de software que funciona em cima de outras plataformas baseadas em hardware.

A Plataforma Java tem dois componentes:

  • A Máquina Virtual Java
  • A Java Interface de programação de aplicações (API)

Java Platform

 15
Author: VonC, 2012-11-02 17:03:56

Como o seu nome sugere (interface de programação de aplicações) a API é apenas a interface do framework.

 9
Author: mouviciel, 2009-04-07 06:52:05
Pelo que sei, uma API é basicamente uma forma de interagir com um aplicativo existente (como o Facebook), enquanto que um framework é basicamente uma ferramenta para construir seu próprio aplicativo a partir do zero.
 6
Author: mpen, 2009-04-07 06:46:05

A Library é um pedaço de código que você pode chamar a partir de seu próprio código, para ajudá-lo a fazer as coisas mais rapidamente/facilmente. Por exemplo, uma biblioteca de processamento de Bitmap irá fornecer facilidades para carregar e manipular imagens de bitmap, poupando-o a ter de escrever todo esse código para si mesmo.

Uma API (interface de programação de aplicações) é um termo que significa as funções / métodos numa biblioteca a que pode chamar para lhe pedir para fazer coisas por si - a interface para o biblioteca.

A framework é uma grande biblioteca que fornece muitos serviços (em vez de talvez apenas uma capacidade focada como a maioria das bibliotecas). Por exemplo, o.Net fornece um framework de Aplicação - Ele fornece a maioria (se não todos) dos serviços que você precisa para escrever uma vasta gama de aplicações - então uma "biblioteca" fornece suporte para praticamente tudo o que você precisa fazer. Muitas vezes, um framework fornece uma base sobre a qual você constrói seu próprio código, em vez de construir uma aplicação que consome código da biblioteca.

 5
Author: mumair, 2015-09-02 05:27:33
  • Software Framework: é um projeto reutilizável para um sistema de software (ou subsistema). Um framework de software pode incluir programas, bibliotecas de Código, uma linguagem de script, outros softwares para ajudar a desenvolver e colar os diferentes componentes de um projeto de software. Várias partes do framework talvez expostas através de uma API.

  • API (interface de programação de aplicações): é um conjunto de rotinas( AKA methods, functions), estruturas de dados, objecto classes e/ou protocolos fornecidos por bibliotecas e / ou serviços de sistemas operacionais para apoiar a construção de aplicações.
    mais detalhes junto com outros O Link para este tópico em particular é http://aprogrammersday.blogspot.com/2009/02/difference-between-framework-and-api.html
 4
Author: Naeem Akram, 2010-09-21 11:51:31

API (interface de programação de aplicações): tal como o seu nome significa, é uma interface para os programas externe interagirem com o seu programa inter ou biblioteca sem ter acesso directo. por exemplo, a API do google map e a API do Facebook lhe dão a interface para interagir com seu programa e biblioteca sem ter acesso direto.

Por outro lado:

Framework : é uma coleção de bibliotecas que podem ajudá-lo a construir uma aplicação. você pode imaginar o framework como um " esqueleto "onde a aplicação define a" carne", então você não pode levar um esqueleto humano para construir um corpo de Mors, então você tem que escolher o bom framework antes de começar a programar. foi por isso que dissemos: O Framework chama-te.

 3
Author: hisi, 2018-06-22 12:27:06
Eu gostaria de pensar que uma API é um subconjunto de um framework {[[2]}
 2
Author: Rad, 2009-04-07 06:46:47

Na minha experiência, um quadro muitas vezes inclui duas coisas (pelo menos) que uma API simples não faz:

  • Extensibilidade: você pode compor ou subclass componentes de framework para estender ou personalizar sua funcionalidade.

  • Ferramentas para geração de código, administração ou tarefas de diagnóstico relacionadas com o desenvolvimento de aplicações.

 2
Author: Bill Karwin, 2009-04-07 07:01:30

Um framework é basicamente uma coleção de classes que abstraem o processo de desenvolvimento e promovem a reutilização de código, por exemplo, você pode ter classes de banco de dados, sessão e paginação que são independentes da aplicação que você está construindo. Mas uma API é uma interface de código fonte que permite que dois ou mais componentes de diferentes sistemas interajam, por exemplo, adicionando a API do Google Maps ao seu site, você e o Google são dois sistemas diferentes, o Google codificou a interface subjacente para incorporando seus produtos ao seu site/Aplicação. Em suma, basta ir com um trabalho de framework ao construir o seu sistema, em seguida, desenvolver uma API quando você oferece extensões para outras pessoas como Facebook e Google.

 2
Author: Kenneth, 2011-11-30 11:03:30
Eu sei que este é um fio antigo e que não importa, mas não posso deixar de concordar com as minhas próprias opiniões. Uma API (por exemplo, API do controlador de dispositivos, API do Windows, etc.) fornece as funções básicas e essenciais para uma plataforma tal que um programador pode exercer a sua criatividade e fazer algo com a plataforma - sim, incluindo usá-la para construir um framework. Um framework é um nível mais elevado em função e abstração, e fornece um conjunto de reutilizáveis e convenientes funções/classes / convenções para facilitar o desenvolvimento de aplicações que partilham determinados atributos comuns (por exemplo, aplicações iPad, serviços web, etc.).)
 1
Author: Hampden123, 2012-11-02 14:57:55

Um framework implementa uma opção muito importante chamada IoC (inversão do controlo) o que significa, em poucas palavras, que o seu código tem, não mais, coisas à mão.

Enquanto em uma API seu código chama outros códigos (bibliotecas ), quando você usa um framework específico, é o framework que está no controle dos fluxos da aplicação.

 0
Author: TheEnglishMe, 2013-08-09 12:56:23