BCL (biblioteca de clases base) vs FCL (biblioteca de clases de marco)

98

¿Cuál es la diferencia entre los dos? ¿Podemos usarlos indistintamente?

Joan Venge
fuente

Respuestas:

98

La biblioteca de clases base (BCL) es literalmente eso, la base. Contiene tipos básicos y fundamentales como System.Stringy System.DateTime.

La Biblioteca de clases de Framework (FCL) es la biblioteca más amplia que contiene la totalidad: ASP.NET, WinForms, la pila XML, ADO.NET y más. Se podría decir que el FCL incluye el BCL.

Andrew Webb
fuente
35
En un nivel simple, .NET Framework = bibliotecas (FCL, BCL), compiladores de lenguaje (C #, VB.NET) y Common Language Runtime (CLR). Además, está todo el ecosistema que lo rodea: Visual Studio, Ayuda de MSDN y más.
Andrew Webb
1
@JoanVenge BCL es un subconjunto de FCL; BCL es un subcomponente de FCL, no un componente separado en su conjunto.
iliketocode
26

BCL :

Una biblioteca de .NET Framework, BCL es el estándar para la biblioteca en tiempo de ejecución de C # y una de las bibliotecas estándar de Common Language Infrastructure (CLI). BCL proporciona tipos que representan los tipos de datos CLI integrados, acceso básico a archivos, colecciones, atributos personalizados, formato, atributos de seguridad, flujos de E / S, manipulación de cadenas y más.

FCL :

La biblioteca de clases de .NET Framework es exactamente lo que sugiere su nombre: una biblioteca de clases y otros tipos que los desarrolladores pueden usar para hacerles la vida más fácil. Si bien estas clases están escritas en C #, se pueden usar desde cualquier lenguaje basado en CLR

Utilizará el BCL con algunas partes del FCL con cada tipo de proyecto. Entonces System.Windows.Forms (una biblioteca separada) o System.Web, con el BCL de mscorlib y System.dll

Chris S
fuente
4
En Microsoft, creo que el equipo CLR es propietario de BCL, mientras que muchos equipos poseen diferentes partes de FCL.
rjdevereux
22

BCL significa biblioteca de clases base, también conocida como biblioteca de clases (CL). BCL es un subconjunto de la biblioteca de clases de Framework (FCL). La biblioteca de clases es la colección de tipos reutilizables que están estrechamente integrados con CLR. La biblioteca Base Class proporciona clases y tipos que son útiles para realizar operaciones diarias, por ejemplo, tratar con tipos primitivos y de cadena, conexión de base de datos, operaciones de E / S.

mientras que la biblioteca de clases Framework contiene miles de clases que se utilizan para crear diferentes tipos de aplicaciones y proporciona todas las funcionalidades y servicios básicos que la aplicación necesita. FCL incluye clases y servicios para admitir diferentes variedades de aplicaciones, por ejemplo

  • Aplicación de escritorio,

  • Aplicación web (ASP.Net, MVC, WCF),

  • Aplicación movil,

  • Aplicación Xbox,

  • servicios de windows, etc.

Más detalles en ¿Qué es BCL / CL en .Net?

ingrese la descripción de la imagen aquí

Ashish Shukla
fuente
ashish: ¿puede proporcionar una respuesta más descriptiva sobre BCL?
amitguptageek
4
agradable, una imagen vale más que mil palabras
mkb
@amitguptageek puede consultar más detalles en modernpathshala.com/Forum/Thread/Interview/7307/…
Ashish Shukla
13

La biblioteca de clases base (BCL) es el conjunto básico de clases que sirven como API básica de Common Language Runtime. Las clases de mscorlib.dll y algunas de las clases de System.dll y System.core.dll se consideran parte de BCL. Incluye las clases en espacios de nombres como System, System.Diagnostics, System.Globalization, System.Resources, System.Text, System.Runtime.Serialization y System.Data, etc.

La biblioteca de clases de Framework (FCL) es un superconjunto de las clases de BCL y hace referencia a la biblioteca de clases completa que se envía con .NET Framework. Incluye un conjunto ampliado de bibliotecas, que incluye Windows Forms, ADO.NET, ASP.NET, Language Integrated Query, Windows Presentation Foundation, Windows Communication Foundation, entre otros.

Entonces hay diferencias y no debe usarlas indistintamente.

Praveen Prajapati
fuente
12

El BCL es un subconjunto del FCL. BCL respeta la especificación ECMA para la infraestructura de lenguaje común. Luego, Microsoft agregó todas sus bondades como datos y xml y lo llamó Framework Class Library. Básicamente, tomaron el BCL y lo hicieron pasar al 11.

Joshua Belden
fuente
2
Gracias, ¿qué quieres decir con "ir al 11"?
Joan Venge
10
Referencia de Spinal Tap
Chris S
1
No he escuchado eso. ¿Puedes decirme qué significa para que no me quede fuera?
Joan Venge
8
Entonces, en la película 'This is Spinal Tap', que es una mirada satírica a las bandas de heavy metal en un estilo falso documental, el guitarrista (Nigel Tufnel) muestra un amplificador que había hecho especialmente para Marty DiBergi: Nigel Tufnel: Los números todos van a las once. Mira, en todos los ámbitos, once, once, once y ... Marty DiBergi: Oh, ya veo. ¿Y la mayoría de los amplificadores llegan a diez? : Exactamente. : ¿Eso significa que es más fuerte? ¿Es más fuerte? : Bueno, es uno más fuerte, ¿no?
Ichorus
1
@Ichorus, pero ¿por qué no hacen diez más fuerte?
Simon Bosley
8

Lo siguiente se cita del libro "The C # Player's Guide".

El BCL contiene todos los tipos integrados, matrices, excepciones, bibliotecas matemáticas, E / S de archivos básica, seguridad, colecciones, reflexión, redes, manipulación de cadenas, subprocesos y más. Si bien no es una guía perfecta, una regla general es que cualquier espacio de nombres que comience con System es parte de BCL.

Más allá de BCL, hay muchas más clases que Microsoft incluye con .NET Framework. En general, estas cosas adicionales cubren amplias áreas funcionales, como el acceso a la base de datos o las interfaces gráficas de usuario (Windows Forms o WPF). Toda esta colección, incluida la BCL, se denomina Framework Class Library o FCL. En una discusión informal, a veces la gente usa FCL y BCL indistintamente, lo cual no es estrictamente correcto, pero quizás sea lo suficientemente bueno para la mayoría de las cosas.

usuario1899020
fuente