Monday, June 16, 2008

what is different between BCL (Base Class Library) and FCL (Framework Class Library) in Microsoft dot net (.net)?

Base Class Library :


The Base Class Library (BCL) is a standard library available to all languages using the .NET Framework. In order to make the programmer's job easier, .NET includes the BCL in order to encapsulate a large number of common functions, such as file reading and writing, graphic rendering, database interaction, and XML document manipulation. It is much larger in scope than standard libraries for most other languages, including C++, and would be comparable in scope to the standard libraries of Java.

Framework Class Library:


The .NET Framework Class Library (FCL) consists of a series of classes, interfaces, and value types that can be used to program with. The .NET Framework has types that allow one to easily:

  • Create extravagant graphical user interface applications
  • (System.Windows.Forms)
  • Access and manipulate data in various database formats (System.Data and System.Xml)
  • Dynamically query type information (System.Reflection)
  • Perform basic Input/Output operations (System.IO)
  • Perform operating system security checks (System.Security)
  • Create internet enabled applications (System.Net and System.Net.Sockets)
  • Create dynamic web based applications – also known as ASP.NET (System.Web)
  • Access basic data types, event handlers, and exceptions (System)


what is different between BCL and FCL in dot net (.net)?

BCL , FCL both are not same. The Base Class Library (BCL), sometimes incorrectly referred to as the Framework Class Library (FCL) (which is a superset including the Microsoft.* namespaces), is a library of types available to all languages using the .NET Framework. The BCL provides classes which encapsulate a number of common functions such as file reading and writing, graphic rendering, database interaction, XML document manipulation, and so forth. The BCL is much larger than other libraries, but has much more functionality in one package. The BCL would include everything in mscorlib and system and possibly some additional assemblies.  It includes all the type, assembly, reflection and collection classes of the framework (among others).  It does not include ASP.NET, ADO.NET, WinForms, management namespace and other classes/namespaces that provide additional functionality.

FCL  = All namespaces (entire framework).

BCL = Common namespaces (core framework).

FCL = BCL + everything else that ships as part of the .NET Framework. 


Dulari said...

This is really very important. and the content is too good. I really liked the way you differentiated FCL and BCL.