Architecture of .NET Framework

April 25, 2016
3 mins read

.NET Framework is developed by Microsoft.
The .NET Framework is Microsoft platform for Software Development. It provides a Universal Platform that let Microsoft Developers Program in same way and with the same languages regardless of whether for working for the Web, for Desktop or for Mobile.
There’re also class libraries available for particular type of applications! So if someone working upon a particular environment then appropriate libraries are available. Like when someone working upon Web then libraries like Sockets and other communication standards are available.
Basically .NET Framework has following Components;

  • Framework Class Library (FCL)

It is Standard class library for .NET development that provides core capabilities such as UI Management, Data Access, Security etc. It Delivers basic functionality for developing: XML, ADO.NET, LINQ, ASP.NET, WPF, WCF, WWF, Silverlight, Web services, Windows Forms.
The C# runs in a Managed Code Environment;

  • Common Language Runtime (CLR):

It is the Environment for controlled execution of programmed code – like a virtual machine. It Executes .NET applications.

  • SDK, Compilers and Tools.
  • .NET Framework Architecture

  • The Operating System;

The OS manages the resources, the processes and the users of the machine. Provides to the applications some services (threads, I/O, GDI+, DirectX, COM, COM+, MSMQ, IIS, WMI, …). CLR is a separate process in the OS.

  • Common Language Runtime (CLR);

CLR is the nucleus of .NET Framework. It manages the execution of the .NET code. Manages the memory, concurrency, security…

  • Base Class Library (BCL);

Rich object-oriented library with fundamental classes. Input-output, collections, text processing, networking, security, multi-threading…

  • Application Class Libraries and Services;

It includes Services. i.e. Database access, ADO.NET, LINQ, LINQ-to-SQL and Entity Framework. Strong XML support

  • WCF and WWF (Communication and Workflow Tier);

Windows Communication Foundation (WCF) and Windows Workflow Foundation (WWF) for the SOA world.

  • Common Language Specification;

User interface technologies: Web based, Windows GUI, WPF, Silverlight, mobile. Including ASP.NET, WPF, Web forms, others…

  • Programming Languages;

And then the top layer of Programming Languages come, in which lot of language include; C#, C++, VB, J#, F#, Jscript, F# etc…

CLR;

Managed execution environment and Controls the execution of managed .NET programming code
Something like virtual machine Like the Java Virtual Machine (JVM).
Not an interpreter. Compilation on-demand is used Known as Just in Time (JIT) compilation.
Possible compilation in advance.

  • Responsibility of CLR;
    • Execution of the IL code and the JIT compilation
    • Managing memory and application resources
    • Ensuring type safety
    • Interaction with the OS
    • Managing security
      • Code access security
      • Role-based security
    • Managing exceptions
    • Managing concurrency – controlling the parallel execution of application threads
    • Managing application domains and their isolation
    • Interaction with unmanaged code
    • Supporting debug / profile of .NET code
  • CLR Architecture;

Managed Code;

CLR executed code is called managed code. Represents programming code in the low level language MSIL (MS Intermediate Language) Contains metadata. i.e. Description of classes, interfaces, properties, fields, methods, parameters, etc.
Programs, written in any .NET language are Compiled to managed code (MSIL). Packaged as assemblies (.exe or .dll files)
Object-oriented, Secure, Reliable, Protected from irregular use of types (type-safe), Allows integration between components and data types of different programming languages, Portable between different platforms, Windows, Linux, Max OS X, etc.

Unmanaged (Win32) Code;

No protection of memory and type-safety. Reliability problems and Safety problems.
Doesn’t contain metadata. Needs additional overhead like (e.g. use COM), Compiled to machine-dependent code, Need of different versions for different platforms, Hard to be ported to other platforms.

  • Memory Management;

CLR manages memory automatically. Dynamically loaded objects are stored in the managed heap. Unusable objects are automatically cleaned up by the garbage collector. Some of the big problems are solved. Memory leaks and Access to freed or unallocated memory. Objects are accessed through a reference.

  • Intermediate Language (MSIL);

