Frameworks vs. SDKs

Qual é a diferença entre uma estrutura e um SDK? Tomemos, por exemplo, o SDK da plataforma MS e a estrutura .NET. Ambos possuem APIs, ambos ocultam seu funcionamento interno e fornecem funcionalidade que pode não ser rápida / facilmente acessível de outra forma (em outras palavras, eles servem a um propósito do mundo real).

Então qual a diferença? É principalmente um jogo de semântica de marketing, ou existem diferenças reais na maneira como se espera que os desenvolvedores interajam com o software (e, inversamente, como os desenvolvedores podem esperar que o software se comporte)? Espera-se que um seja mais alto ou mais baixo que o outro, etc?

Obrigado!

EDIT: Esta pergunta se aplica aos SDKs e estruturas em geral, não apenas aos dois mencionados acima.

questionAnswers(8)

yourAnswerToTheQuestion