Pergunta

O que é a diferença entre um quadro e um SDK? Tomemos, por exemplo, o MS plataforma SDK eo .NET framework. Ambos têm API de, tanto esconder o seu funcionamento interno, e ambos fornecem funcionalidade que não pode ser rapidamente / facilmente acessível de outra forma (em outras palavras, eles servem a um propósito no mundo real).

Então, qual é a diferença? É essencialmente um jogo de semântica marketing, ou existem diferenças reais em como os desenvolvedores são esperados para interagir com o software (e, inversamente, como os desenvolvedores podem esperar que o software se comportar)? É esperado para ser mais alta ou mais baixa do nível do que o outro, etc?

Obrigado!

EDIT: Esta pergunta se aplica a SDKs e frameworks em geral, e não apenas os dois acima mencionados

.
Foi útil?

Solução

Um SDK é esperado para oferecer ferramentas para programa contra um determinado recurso do sistema ou recurso. Um quadro não necessariamente (embora .NET oferece um conjunto de ferramentas, como os compiladores, etc - mas estes são obrigatórios para que ele funcione de qualquer maneira).

Assim, você pode desenvolver um quadro constituído exclusivamente por bibliotecas, mas se você chamá-lo SDK você vai ser esperado para oferecer algo para apoiar o desenvolvimento.

Outras dicas

Eu só vou copiar de Wikipedia:

Biblioteca:

Uma biblioteca é uma coleção de sub-rotinas ou classes usado para desenvolver software. Bibliotecas contêm código e dados que fornecem serviços para programas independentes. Isso permite que o código e dados sejam compartilhados e mudou de forma modular.

quadro:

A estrutura de software, em programação de computadores, é uma abstração em que código comum fornecendo funcionalidade genérica pode ser seletivamente substituído ou especializada pelo código do usuário fornecendo funcionalidade específica. Frameworks são semelhantes às bibliotecas de software na medida em que são abstrações reutilizáveis ??de código envolto em uma API bem definida. Ao contrário de bibliotecas, no entanto, o fluxo do programa global de controlo não é ditada pelo chamador, mas pela estrutura. Esta inversão de controle é a característica distintiva de estruturas de software.

SDK:

Um kit de desenvolvimento de software (SDK ou "devkit") é tipicamente um conjunto de ferramentas de desenvolvimento que permite que um engenheiro de software para criar aplicações para um determinado pacote de software, estrutura de software, plataforma de hardware, sistema de computador, console de vídeo game sistema, operando , ou plataforma semelhante. Pode ser algo tão simples como uma interface de programação de aplicações na forma de alguns arquivos a interface para uma linguagem de programação particular ou incluem hardware sofisticado para se comunicar com um determinado sistema embutido. ferramentas comuns incluem depuração aids e outras utilidades, muitas vezes apresentados em um IDE. SDKs também frequentemente incluem código de exemplo e apoiando notas técnicas ou outra documentação de apoio para ajudar a esclarecer pontos do material de referência primário.

Assim:

  • Biblioteca é o código que suas chamadas de aplicação.
  • Framework é uma aplicação ou biblioteca que é quase prontas. Você acabou de preencher alguns espaços em branco com o seu próprio código que as chamadas quadro.
  • SDK é um conceito maior, uma vez que pode incluir bibliotecas, frameworks, documentação, ferramentas, etc.
  • .NET é realmente mais como uma plataforma, não uma estrutura de software.

Em poucas palavras, a diferença é:

  • Você chama as funções do SDK.
  • A estrutura chama suas funções.

Um SDK é como uma caixa de ferramentas com muitas ferramentas e você escolher qual deles você usa e como. Você tem o controle, mas também um monte de decisões a tomar. Isso é bastante baixo nível.

Um quadro faz um monte de decisões para você, então você não tem que reinventar a roda; É mais uma "preencher as lacunas" abordagem. Menos liberdade, mas você economizar muito tempo e provavelmente evitar alguns erros.

No caso particular do framework .NET também se refere aos arquivos de tempo de execução necessários para executar aplicações de usá-lo, mas não é a maneira como a palavra é usada em um contexto de programação ...

É uma área cinzenta, mas Frameworks tendem a ser as bibliotecas que você código contra, do SDK muitas vezes têm ferramentas extras para ajudá-lo a obter mais fora do quadro. Um bom exemplo é o .NET Framework SDK que instalar separadamente, o SDK possui ferramentas extras, como ildasm, cordb que não são realmente partes do quadro.

Eu era a liderança no Zend Framework através de sua versão 1.0. Muitas vezes tenho comentários que não era um "quadro" no sentido de que os desenvolvedores esperado - eles disseram que era mais de uma biblioteca de classes.

Eles esperavam um quadro é mais como um conjunto de classes que deve ser usados ??juntos para que eles funcionem. A estrutura também pode incluir um conjunto de convenções de codificação, guiando-o para organizar seu código de uma certa maneira. Também um quadro pode impor convenções de nomenclatura para suas classes e entidades de banco de dados. E, finalmente, ferramentas de geração de código.

Zend Framework foi projetado para ser de baixo acoplamento, de modo que você pode usar qualquer um dos autônomo aulas se você quisesse. Impôs poucas convenções em seu código ou seu banco de dados. E nós tinha a intenção de desenvolver geradores de código, mas não tinha implementado ainda.

Mas eu ainda sentia que Zend Framework qualificado como um quadro, em vez de um SDK, de uma outra maneira: um quadro é extensível . Ele foi projetado como um conjunto de classes de base orientada a objeto, e o uso pretendido é que os desenvolvedores quer extend essas classes, ou de escrita simples plug-in aulas, para adicionar funcionalidade.

A SDK tradicional é não extensível . Você simplesmente chamar métodos de API nas classes fornecidas, eles fazem o que fazem, e você lidar com o resultado. Qualquer personalização está em seu uso da API e como você fazer uso dos resultados.

Microsoft SDK pode ser usado por um desenvolvedor para criar seus programas. usuários finais normalmente não precisa dele.

Microsoft Framework vez é obrigatório se você deseja executar aplicações .NET em uma máquina.

A biblioteca de classes fornece classes que normalmente compartilham a mesma área de aplicação áspero (matemática, rendering), mas são destinados a ser utilizados na maior parte independentes um do outro.

A estrutura fornece classes que juntos formam uma base para uma aplicação que só estender e carne para fora.

Um SDK contém tudo que você precisa para usar a tecnologia do SDK está prevista. É muitas vezes contendo Dokumentation, amostras e ferramentas ao lado do núcleo conteúdo real que pode ser um quadro ou uma biblioteca de classe ou até mesmo algo completamente diferente.

Em uma comparação, você poderia dizer:
Biblioteca -> Framework -> SDK
Quadro consiste em várias bibliotecas, além de algumas ferramentas (compiladores, etc.), e não tem como alvo uma plataforma específica. Para uma plataforma, pode haver diversos frameworks desenvolvidos cada um com uma finalidade diferente. ofertas SDK você frameworks e tudo mais que você precisa para desenvolver software para uma plataforma específica.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top