Low level language (machine language) for the .NET CLR. It has independent set of CPU instructions. Loading and storing data, calling methods, Arithmetic and logical operations, Exception handling, Etc.
MSIL is converted to instructions for the current physical CPU by the JIT compiler.

Sample MSIL Program;

Compilation and Execution;

How CLR Executes MSIL?


C# Does not compile to machine code, its code compile to Bytecode. A format that can be interpreted and executed on multiple operating systems. While the .NET framework is built for Windows, so there’ve been number of efforts to create environment for C# that can be executed by a layer called Common Language Runtime (CLR). The CLR is a Virtual Machine similar to JVM (Java Virtual Machine). It Provides Machine Level Security, memory management and OS level security and much more…

The .NET Stack;


So! All of these framework supports C#. And you can also build Universal Windows App for Windows 10. Moreover, now through Bridge Tools you can also build Native Apps through C#. So Distinct Compilers are required for each OS!
Microsoft Visual C# is the managed language that is compiled to Byte code. As compare to this, there’re are native languages which are compiled to machine code. For them we need distinct compilers across each OS. Common Native Languages are C, C++, Objective C.
As the C# is the managed language, so it is compiled to intermediate format. It also typically are cross OS compatible (like Java). So it compiles to Byte code, note the machine code. Then that bytecode is executed at Runtime by CLR (Common Language Runtime) on Windows. Similarly, that bytecode can also be executed at Runtime on another OS without having to be recompile by the third party compilers…

Data Scientist & Solution Architect || IBM Recognised Speaker, Mentor, and Teacher || Debater || Blogger || Guinness World Record Holder || Watson Solution Developer || IBM Community Activist || Aspiring to Inspire.

Leave a Reply

Your email address will not be published.

Previous Story

Microsoft Imagine Cup: An Awesome Journey With Full of Pressure and Anxiety.

Next Story

.NET Core

Latest from Blog

Quantum Computing | What, Why & How

Now as we are starting the 5th decade after the very first proposed model in the 1980s, quantum computers are now commercially available, brought out of the lab, and into the industry by IBM Quantum. With many experts predicting it will revolutionize the way we approach problem-solving. With the recent

Case Study: Digital Transformation of “justSajid Bank”

In this current era of what we call “digital first”, industries are repeatedly changing and evolving with the help of technology. So as the banking industry is reshaping itself, banks need to keep adopting positive changes to counter and overcome the key challenges of the modern world to overcome the

Metaverse || A Whole New World.

Things are going to be super dramatic in the next few years. Metaverse is going to open a lot of new doors to revise things that we are doing now. The culture and lifestyle would be changed. Some new cultures would have emerged and everybody would be living without physical

Pakistan Day 2020 | Coronavirus Technical Solutions

Well, on Pakistan Day 2020 our nation along with the rest of the world is facing Corona Pandemic. As the sons of this great motherland, we are trying to play our roles at our places. Within the last few weeks, Alhamdulillah I’ve got a chance to develop two technical solutions

Password: Choose the Secure, Easy and Cool Password

A super secure Password is very common nowadays. Although according to experts the password is going to expire very soon. Moreover, the pin codes are also replacing password in some why. Perhaps still there is a lot of importance of a secure password in many places. The one of the most

JumpStart with DevOps

What is DevOps; DevOps is a Software Development Strategy, that bridges the gap between the Dev and the Ops side of the company. * It’s not a tool, it’s a Methodology to bridge the gap b/w development and operations teams! As there is always a lot of conflicts between the

JumpStart Programming with Python 3

Motivation; Well, if you want to play with data and deal with complex analytics problems then Python is the best for you. We can use Python for developing complex scientific and numeric apps. Python is designed with features to facilitate data analysis and visualization. The syntax in Python helps the programmers to do coding

Understanding of Data Science Methodology

Motivation: It’s all about the different methods used in data science. Data Science Methodology: There is the following methodology used in data science which can further categories into different phases; From Problem to Approach Business Understanding Analytical Approach Working with Data Data Requirements Data Collection Data Understanding Data Preparation Deriving the

