Управля́емый код (англ. managed code) — термин, введённый фирмой Microsoft, для обозначения кода программы, исполняемой под «управлением» виртуальной машины .NET[1][2][3] — Common Language Runtime или Mono. При этом машинный код называется неуправля́емым кодом (англ. unmanaged code).
Слово «управляемый» (англ. managed) здесь относится к методу обмена информацией между программой и исполняющей средой. Оно означает, что в любой точке исполнения управляющая среда может приостановить исполнение и получить информацию, специфичную для текущего состояния. Необходимая для этого информация представлена в управляемом коде на языке Intermediate Language и в связанных с этим кодом метаданных.
С формальной точки зрения управляемым кодом является любой программный код, исполняемый в среде отладчика.
Управляемый код может быть написан на одном из языков программирования, которые поддерживаются .NET или MONO.
Основные языки, поддерживаемые .NET[4][5]: C#, C++/CLI, Microsoft Visual Basic, JavaScript, а также F# и многие другие.
Проект Mono поддерживает[6] C#, F#, Java, Scala, Boo, Nemerle, Visual Basic.NET, Python, JavaScript, Оберон, PHP, Object Pascal, Lua, Cobra, Synergy-DBL, а также #Smalltalk, DotLisp и другие.
Среда разработки Microsoft C++ позволяет создавать и управляемый код, и скомпилированный, который запускается на платформах Windows с помощью библиотек среды выполнения C++.
Преимущества использования управляемого кода — удобство программиста (более высокий уровень абстракции), гарантии безопасности, платформная независимость. К недостаткам можно отнести долгое время загрузки и увеличение использования системных ресурсов.