Net Framework Components
Net Framework Components have three basic components shown in the below figure.
Common Language Runtime (CLR)
On .Net Framework, execution environment is called the Common Language Runtime (CLR). The CLR manages program execution at run time and hides from operating systems and hardware. The source code for programs that are executed and managed by the CLR is called managed code.
The CLR provides some services:
- Memory management
- Garbage collection
- Code safety verification
- Code execution
- Thread management
- Exception handling
Unmanaged code programs do not have access to the CLR’s services, which makes unmanaged code more difficult to write. Managed code is compiled into machine-specific instructions in the following steps:
- First of all the code is compiled into Microsoft Intermediate Language (MSIL). This code converted into MSIL from other languages, this allows programmers to work in their preferred .NET programming language. The MSIL for an app’s components is placed into the app’s executable file, the file that causes the computer to perform the app’s tasks or operations.
- When the app executes, another compiler (known as the just-in-time compiler or JIT compiler) in the CLR translates the MSIL in the executable file into machine language code (for a particular platform).
- The machine language code executes on that platform.
The programming tools include everything you need for coding and debugging, and including the following:
- The Visual Studio integrated development environment (IDE)
- .NET-compliant compilers (e.g., C#, Visual Basic .NET, C, F#, IronRuby, and managed C++)
- Web development server-side technologies, such as ASP.NET and WCF
Base Class Library
The Base Class Library (BCL) is a large class library used by the .NET Framework and available to all .NET programming languages. The base class libraries define types of application that can be used to build any type of software application. For example, the programmer can use ASP.NET to develop web sites, WCF to develop networked services, WPF to develop desktop GUI applications, and so forth. As well, the base class libraries provide types to interact with XML documents, the local directory and file system on a given computer, communicate with a relational database (via ADO.NET), and so forth. From a high level, you can visualize the relationship between the CLR, CTS, CLS, and the base class library.