Understanding Machine Learning Methodology

Motivation Well, if we talk about a human cell sample extracted from a patient. The cell would have some characteristics. One of the interesting questions we can ask, what kind of statistics that cell have? One could easily presume that only a doctor with years of experience could diagnose a tumor and

SIMPLE NAVIGATION IN WINDOWS APPLICATION

The Navigation of UWP Apps is extremely cool and easier than other platforms. It allows enabling a variety of intuitive user experiences for moving between apps, pages, and content. Navigation is the key part of the Application. In your small Apps, you may maintain your contents and functionality in a

UNDERSTANDING THE ARCHITECTURE OF UNIVERSAL WINDOWS PLATFORM

The architecture of Universal Windows Platform is most exclusive with the center of gravity which is One Windows Core. Now the whole development will follow the common refactored core that will common for all the windows Releases. It’s all about One Core, One Hardware Platform, Universal Hardware Driver and Standalone

Guinness World Record Holder | Hajj Hackathon | Khadim Al-Haramain Al-Sharifain

Khadim Al-Haramain Al-Sharifain Built an MVP of a cognitive platform name “Khadim Al-Haramain Al-Sharifain“.  Objective The objective was to facilitate Hajj operations by introducing cognitive services integrated with Hajj systems. Hence millions of Muslims who are there for Allah Rab-ul-Izat, can perform anything without disturbing their focuses and concentrations.  Functionalities

JumpStart with IBM Bluemix

IBM Bluemix is the world most exclusive cloud platform that provides developers to quickly develop, Deploy and manage Apps over the cloud without dealing with any underline infrastructure. Bluemix provides great open source platforms for your needs. Tech experts believe that up to 2020 the computing era would completely change.

JumpStart Into Big Data With HDInsight

What would happen when the volume of your data increased repeatedly over time and you need high velocity at the same time. Not only that but you have a different variety of data and Variability also exists in your data. So how would you handle all that data? If we

Microsoft SharePoint: Create an Intranet in SharePoint

As you should already have some hands on with SharePoint. So, Lets do some hands on with SharePoint Intranet for Small company. Simply start with a Blank Site Collection. Let’s assume that the company has 3 Departments: Sales, Production and Support. They each have their own area in which they should

.NET Core

.NET Core 1.0  .NET Core 1.0 is a major new investment in the future of .NET and laying the foundation for decades to come. Still, it is in its early stage, and for some time you might still focus .NET Framework 4.6 depending on your application needs. But for many scenarios,

JUMPSTART WITH DATA BINDING IN UWP

Data Binding is one of the most interesting topics in Universal App Development. In order to perform the better functionality, you really need to have some great usage of Data Binding in you Apps. So! First thing first. What is actually the Data Binding and is its usage in UWP.

justSajid | A PLACE FOR MY THOUGHTS

This blog is my personal mental playground. The views expressed are mine, and mine alone. They do not represent the views of my employer, my family, my friends, my imaginary friends, my neighbors, people who live in my city, province, country, region, or planet, nor do they represent the views

justSajid | A PLACE FOR MY THOUGHTS

justSajid is my personal mental playground. The views expressed are mine, and mine alone. They do not represent the views of my employer, my family, my friends, my imaginary friends, my neighbors, people who live in my city, province, country, region, or planet, nor do they represent the views of

Agentic AI: The Future of Machines Acting with Purpose

Artificial Intelligence (AI) has come a long way from being a fancy algorithm for chess games to becoming our digital assistant, creative collaborator, and even a philosopher’s muse. One of the more intriguing advancements in AI is Agentic AI—an AI system that can act autonomously, pursue goals, and make decisions,
GoUp

Don't Miss

UNDERSTANDING THE ARCHITECTURE OF UNIVERSAL WINDOWS PLATFORM

The architecture of Universal Windows Platform is most exclusive with

.NET Core

.NET Core 1.0  .NET Core 1.0 is a major new investment