BCL (библиотека базовых классов) против FCL (библиотека классов инфраструктуры)

98

В чем разница между ними? Можем ли мы использовать их как взаимозаменяемые?

Джоан Венге
источник

Ответы:

98

Библиотека базовых классов (BCL) буквально является базой. Он содержит базовые, фундаментальные типы, такие как System.Stringи System.DateTime.

Библиотека классов Framework (FCL) - это более широкая библиотека, которая содержит все: ASP.NET, WinForms, стек XML, ADO.NET и другие. Можно сказать, что FCL включает BCL.

Эндрю Уэбб
источник
35
На простом уровне .NET Framework = библиотеки (FCL, BCL), языковые компиляторы (C #, VB.NET) и Common Language Runtime (CLR). Плюс к этому есть вся экосистема, которая окружает это: Visual Studio, справка MSDN и многое другое.
Эндрю Уэбб
1
@JoanVenge BCL - это подмножество FCL; BCL - это подкомпонент FCL, а не отдельный компонент вместе.
iliketocode
26

BCL :

Библиотека .NET Framework, BCL является стандартом для библиотеки времени выполнения C # и одной из стандартных библиотек Common Language Infrastructure (CLI). BCL предоставляет типы, представляющие встроенные типы данных CLI, базовый доступ к файлам, коллекции, настраиваемые атрибуты, форматирование, атрибуты безопасности, потоки ввода-вывода, операции со строками и многое другое.

FCL :

Библиотека классов .NET Framework - это именно то, что следует из ее названия: библиотека классов и других типов, которые разработчики могут использовать для облегчения своей жизни. Хотя сами эти классы написаны на C #, их можно использовать с любого языка на основе CLR.

Вы будете использовать BCL с некоторыми частями FCL для каждого типа проекта. Итак, System.Windows.Forms (отдельная библиотека) или System.Web с BCL из mscorlib и System.dll

Крис С
источник
4
В Microsoft я считаю, что команда CLR владеет BCL, в то время как многие команды владеют различными частями FCL.
rjdevereux
22

BCL означает библиотеку базовых классов, также известную как библиотека классов (CL). BCL - это подмножество библиотеки классов Framework (FCL). Библиотека классов - это набор многоразовых типов, которые тесно интегрированы с CLR. Библиотека базовых классов предоставляет классы и типы, которые полезны при выполнении повседневных операций, например, при работе со строковыми и примитивными типами, подключением к базе данных, операциями ввода-вывода.

в то время как библиотека классов Framework содержит тысячи классов, используемых для создания различных типов приложений, и предоставляет все основные функции и службы, которые необходимы приложению. FCL включает классы и службы для поддержки различных приложений, например

  • Настольное приложение,

  • Веб-приложение (ASP.Net, MVC, WCF),

  • Мобильное приложение,

  • Приложение Xbox,

  • службы Windows и т. д.

Более подробная информация о том, что такое BCL / CL в .Net?

введите описание изображения здесь

Ашиш Шукла
источник
ashish: не могли бы вы дать более описательный ответ о BCL
amitguptageek
4
хорошо, Картинка стоит тысячи слов
mkb
@amitguptageek, вы можете проверить более подробную информацию на modernpathshala.com/Forum/Thread/Interview/7307/…
Ашиш Шукла
14

Библиотека базовых классов (BCL) - это основной набор классов, которые служат в качестве базового API-интерфейса Common Language Runtime. Классы в 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 и другие.

Итак, есть различия, и вы не должны использовать их как взаимозаменяемые.

Правин Праджапати
источник
12

BCL - это подмножество FCL. BCL соблюдает спецификацию ECMA для общей языковой инфраструктуры. Затем Microsoft добавила все свои достоинства, такие как данные и xml, и назвала это библиотекой классов Framework. В основном они взяли BCL и довели его до 11!

Джошуа Белден
источник
2
Спасибо, что вы имеете в виду, говоря "перейти к 11"?
Джоан Венге,
10
Ссылка на Spinal Tap
Chris S,
1
Не слышал этого. Вы можете сказать мне, что это значит, чтобы я не остался в стороне?
Джоан Венге,
8
Итак, в фильме «This is Spinal Tap», который представляет собой сатирический взгляд на хэви-метал-группы в псевдонимном стиле, гитарист (Найджел Тафнел) демонстрирует усилитель, который он специально сделал для Марти ДиБерджи: Найджел Тафнел: Цифры все идут к одиннадцати. Послушайте, прямо напротив, одиннадцать, одиннадцать, одиннадцать и ... Марти ДиБерджи: О, понятно. И большинство усилителей доходят до десяти? : Именно. : Значит, громче? Громче? : Ну, на одну громче, не так ли?
Ichorus
1
@Ichorus, но почему бы им просто не сделать десять громче?
Саймон Босли
8

Следующее цитируется из книги «Руководство игрока на C #».

BCL содержит все встроенные типы, массивы, исключения, математические библиотеки, базовый ввод-вывод файлов, безопасность, коллекции, отражение, сеть, манипуляции со строками, многопоточность и многое другое. Хотя это и не идеальное руководство, общее правило состоит в том, что любое пространство имен, которое начинается с System, является частью BCL.

Помимо BCL, Microsoft поставляет с .NET Framework еще много классов. В общем, эти дополнительные вещи охватывают широкие функциональные области, такие как доступ к базе данных или графические пользовательские интерфейсы (Windows Forms или WPF). Вся эта коллекция, включая BCL, называется библиотекой классов Framework или FCL. В ходе случайного обсуждения иногда люди используют FCL и BCL как взаимозаменяемые, что не совсем правильно, но, возможно, этого достаточно для большинства вещей.

user1899020
источник