Лично я думаю, что слово "рамки" немного неправильное.
.NET - это «платформа», состоящая из среды выполнения (виртуальная машина CLR) и набора библиотек. Он полностью аналогичен Java или Perl или Python (ни один из которых никогда не упоминается как «фреймворки»).
В большинстве случаев слово «framework» используется для таких проектов, как Spring, Struts или QT, которые располагаются поверх платформы (т. Е. Не предоставляют своей собственной среды выполнения), например, библиотеки.
Но, в отличие от «библиотеки», фреймворк стремится переопределить основные операции базовой платформы. (Внедрение зависимостей Spring игнорирует логику вызова конструктора обычного Java-кода. Реализация сигналов и слотов QT не поддается обычному C ++-коду.)
Я знаю, что я просто педантичный ублюдок, но для меня .NET - это не фреймворк. Это платформа.