Table 12: Native v Managed Code
Native
Managed
Compilation
Is compiled in machine code and platform dependent.
Is compiled in Intermediate Language (MSIL) and is platform independent.
Portability
Not portable
Portable Same .exe will run on x86 and ARM systems.
OS Access
Direct access to OS services using the Operating System APIs and can access all the OS functions
Access the OS service through a class library. May require a native-code layer to access features not supported by .NETCF
Performance
Faster
Slower
Real-time
Hard Real-time: Can provide real-time response times
Cannot provide real-time response times
Threading
Application can control threading priorities
No such control in Managed Code.
Memory
Can have memory leaks Smaller .exe
Garbage collection Larger .exe Extra RAM requirements
JIT (Just In Time compilation)
Code is ready to run once loaded, fully optimized.
Code is compiled into machine code from MSIL as each method is first called by application.
RAD (Rapid Application Development)
Minimal
With Visual UI development is RAD.
Graphical User Interface
Win32: Hard
MFC: Rich but complex
XAML: Visual development but still C++ code behind
.NET Forms Visual development.
No XAML Managed Code.
Libraries
C, C++ (including STL), COM, MFC and ATL libraries available.
.NET CT 3.9 which is a subset of desktop .NET libraries( A rich set of high level libraries.
Development
Can be developed as part of OS or using App Builder and SDK.
Requires App Builder and SDK
NEXT: XAML for Windows Embedded
Click here to provide feedback and input