Frameworks vs. SDK

¿Cuál es la diferencia entre un marco y un SDK? Tomemos, por ejemplo, el SDK de la plataforma MS y el marco .NET. Ambos tienen API, ambos ocultan su funcionamiento interno y ambos proporcionan una funcionalidad que de otra manera no sería accesible de manera rápida / fácil (en otras palabras, sirven para un propósito del mundo real).

Entonces, ¿cuál es la diferencia? ¿Es principalmente un juego de semántica de marketing, o existen diferencias reales en cómo se espera que los desarrolladores interactúen con el software (y, por el contrario, cómo los desarrolladores pueden esperar que el software se comporte)? ¿Se espera que uno sea de mayor o menor nivel que el otro, etc.?

¡Gracias!

EDITAR: Esta pregunta se aplica a los SDK y los marcos en general, no solo a los dos mencionados anteriormente.

Respuestas a la pregunta(8)

Su respuesta a la pregunta