Traditional
Development
|
.NET
Application Development
|
Your
program will be compiled into an assembly language code that is very
specific to the platform in which you are running your application. |
Using
.NET Framework, your program will be compiled into an intermediate
language representation called MSIL (Microsoft Intermediate Language). |
Assembly
language code will contain API calls specific to the current application
platform. |
MSIL
code will not contain any API calls specific to any platform. |
This
assembly language code is then converted into machine code. |
This
MSIL code is then converted into machine code at runtime using CLR
(Common Language Runtime). |
Optimization
is done by the compiler itself at compile time. |
Optimization
is done at runtime by CLR. |
The
compiler is not static. It performs both compilation as well as optimization. |
The
compiler used in this process is static meaning that it checks only
for syntax and the necessary semantics. |
Libraries
used by your program are linked only after generating the machine
code. |
Libraries
used by your program are linked even before generating MSIL, but it
is linked in an un-compiled form. This will be compiled by the compiler
and it will be used by the CLR while executing the program. |
Now
the program is ready for execution by the operating system. The program
will directly call APIs of the operating system. |
The
program will not directly call APIs of the operating system. Instead
CLR will act as a mediator. CLR will call API's of operating system
and the result of execution will be returned to program. |
No
automatic memory management or garbage collection. |
Automatic
memory management and garbage collection is done by CLR. |
No
object oriented principles are incorporated. |
.NET
Framework Class Library provides object oriented libraries. |