All about C#.Net
The .NET Framework defines the environment to execute Visual C# .NET applications and the services you can use within those applications.
The .NET Framework has two main components:
- Common Language Runtime (CLR)
- A unified set of class libraries
The .NET class libraries include code for programming topics such as threading, file I/O, database support, XML parsing, and data structures.
In addition to CLR and class libraries, the .NET framework also includes the programming languages and ASP.NET.
CLR and MSIL
CLR ensures that the functionality available to one language is available to any other .NET language.
Microsoft Intermediate Language (MSIL) is composed of a specific set of instructions that indicate how your code should be executed.
The main job of a JIT compiler is to translate your generic MSIL code into machine code that can be directly executed by your CPU.
MSIL code can be easily read by the verification process
CLS,CTS & Garbage Collector
- Common Language Specification (CLS)
- Is a set of rules that any .NET language should follow
- Is used to create applications that are interoperable with other languages
Common Type System (CTS) commonly:
- Contains the standard data types
- Contains the set of guidelines.
- Is a destructor used for clean up operations
- Is responsible for freeing up memory
- .NET Framework is made up of two major components; .NET Framework Class Library and Common Language Runtime.
- The CLR is a modern runtime environment that manages the execution of user code, providing services such as JIT compilation, memory management, exception management, debugging etc.
- The CTS defines the rules by which all types are declared, defined and managed, regardless of source language.
- The CLS is a set of minimum standards that all compilers targeting .NET must support to ensure language interoperability.
- Namespaces is a grouping of similar classes having related methods and is used specifically to avoid name clashes between classes.
- The Just In Time (JIT) compiler compiles the MSIL code into a native code that is specific to the OS and machine architecture being targeted.