Last Updated : 11 Jul, 2025
In .NET, the terms "Managed Code" and "Unmanaged Code" refer to how the code is executed and managed by the system. Managed code runs under the control of the CLR(Common Language Runtime), while unmanaged code runs directly on the operating system. Each type of code has its own advantages and is used for different purposes. This article explains both types of code, their differences, and their advantages and disadvantages.
Managed CodeManaged code is code that runs within the Common Language Runtime (CLR) in the .NET environment. When we write code in languages like C#, VB.NET, or F#, it is compiled into Intermediate Language (IL). This IL code is executed by the CLR, which provides services such as garbage collection, exception handling, and memory management.
The CLR ensures that the code is executed safely and efficiently by managing tasks like memory allocation and error checking automatically and enables the developer from having to handle these low-level details. The code is then compiled into native machine code by the Just In Time Compiler compiler at runtime, making it platform-independent.
Flow Diagram:
The managed code also provides platform independence because when the managed code compiled into the intermediate language, then the JIT compiler compiles this intermediate language in the architecture specific instruction.
AdvantagesUnmanaged code is code that runs directly on the operating system without the intervention of the CLR. Languages like C, C++, and older versions of VB produce unmanaged code. The code is compiled directly into native machine code and specific to the hardware architecture.
Unmanaged code gives developers more control over system resources, such as memory and hardware. But this also means that the programmer is responsible for handling tasks like memory management and error handling, which can lead to issues like memory leaks and buffer overflows if not handled properly.
Flow Diagram:
AdvantagesTo know the difference more, refer to this article: Difference Between Managed and Unmanaged Code in .NET
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4