Difference between Managed and Unmanaged code in .NET

Managed code is the code which is managed by the CLR(Common Language Runtime) in .NET Framework. Whereas the Unmanaged code is the code which is directly executed by the operating system.


Managed Code

Unmanaged Code

It is executed by managed runtime environment or managed by the CLR.It is executed directly by the operating system.
It provides security to the application written in .NET Framework.It does not provide any security to the application.
Memory buffer overflow does not occur.Memory buffer overflow may occur.
It provide runtime services like Garbage Collection, exception handling, etc.It does not provide runtime services like Garbage Collection, exception handling, etc.
The source code is compiled in the intermediate language known as IL or MSIL or CIL.The source code directly compiles into native languages.
It does not provide low-level access to the programmer.It provide low-level access to the programmer.