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

98

Qual a diferença entre os dois? Podemos usá-los de forma intercambiável?

Joan Venge
fonte

Respostas:

98

A Base Class Library (BCL) é literalmente isso, a base. Ele contém tipos básicos e fundamentais como System.Stringe System.DateTime.

A Framework Class Library (FCL) é a biblioteca mais ampla que contém a totalidade: ASP.NET, WinForms, a pilha XML, ADO.NET e muito mais. Você poderia dizer que o FCL inclui o BCL.

Andrew Webb
fonte
35
Em um nível simples, .NET Framework = bibliotecas (FCL, BCL), compiladores de linguagem (C #, VB.NET) e Common Language Runtime (CLR). Além disso, há todo o ecossistema que envolve isso: Visual Studio, Ajuda do MSDN e muito mais.
Andrew Webb
1
@JoanVenge BCL é um subconjunto do FCL; BCL é um subcomponente do FCL, não um componente separado.
iliketocode de
26

BCL :

Uma biblioteca .NET Framework, BCL é o padrão para a biblioteca de tempo de execução C # e uma das bibliotecas padrão Common Language Infrastructure (CLI). O BCL fornece tipos que representam os tipos de dados CLI integrados, acesso a arquivos básicos, coleções, atributos personalizados, formatação, atributos de segurança, fluxos de E / S, manipulação de strings e muito mais.

FCL :

A biblioteca de classes do .NET Framework é exatamente o que seu nome sugere: uma biblioteca de classes e outros tipos que os desenvolvedores podem usar para tornar suas vidas mais fáceis. Embora essas classes sejam escritas em C #, elas podem ser usadas em qualquer linguagem baseada em CLR

Você usará o BCL com algumas partes do FCL com cada tipo de projeto. Portanto, System.Windows.Forms (uma biblioteca separada) ou System.Web, com o BCL de mscorlib e System.dll

Chris S
fonte
4
Na Microsoft, acredito que a equipe CLR possui o BCL, enquanto muitas equipes possuem diferentes partes do FCL.
rjdevereux
22

BCL significa biblioteca de classes base, também conhecida como biblioteca de classes (CL). BCL é um subconjunto da biblioteca de classes do Framework (FCL). A biblioteca de classes é a coleção de tipos reutilizáveis ​​que estão intimamente integrados ao CLR. A biblioteca Base Class fornece classes e tipos que são úteis na execução de operações do dia a dia, por exemplo, lidar com strings e tipos primitivos, conexão de banco de dados, operações IO.

enquanto a biblioteca de classes do Framework contém milhares de classes usadas para construir diferentes tipos de aplicativos e fornece todas as funcionalidades e serviços básicos que o aplicativo precisa. FCL inclui aulas e serviços para oferecer suporte a diferentes variedades de aplicativos, por exemplo

  • Aplicativo de desktop,

  • Aplicativo da Web (ASP.Net, MVC, WCF),

  • Aplicativo móvel,

  • Aplicativo do Xbox,

  • serviços do Windows etc.

Mais detalhes em O que é BCL / CL em .Net?

insira a descrição da imagem aqui

Ashish Shukla
fonte
Ashish: você pode fornecer algumas respostas mais descritivas sobre BCL
amitguptageek
4
bom, uma imagem vale mais que mil palavras
mkb
@amitguptageek você pode verificar mais detalhes em modernpathshala.com/Forum/Thread/Interview/7307/…
Ashish Shukla
13

A Base Class Library (BCL) é o conjunto principal de classes que servem como API básica do Common Language Runtime. As classes em mscorlib.dll e algumas das classes em System.dll e System.core.dll são consideradas parte do BCL. Inclui as classes em namespaces como System, System.Diagnostics, System.Globalization, System.Resources, System.Text, System.Runtime.Serialization e System.Data etc.

A Framework Class Library (FCL) é um superconjunto das classes BCL e se refere a toda a biblioteca de classes fornecida com o .NET Framework. Inclui um conjunto expandido de bibliotecas, incluindo Windows Forms, ADO.NET, ASP.NET, Language Integrated Query, Windows Presentation Foundation, Windows Communication Foundation entre outros.

Portanto, existem diferenças e você não deve usá-las de forma intercambiável.

Praveen Prajapati
fonte
12

O BCL é um subconjunto do FCL. A BCL honra a especificação ECMA para a infraestrutura de linguagem comum. Em seguida, a Microsoft adicionou todas as suas qualidades, como dados e xml, e chamou-a de Framework Class Library. Basicamente, eles pegaram o BCL e subiram para 11!

Joshua Belden
fonte
2
Obrigado, o que você quer dizer com "vá para 11"?
Joan Venge
10
Referência do Spinal Tap
Chris S
1
Não ouvi esse. Você pode me dizer o que significa para que eu não fique de fora?
Joan Venge
8
Então, no filme 'This is Spinal Tap', que é um olhar satírico sobre bandas de heavy metal em um estilo mock-umentary, o guitarrista (Nigel Tufnel) mostra um amplificador que ele fez especialmente para Marty DiBergi: Nigel Tufnel: os números todos vão para onze. Olha, do outro lado da placa, onze, onze, onze e ... Marty DiBergi: Oh, entendo. E a maioria dos amplificadores vai até dez? : Exatamente. : Isso significa que está mais alto? Está mais alto? : Bem, é um mais alto, não é?
Ichorus
1
@Ichorus, mas por que eles simplesmente não tornam dez mais altos?
Simon Bosley
8

O seguinte é citado do livro "The C # Player's Guide".

O BCL contém todos os tipos integrados, arrays, exceções, bibliotecas matemáticas, E / S de arquivo básico, segurança, coleções, reflexão, rede, manipulação de string, threading e muito mais. Embora não seja um guia perfeito, uma regra geral é que qualquer namespace que comece com System faz parte do BCL.

Além do BCL, existem muitas outras classes fornecidas pela Microsoft com o .NET Framework. Em geral, essas coisas adicionais cobrem amplas áreas funcionais, como acesso a banco de dados ou interfaces gráficas de usuário (Windows Forms ou WPF). Essa coleção inteira, incluindo o BCL, é chamada de Framework Class Library, ou FCL. Em uma discussão casual, às vezes as pessoas usam FCL e BCL alternadamente, o que não é estritamente correto, mas talvez seja bom o suficiente para a maioria das coisas.

user1899020
fonte