BCL (Base Class Library) vs FCL (Framework Class Library)
What's the difference between the two? Can we use them interchangeably?
The Base Class Library (BCL) is literally that, the base. It contains basic, fundamental types like System.String
and System.DateTime
.
The Framework Class Library (FCL) is the wider library that contains the totality: ASP.NET, WinForms, the XML stack, ADO.NET and more. You could say that the FCL includes the BCL.
BCL:
A .NET Framework library, BCL is the standard for the C# runtime library and one of the Common Language Infrastructure (CLI) standard libraries. BCL provides types representing the built-in CLI data types, basic file access, collections, custom attributes, formatting, security attributes, I/O streams, string manipulation, and more.
FCL:
The .NET Framework class library is exactly what its name suggests: a library of classes and other types that developers can use to make their lives easier. While these classes are themselves written in C#, they can be used from any CLRbased language
You'll be using the BCL with some parts of the FCL with each project type. So System.Windows.Forms (a separate library) or System.Web, with the BCL from mscorlib and System.dll
BCL stands for Base class library also known as Class library (CL). BCL is a subset of Framework class library (FCL). Class library is the collection of reusable types that are closely integrated with CLR. Base Class library provides classes and types that are helpful in performing day to day operation e.g. dealing with string and primitive types, database connection, IO operations.
while Framework class library contains thousands of classes used to build different types of applications and provides all the basic functionalities and services that application needs. FCL includes classes and services to support different variety of application e.g.
Desktop application,
Web application (ASP.Net, MVC, WCF),
Mobile application,
Xbox application,
windows services etc.
More details at What is BCL/ CL in .Net?