Важной частью библиотеки стали классы, задающие примитивные типы - те типы, которые считаются встроенными в язык программирования. Типы языка программирования проецируются на соответствующие типы каркаса. Тип, называемый в языке Visual Basic - Integer, а в языке C# - int, проецируется на один и тот же тип каркаса Int32. В каждом языке программирования, наряду с "родными" для языка названиями типов, разрешается пользоваться именами типов, принятыми в каркасе.
Частью библиотеки стали не только простые встроенные типы, но и структурные типы, задающие организацию данных - строки, массивы, перечисления, структуры (записи).
Существенно расширился набор возможных архитектурных типов построения приложений. Помимо традиционных Windows- и консольных приложений, появилась возможность построения Web-приложений.
Число классов библиотеки FCL велико (несколько тысяч). Поэтому понадобился способ их структуризации. Логически классы с близкой функциональностью объединяются в группы, называемые пространством имен (Namespace).
Для динамического компонента CLR физической единицей, объединяющей классы и другие ресурсы, является сборка.
Основным пространством имен библиотеки FCL является пространство System, содержащее как классы, так и другие вложенные пространства имен. Так примитивный тип Int32 непосредственно вложен в пространство имен System и его полное имя, включающее имя пространства - System.Int32.
В пространство System вложен целый ряд других пространств имен.
Например, пространство System.Windows.Forms содержит классы, используемые при создании Windows-приложений. Класс Form из этого пространства задает форму - окно, заполняемое элементами управления, графикой, обеспечивающее интерактивное взаимодействие с пользователем.
Важным шагом в развитии каркаса Framework .Net стало введение динамического компонента каркаса – исполнительной среды CLR. С появлением CLR процесс выполнения приложений стал принципиально другим.
Компиляторы языков программирования, включенные в Visual Studio создают код на промежуточном ассемблерном языке IL.
В результате компиляции проекта, содержащего несколько файлов, создается так называемый управляемый модуль – переносимый исполняемый файл (PE-файл). Этот файл содержит код на IL и метаданные –всю информацию, необходимую для CLR, чтобы под ее управлением PE-файл мог быть исполнен.
В зависимости от выбранного типа проекта, PE-файл может иметь разные расширения– exe, dll, mod или mdl.
PE-файл, имеющий расширение exe, хотя и является exe-файлом, но это не обычный исполняемый файл. При его запуске он распознается как PE-файл и передается CLR для обработки. Исполнительная среда начинает
работать с кодом, в котором специфика исходного языка программирования исчезла.
Код на IL начинает выполняться под управлением CLR (по этой причине код называется управляемым).