.Net framework is software development platform which is developed and maintained by Microsoft. The framework is used to create application which run on windows, Linux and MacOS platform. .Net framework support multiple languages to develop application like C#, VB.Net, J#, C++, Python etc.It can be used to develop all types of software like Window Application, Web Application, Console Application and Mobile Application etc.

Window Application: Window application runs where it is installed. If we want to run window application in multiple computer then we have to installed this application for each computer. And we don't need internet connection to execute windows application.

Web Application: Web application works as a client server architecture. Means we just host our web application on server and we can access web application from any computer which is connected with internet. Advantage is we don't need to install this to every computer where we want to use. Web application can run in the browser.

Mobile Application: We can develop mobile application in .net framework. This type of application can run on mobile only. 

Architecture of .Net Framework

As, we discussed .net is a framework which support multiple language to develop application or software. Below diagram shows how .net support multiple languages in a single platform. We will discuss all the points that how .net works.
Dot Net Architecture

CLR (Common Language Runtime): 
CLR is the heart of .Net Framework used to manage the program that written in .net framework compatible language like C#, VB.Net, C++ etc. CLR is Microsoft implementation of the common language Infrastructure (CLI) standard, which define execution environment for program code called the common Intermediate language (CIL) previously known as MSIL (Microsoft Intermediate Language).

How CLR Works:
When we write a program in .Net compatible language, then the compiler of that language like for C# (csc), VB.Net (vbc) compile the code in IL (Intermediate Language) and then IL will input of CLR's component Just-In-Time compiler to produce machine independent code. Means first, compiler of the language compile the program and convert it to IL (Intermediate Language) and then second, JIT (Just-In-Time) compiler compile this IL code to Machine code. Here, we see that two type of compilation is happening. So, we can say .net framework support multiple language due to this two compilation process. 

Apart from the above CLR is responsible for following process

  1. Memory Management
  2. Thread Management
  3. Garbage Collection
  4. Exception Handling 

CLS (Common Language Specification): This is the set of basic rules which is mandate to adopt interoperate to each other. Most important after compilation of any .Net language program has to generate the same type of code known as Common Intermediate Language code.

CTS (Common Type System): 
All the .Net language has to adopt uniform data structure. Most of the language under .Net framework are derived from same existing language. So, name of datatype will be deffer from language to language. The datatype that is used in any language after compilation will be converted into IL type where in IL format all similar types will be same.

FCL (Framework Class Library): 
This provides the core functionality of .Net framework architecture. The FCL includes a huge collection of reusable Classes, Interface and value types that optimize the development process and provide access to system functionality. 

Visual Studio
Visual studio is an integrated development environment where we develop Dot Net based application. We can install visual studio from given link. Click Here 

Now, we will see installation process one by one.

Suppose, you downloaded community which is free for students, open-source contributors and individuals. 

1. From downloaded folder, double-click to vs_community.exe file. If you receive a user account control notice then choose Yes

2. We acknowledge the License and Microsoft Privacy Statement. Select Continue 

3. After selecting Continue, we will find Workloads tab in Visual Studio Installer. We choose as we want to install. like below 

Individual components: Here we choose the target framework versions. We check which we want to install. 

Language Packs: If we want to change the language or want to make its for multiple language then we will select which we want. by the way English is Default checked.

Installation Locations: Here we define the installation location or path of SDK.

4. Finally we have a Install button. We click on install button and installation process will start.

After completion of installation we will restart our system and we can start working with visual studio.