【问题标题】:BCL (Base Class Library) vs FCL (Framework Class Library)BCL(基类库)与 FCL(框架类库)
【发布时间】:2009-04-30 16:38:56
【问题描述】:

这两者有什么区别?我们可以互换使用它们吗?

【问题讨论】:

    标签: c# .net terminology


    【解决方案1】:

    基类库 (BCL) 从字面上看就是基础。它包含基本的基本类型,例如 System.StringSystem.DateTime

    框架类库 (FCL) 是一个更广泛的库,包含以下全部内容:ASP.NET、WinForms、XML 堆栈、ADO.NET 等等。可以说 FCL 包括 BCL。

    【讨论】:

    • 简单来说,.NET Framework = 库(FCL、BCL)、语言编译器(C#、VB.NET)和公共语言运行时(CLR)。此外,还有围绕它的整个生态系统:Visual Studio、MSDN 帮助等等。
    • @JoanVenge BCL 是 FCL 的子集; BCL 是 FCL 的一个子组件,而不是一个单独的组件。
    【解决方案2】:

    BCL:

    一个 .NET Framework 库,BCL 是 C# 运行时库的标准,也是公共语言基础结构 (CLI) 标准库之一。 BCL 提供了表示内置 CLI 数据类型、基本文件访问、集合、自定义属性、格式设置、安全属性、I/O 流、字符串操作等的类型。

    FCL:

    .NET Framework 类库正是它的名字所暗示的:一个包含类和其他类型的库,开发人员可以使用它来让他们的生活更轻松。虽然这些类本身是用 C# 编写的,但它们可以在任何基于 CLR 的语言中使用

    您将在每种项目类型中使用 BCL 和 FCL 的某些部分。所以 System.Windows.Forms(一个单独的库)或 System.Web,带有来自 mscorlib 和 System.dll 的 BCL

    【讨论】:

    • 在微软,我相信 CLR 团队拥有 BCL,而许多团队拥有 FCL 的不同部分。
    【解决方案3】:

    BCL 代表基类库,也称为类库 (CL)。 BCL 是框架类库 (FCL) 的子集。类库是与 CLR 紧密集成的可重用类型的集合。基类库提供有助于执行日常操作的类和类型,例如处理字符串和原始类型、数据库连接、IO 操作。

    而框架类库包含数千个用于构建不同类型应用程序的类,并提供应用程序所需的所有基本功能和服务。 FCL 包括类和服务以支持不同种类的应用程序,例如

    • 桌面应用,

    • Web 应用程序(ASP.Net、MVC、WCF),

    • 移动应用,

    • Xbox 应用程序,

    • Windows 服务等

    更多详情What is BCL/ CL in .Net?

    【讨论】:

    【解决方案4】:

    基类库 (BCL) 是一组核心类,用作公共语言运行时的基本 API。 mscorlib.dll 中的类以及 System.dll 和 System.core.dll 中的一些类被认为是 BCL 的一部分。它包括命名空间中的类,如 System 、 System.Diagnostics 、 System.Globalization 、 System.Resources 、 System.Text 、 System.Runtime.Serialization 和 System.Data 等。

    Framework 类库 (FCL) 是 BCL 类的超集,它指的是 .NET Framework 附带的整个类库。它包括一组扩展的库,包括 Windows Forms、ADO.NET、ASP.NET、Language Integrated Query、Windows Presentation Foundation、Windows Communication Foundation 等。

    因此存在差异,您不能互换使用它们。

    【讨论】:

      【解决方案5】:

      BCL 是 FCL 的子集。 BCL 尊重通用语言基础架构的 ECMA 规范。然后微软添加了它们所有的优点,比如数据和 xml,并将其称为框架类库。基本上他们拿走了 BCL 并把它带到了 11!

      【讨论】:

      • 谢谢,“去11”是什么意思?
      • 没听过那个。你能告诉我这意味着什么,所以我不会被排除在外吗?
      • 所以在电影“这是 Spinal Tap”中,这是对重金属乐队的一种讽刺性的模仿,吉他手 (Nigel Tufnel) 展示了他专门制作的放大器Marty DiBergi: Nigel Tufnel: 数字都到了十一。看,全线,十一,十一,十一和... Marty DiBergi:哦,我明白了。大多数安培达到十个? : 确切地。 : 意思是声音大吗?声音大点了吗? : 嗯,声音大一点,不是吗?
      • @Ichorus 但他们为什么不把声音调大一点?
      【解决方案6】:

      以下内容引自《The C# Player's Guide》一书。

      BCL 包含所有内置类型、数组、异常、数学库、基本文件 I/O、安全性、 集合、反射、网络、字符串操作、线程等。虽然不是完美的 指南,一般规则是任何以 System 开头的命名空间都是 BCL 的一部分。

      除了 BCL,Microsoft 还随 .NET Framework 提供了更多类。在 一般来说,这些额外的东西涵盖了广泛的功能领域,例如数据库访问或图形 用户界面(Windows 窗体或 WPF)。包括 BCL 在内的整个集合称为 框架类库,或 FCL。在随意的讨论中,有时人们使用 FCL 和 BCL 可以互换,这并不完全正确,但对于大多数事情来说可能已经足够了。

      【讨论】:

        猜你喜欢
        • 2018-12-24
        • 2021-02-07
        • 1970-01-01
        • 1970-01-01
        • 2010-11-13
        • 1970-01-01
        • 2016-06-25
        • 2021-09-11
        • 1970-01-01
        相关资源
        最近更新 更多