Difference between Managed and Unmanaged code in .NET
Contents
Difference between Managed and Unmanaged code in Tabular Form
- The Key Difference between Managed and Unmanaged code is that Managed Code is byte code executed by a virtual machine like the .NET CLR engine. While Unmanaged code is like the C++ code output as natural OS Hardware dependent binary code executed by the Hardware machine directly.
- In other words,
- Code that is managed by the CLR in the .net framework is known as Managed Code.
- Code that is directly executed by the OS is known as Unmanaged Code.

Comparison Chart
Managed Code | Unmanaged code |
---|---|
Managed Code is executed by the CLR. | Unmanaged code is executed by the OS. |
Memory buffer overflow does not occur in Managed Code. | Memory buffer overflow may occur in Unmanaged code. |
Managed Code provides runtime services like garbage collection, exception handling, etc. | Unmanaged code does not provide runtime services like a garbage collector, exception handling, etc. |
The source code is compiled into MSIL | The source code is compiled into native code |