【发布时间】:2009-04-30 16:38:56
【问题描述】:
这两者有什么区别?我们可以互换使用它们吗?
【问题讨论】:
标签: c# .net terminology
这两者有什么区别?我们可以互换使用它们吗?
【问题讨论】:
标签: c# .net terminology
基类库 (BCL) 从字面上看就是基础。它包含基本的基本类型,例如 System.String 和 System.DateTime。
框架类库 (FCL) 是一个更广泛的库,包含以下全部内容:ASP.NET、WinForms、XML 堆栈、ADO.NET 等等。可以说 FCL 包括 BCL。
【讨论】:
一个 .NET Framework 库,BCL 是 C# 运行时库的标准,也是公共语言基础结构 (CLI) 标准库之一。 BCL 提供了表示内置 CLI 数据类型、基本文件访问、集合、自定义属性、格式设置、安全属性、I/O 流、字符串操作等的类型。
.NET Framework 类库正是它的名字所暗示的:一个包含类和其他类型的库,开发人员可以使用它来让他们的生活更轻松。虽然这些类本身是用 C# 编写的,但它们可以在任何基于 CLR 的语言中使用
您将在每种项目类型中使用 BCL 和 FCL 的某些部分。所以 System.Windows.Forms(一个单独的库)或 System.Web,带有来自 mscorlib 和 System.dll 的 BCL
【讨论】:
BCL 代表基类库,也称为类库 (CL)。 BCL 是框架类库 (FCL) 的子集。类库是与 CLR 紧密集成的可重用类型的集合。基类库提供有助于执行日常操作的类和类型,例如处理字符串和原始类型、数据库连接、IO 操作。
而框架类库包含数千个用于构建不同类型应用程序的类,并提供应用程序所需的所有基本功能和服务。 FCL 包括类和服务以支持不同种类的应用程序,例如
桌面应用,
Web 应用程序(ASP.Net、MVC、WCF),
移动应用,
Xbox 应用程序,
Windows 服务等
【讨论】:
基类库 (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 等。
因此存在差异,您不能互换使用它们。
【讨论】:
BCL 是 FCL 的子集。 BCL 尊重通用语言基础架构的 ECMA 规范。然后微软添加了它们所有的优点,比如数据和 xml,并将其称为框架类库。基本上他们拿走了 BCL 并把它带到了 11!
【讨论】:
以下内容引自《The C# Player's Guide》一书。
BCL 包含所有内置类型、数组、异常、数学库、基本文件 I/O、安全性、 集合、反射、网络、字符串操作、线程等。虽然不是完美的 指南,一般规则是任何以 System 开头的命名空间都是 BCL 的一部分。
除了 BCL,Microsoft 还随 .NET Framework 提供了更多类。在 一般来说,这些额外的东西涵盖了广泛的功能领域,例如数据库访问或图形 用户界面(Windows 窗体或 WPF)。包括 BCL 在内的整个集合称为 框架类库,或 FCL。在随意的讨论中,有时人们使用 FCL 和 BCL 可以互换,这并不完全正确,但对于大多数事情来说可能已经足够了。
【讨论】: