Although all the namespaces specified in the Base Class Library are also part of the Microsoft Framework Class Library, yet they are placed above the Base Class Library Layer as shown in the following figure due to not being standardized by the ECMA Specification.
Because even using the .NET Framework, basically either Desktop Applications are created, whose Frontend or Window GUI requires classes from the WinForms Namespace, or Web Applications or Web Services are created, whose Frontend or Window The classes of the ASP.NET Namespace are needed for the GUI.
Whereas if the database is to be used for both types of applications, then the classes of ADO.NET Namespace are required for database accessing and manipulating. So these three main parts of .NET Development are depicted with .NET Framework 2.0 as in the following figure:
.NET Framework BCL – Non-Standard BCL Namespaces
Since the .NET Framework 2.0 is used as the basis for all other .NET Frameworks, we consider all the namespaces shown in the green color box in the above picture to be part of the Base Class Library, although WinForms, ASP. NET and ADO.NET and other related namespaces have been added to the Base Class Library in the .NET Framework 2.0 or later versions, so the ECMA Specification does not consider these other namespaces to be part of the Base Class Library.
Similarly, as we can see in the following figure, only four new namespaces were added in the 3.0 version of the .NET Framework, adding some new functionalities to the .NET Framework.
.NET Framework BCL – Non-Standard BCL Namespaces
For example, WPF (Windows Presentation Foundation) was added to this version because there is some problem with WinForms, that they depend on the screen and hardware of the device. So when we create the GUI of our application using WinForms, the output devices of different Screen Size, Resolution, Screen Style (CRT Monitor, LCD, LED, etc.…), etc., have the same Graphical User Interface, Graphics of the device. They look different depending on the device.
To solve this problem, Microsoft has implemented a new system named WPF, which provides a solution to the above problem of WinForms. That is, the user interface created using WPF looks the same on different types of output devices.
Since Microsoft has developed WPF as an alternative to WinForms and WinForms has been kept as a part of .NET only for backward compatibility. Also, Microsoft’s full focus is on WPF to do Frontend GUI Design. That’s why Microsoft has almost stopped developing WinForms. So it may be that soon WinForms will be removed from any future .NET Framework Version. Therefore, it is better to use WPF instead of WinForms to develop Frontend GUI because WPF is the future of Frontend of Microsoft Technology.
Similarly, WCF, WF, and CardSpace were just new parts of the Framework Class Library designed and appended to meet different requirements.
Along with the .NET Framework 3.5 Version, some more namespaces were appended to Microsoft’s non-standard .NET Base Class Library, which modified the way ADO.NET was used.
.NET Framework BCL – Non-Standard BCL Namespaces
Since whenever a new technology is implemented in .NET Framework, Microsoft has to append some more Base Classes to BCL to get that technology-supported in a normal way by various .NET Supported Programming Languages.
As a result, in order to make LINQ supported by various .NET Supported Programming Languages, Microsoft has appended LINQ-related Namespaces to the Non-Standard Microsoft .NET Base Class Library in the .NET Framework 3.5 and also redesigned ADO.NET to use with the new design pattern of Entity Framework.
Along with .NET Framework 4.0, while modifying LINQ, Framework Classes related to some more functionalities were appended. Also, the LINQ Library was modified. We can understand the changes made in .NET Framework 4.0 by the following picture.
.NET Framework BCL – Non-Standard BCL Namespaces
Finally, in the .NET Framework 4.5, which is currently the latest version of .NET, some more new functionalities and their related classes have been added, as shown below.
.NET Framework BCL – Non-Standard BCL Namespaces
Soon .NET Framework 5.0 is coming, in which some more new functionalities and related classes will be added to .NET Framework, and some more new Classes and Namespaces will be appended to .NET Framework’s Non-Standard Base Class Library and this The process will continue till .NET Framework Based Applications are developed.