.NET is the Microsoft product that has been introduced in the year 2000 which can be used in the development of various kinds of applications like Desktop Applications(Character user Interfaces(CUI), Graphical User Interfaces(GUI)), Web Applications, Mobile Applications.
To develop applications using .Net, we are provided with three major things under .Net. They are
Languages: Cobol.Net, Pascal.Net, Fortran.Net, VB.Net, J#.Net, VCPP.Net, C#.Net etc.
Technologies: ADO.Net, Asp.Net...etc.
Servers: Windows Server OS, SQL Server, IIS, SharePoint Server, Biz Talk Server...etc.
.Net is a collection of languages giving a flexibility for programmers for writing the code using any language of their choice where all languages will provide the same features and capabilities but the only difference is the style of writing the code.
A program that is written using a different language uses a different compiler for compilation. But after compilation all compilers will generate the same type of output code for the same program that is written in different languages what we call it as Common Intermediate Language(CIL) code which is taken by CLR(Common Language Runtime) to convert into machine code according to the platform on which the code is getting executed.
The execution of the program in the .Net platform using different languages is as shown below.
.Net Framework:
This is a software that is required in the execution of the .Net application on any machine. The framework masks the functionality of the OS and makes the code to execute under its control, by providing the features like
· Platform Independency
· Security
· Automatic (Or) Implicit memory management.
In platform dependent languages the compiled code of a program (machine code) directly runs under OS. But in case of .Net languages the compiled code(CIL) runs under the framework's control.
The code which runs under the framework is also known to be called as Managed code because the framework manages each and everything here, whereas the code which runs under Operating System is known to be called as un-managed code.
The development of .NET's framework has been started in late 90's originally under the name NEWS(Next Generation Windows Systems/Services).
To develop the framework a set of specifications have been prepared known as CLI(Common Language Infrastructure). CLI specifications are open specifications that have been standardized under ISO(International Standards Organization) and ECMA(European Computer Manufacturers Association) giving a chance for anyone to develop the framework.
The CLI specification talks on four major things known as
CLR: Common Language Specification
CTS: Common Type System
CL: Class Library
All .Net languages are object Oriented and providing the reusability i.e., once you develop an application and compile the code. We can start consuming that compiled code can be reused in other programs.
This reusability is available with C++, Java languages also but within the language only where as in case of .Net languages the reusability is between all languages of .Net i.e., Cross Language reusability is available.
C#.Net Source Code => CIL Code => can be reused from any .Net language.
VB.Net Source Code => CIL Code => can be reused from any .Net language.