Введение

Управляемый код — это компьютерный программный код, который требует и выполняется исключительно под управлением среды выполнения Common Language Infrastructure (CLI); Виртуальной системы исполнения (VES); виртуальной машины, такой как .NET, CoreFX или .NET Framework; среды выполнения Common Language Runtime (CLR); или Mono. Термин был введен компанией Microsoft. Управляемый код является результатом компиляции исходного кода, написанного на одном из более чем двадцати языков программирования высокого уровня, включая C#, J# и Visual Basic .NET.

Терминология

Настоящее и важное различие между управляемым и неуправляемым кодом проявляется и имеет значение только при разработке приложений, взаимодействующих с реализациями CLR. Поскольку многие старые языки программирования были портированы на CLR, необходимо различать управляемый код, особенно в смешанной среде. В этом контексте код, не использующий CLR, называется "неуправляемым". Источником путаницы стало решение Microsoft связать .NET Framework с C++ и выбор названия для управляемых расширений C++. Изначально они назывались Managed C++, а затем были переименованы в C++/CLI. Создатель языка программирования C++ и член комитета по стандартизации C++, Бьярне Страуструп, даже высказался по этому поводу: "В отношении сложного и спорного вопроса о том, как следует называть привязки/расширения CLI для C++, я предпочитаю C++/CLI как сокращение от 'Расширения CLI для ISO C++'. Сохранение C++ в названии напоминает о базовом языке и поможет обеспечить, чтобы C++/CLI расширения оставались корректным подмножеством C++".