В чем разница между каркасом и SDK? Возьмем, к примеру, SDK платформы MS и платформу .NET. Оба имеют API, оба скрывают свою внутреннюю работу, и обе обеспечивают функциональность, которая может быть быстро или легко доступна в противном случае (другими словами, они служат реальной цели).
И какая разница? Является ли это прежде всего маркетинговой игрой семантики или существуют ли реальные различия в том, как разработчики должны взаимодействовать с программным обеспечением (и, наоборот, как разработчики могут ожидать, что программное обеспечение будет себя вести)? Ожидается ли, что уровень выше или ниже уровня другого, и т.д.?
Спасибо!
EDIT: этот вопрос относится к SDK и фреймворкам в целом, а не только к упомянутым выше.