BCL (Base Class Library) vs FCL (Framework Class Library)

别等时光非礼了梦想. 提交于 2019-11-27 17:22:07
Andrew Webb

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.

Chris S

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

Ashish Shukla

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?

The Base Class Library (BCL) is the core set of classes that serve as the basic API of the Common Language Runtime. The classes in mscorlib.dll and some of the classes in System.dll and System.core.dll are considered to be a part of the BCL. It includes the classes in namespaces like System , System.Diagnostics , System.Globalization, System.Resources , System.Text , System.Runtime.Serialization and System.Data etc.

The Framework Class Library (FCL) is a superset of the BCL classes and refers to the entire class library that ships with .NET Framework. It includes an expanded set of libraries, including Windows Forms, ADO.NET, ASP.NET, Language Integrated Query, Windows Presentation Foundation, Windows Communication Foundation among others.

So there are differences and you must not use those interchangeably.

The BCL is a subset of the FCL. BCL honors the ECMA specification for the common language infrastructure. Then Microsoft added all their goodness like data and xml and called it the Framework Class Library. Basically they took the BCL and made it go to 11!

The following is cited from the book "The C# Player's Guide".

The BCL contains all of the built-in types, arrays, exceptions, math libraries, basic File I/O, security, collections, reflection, networking, string manipulation, threading, and more. While not a perfect guide, a general rule is that any namespace that start with System is a part of the BCL.

Beyond the BCL, there are many more classes that Microsoft ships with the .NET Framework. In general, these additional things cover broad functional areas, such as database access or graphical user interfaces (Windows Forms or WPF). This entire collection, including the BCL, is called the Framework Class Library, or FCL. In casual discussion, sometimes people use FCL and BCL interchangeably, which isn’t strictly correct, but it is perhaps good enough for most things.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!