.Net Framework
- The .Net framework is a software development platform developed by Microsoft.
- The .Net framework was meant to create application, which would run on the windows platform.
- The first version of the .net framework was released in the year 2002.
C# Version History
C# | Framework | Visual studio | Features |
1.0 | 1.0/1.1 | 2002 |
|
2.0 | 2.0 | 2005 |
|
3.0 | 3.0/3.5 | 2008 |
|
4.0 | 4.0 | 2010 |
|
5.0 | 4.5 | 2012/1013 |
|
6.0 | 4.6 | 2013/2015 |
|
7.0 | .Net Core | 2017 |
|
Application Execution
The application execution consist 2 steps:
- Compilation – Source code to IL.
- JIT Compilation – IL to native code.
Common language runtime (CLR) –
- The heart of .Net frame work is a runtime environment called the CLR.
- The CLR manages the life cycle and executed .net application.
- It converts a MSIL code into the native code,
- It is the execution engine for .net framework application.
- It is a virtual machine components that manages the execution.
- Programmers write code in any languages VB.Net, C#, J# then they compile their programs into in intermediate language in a portable execution file (PE), that can be managed & then CLR converts it into native/machine code.
Component of .Net CLR
- Class Loader- used to load all classes.
- JIT
- Garbage collector – It manages the menory, collect all unused object and deallocate them to reduce memory.
- Exception Handler– It handels exception at runtime.
- Thread support – It supports multi threading at our application
- Interoperability – Suppose if you had an application built in an older version, say 2.0 and if you tried to run the same application on a machine which had the higher version of the .net framework, say 4.5, the application would still work. this is because with every release, microsoft ensure that older framework version get with the latest version.
- Portability– Application built on .net can be made to work on any windows platform.
Benefits of .Net CLR
- Performance improvments
- The ability to use components developed in other languages.
- Support for structured exceptions handling.
- SUpports for custom attributes.
- Garbage collection.
- Support for explicit free threading that allows creation of multithreading application.