Wednesday 30 November 2016

What is Net Frameworks and .Net Framework Architecture

.NET FRAMEWORK VERSIONS:

The development of .Net has been started in late 90’s and the first version of framework has been launched in the year 2000 as 1.0 Beta (Trial) and officially it has launched into the market as 1.0 RTM (Release To Manufacturing) in 2002.

2000  ——  .Net Framework 1.0 Beta

2002  ——  .Net Framework 1.0 RTM

2003  ——  .Net Framework 1.1

2005  ——  .Net Framework 2.0

2006  ——  .Net Framework 3.0

2007  ——  .Net Framework 3.5

2009  ——  .Net Framework 4.0

2012  ——  .Net Framework 4.5

2013  ——  .Net Framework 4.5.1

2014  ——  .Net Framework 4.5.2

2015  ——  .Net Framework 4.6

.NET FRAMEWORK ARCHITECTURE:

Following is the figure of .Net Framework Architecture:
Fig: The .NET Framework Stack
  • Framework Class Libraries: These are a set of libraries that are provided in common for all the languages to consume.
  • WinForms: WinForms is a technology using which we can build GUI (Graphical User Interface)  applications.
  • ASP.NET: ASP.NET is a technology using which we can build web applications.
  • ADO.NET:  ADO.NET is a technology using which .Net applications will interact with databases.
  • WPF: WPF stands for Windows Presentation Foundation. This is also used in the development of  GUI (Graphical User Interface) applications only but provides support for graphics, animation, 2-D and 3-D.
  • WCF:  WCF stands for Windows Communication Foundation. By using this, we can build distributed applications or 3-Tier applications.
  • WF: WF stands for Windows Workflow Foundation. By using this, we can build applications in such a way that they can perform a series of actions at a specified time period.
  • Card Space: By using Card Space, we can develop applications in such a way that users can login into multiple applications by using the same User-ID and Password.
  • LINQ: LINQ stands for Language Integrated Query. It is a query language designed specially for accessing data from a wide variety of data sources.
  • Entity Framework: Entity Framework is an extension for ADO.NET which provides a pure object-oriented way to communicate with databases.
  • Parallel LINQ: Parallel LINQ is an extension for LINQ providing parallel execution engines for processing the queries.
  • Task Parallel Library: Task Parallel Library is a more advanced concept to traditional multi-threading.
  • Modern UI Runtime and Task-Based Async Model: These are mainly used in the development of Metro applications i.e. applications for Windows 8 and above Windows 8 operating systems.
  • Common Language Runtime: 
1. It is an execution engine of .Net’s framework where all .Net applications run under the supervision of this CLR.

2.  Applications which run under the CLR are provided with the following features:
     a. Security
     b. Portability (Platform Independency)
     c. Automatic Memory Management
3. CLR internally contains the following things in it:

     a. Security Manager
     b. Just In Time (JIT) Compiler
     c. Garbage Collector

     a. Security Manager:
         Security Manager is responsible for taking care of the security of the applications i.e. it will not allow applications to interact directly with operating system or operating system to interact directly with the application.

     b. Just In Time (JIT) Compiler:
         JIT Compiler is responsible for the conversion of CIL code into machine code adopting a process known as “Conversion gradually during the program execution”.

Fig: Just In Time Compiler

     c. Garbage Collector:
         Garbage Collector is responsible for automatic memory management where memory management is a process of allocation and de-allocation of memory that is required for execution of a program.
         Memory Management is of two types:
            i. Manual/Explicit
            ii. Automatic/Implicitly

         In the first case, programmers are responsible for allocation and de-allocation of the memory that is required for a program execution, whereas; in the second case, garbage collector will take care of the allocation and de-allocation of the memory.
   
         Garbage collector takes the memory for objects when and where they are required and also deallocates and reclaims memory of those objects once they become unused under the program and unused objects of a program are treated as garbage and deallocated.

NOTE: Garbage Collector was designed by John McCarthy around the year 1959 to overcome the problems with Manual Memory Management.


Conclusion: Adopting CLI specifications, Microsoft has implemented the .Net Framework for Windows operating system only until 4.5.2 version, but not for any other operating system because CLI specifications are open, 3rd  party vendors like MONO came forward and implemented .Net framework for other operating systems like Linux, Sun Solaris, Apple MAC etc.

Concerns and Criticisms Related to .Net:

  1. Managed applications which runs directly under the .Net Framework’s CLR consumes more system resources for execution when compared with unmanaged applications (Machine Code which directly runs under operating system).
  2. Whenever garbage collector comes into picture for re-claiming the memory of unused objects will then suspend the execution of programs and resumes them after its work is completed (but not more than few milliseconds).
  3. To run a .Net application on any machine, it is must to install the .Net framework of the same version or above to which application is developed.

  

No comments:

Post a Comment