BCL (Basisklassenbibliothek) vs FCL (Framework Class Library)


98

Was ist der Unterschied zwischen den beiden? Können wir sie austauschbar verwenden?

Antworten:


98

Die Basisklassenbibliothek (BCL) ist buchstäblich die Basis. Es enthält grundlegende, grundlegende Typen wie System.Stringund System.DateTime.

Die Framework Class Library (FCL) ist die umfassendere Bibliothek, die die Gesamtheit enthält: ASP.NET, WinForms, den XML-Stack, ADO.NET und mehr. Man könnte sagen, dass die FCL die BCL enthält.


35
Auf einer einfachen Ebene sind .NET Framework = Bibliotheken (FCL, BCL), Sprachcompiler (C #, VB.NET) und Common Language Runtime (CLR). Außerdem gibt es das gesamte Ökosystem, das das umgibt: Visual Studio, MSDN-Hilfe und mehr.
Andrew Webb

1
@JoanVenge BCL ist eine Teilmenge von FCL; BCL ist eine Unterkomponente von FCL, keine separate Komponente insgesamt.
Iliketocode

26

BCL :

BCL ist eine .NET Framework-Bibliothek und der Standard für die C # -Runtime-Bibliothek sowie eine der CLI-Standardbibliotheken (Common Language Infrastructure). BCL bietet Typen, die die integrierten CLI-Datentypen, den grundlegenden Dateizugriff, Sammlungen, benutzerdefinierte Attribute, Formatierungen, Sicherheitsattribute, E / A-Streams, Zeichenfolgenmanipulation und mehr darstellen.

FCL :

Die .NET Framework-Klassenbibliothek ist genau das, was der Name andeutet: eine Bibliothek mit Klassen und anderen Typen, mit denen Entwickler ihr Leben erleichtern können. Während diese Klassen selbst in C # geschrieben sind, können sie aus jeder CLR-basierten Sprache verwendet werden

Sie verwenden die BCL mit einigen Teilen der FCL für jeden Projekttyp. Also System.Windows.Forms (eine separate Bibliothek) oder System.Web mit der BCL von mscorlib und System.dll


4
Ich glaube, dass das CLR-Team bei Microsoft die BCL besitzt, während viele Teams verschiedene Teile der FCL besitzen.
rjdevereux

22

BCL steht für Base Class Library, auch als Class Library (CL) bekannt. BCL ist eine Teilmenge der Framework-Klassenbibliothek (FCL). Klassenbibliothek ist die Sammlung wiederverwendbarer Typen, die eng in CLR integriert sind. Die Basisklassenbibliothek bietet Klassen und Typen, die bei der Durchführung der täglichen Operationen hilfreich sind, z. B. beim Umgang mit Zeichenfolgentypen und primitiven Typen, Datenbankverbindungen und E / A-Operationen.

Die Framework-Klassenbibliothek enthält Tausende von Klassen, die zum Erstellen verschiedener Anwendungstypen verwendet werden, und bietet alle grundlegenden Funktionen und Dienste, die die Anwendung benötigt. FCL umfasst Klassen und Dienste zur Unterstützung verschiedener Anwendungsvielfalt, z

  • Desktopanwendung,

  • Webanwendung (ASP.Net, MVC, WCF),

  • Mobile Applikation,

  • Xbox-Anwendung,

  • Windows-Dienste usw.

Weitere Details finden Sie unter Was ist BCL / CL in .Net?

Geben Sie hier die Bildbeschreibung ein


ashish: können Sie eine beschreibendere Antwort über BCL geben
amitguptageek

4
schön, ein Bild
sagt mehr

@amitguptageek Sie können weitere Details unter modernpathshala.com/Forum/Thread/Interview/7307/…
Ashish Shukla

13

Die Basisklassenbibliothek (BCL) ist der Kernsatz von Klassen, die als Basis-API für die Common Language Runtime dienen. Die Klassen in mscorlib.dll und einige der Klassen in System.dll und System.core.dll werden als Teil der BCL betrachtet. Es enthält die Klassen in Namespaces wie System, System.Diagnostics, System.Globalization, System.Resources, System.Text, System.Runtime.Serialization und System.Data usw.

Die Framework Class Library (FCL) ist eine Obermenge der BCL-Klassen und bezieht sich auf die gesamte Klassenbibliothek, die im Lieferumfang von .NET Framework enthalten ist. Es enthält eine erweiterte Reihe von Bibliotheken, darunter Windows Forms, ADO.NET, ASP.NET, Sprachintegrierte Abfrage, Windows Presentation Foundation und Windows Communication Foundation.

Es gibt also Unterschiede, die Sie nicht austauschbar verwenden dürfen.


12

Die BCL ist eine Teilmenge der FCL. BCL erkennt die ECMA-Spezifikation für die gemeinsame Sprachinfrastruktur an. Dann fügte Microsoft all ihre Güte wie Daten und XML hinzu und nannte es die Framework-Klassenbibliothek. Im Grunde genommen haben sie die BCL genommen und es auf 11 geschafft!


2
Danke, was meinst du mit "gehe zu 11"?
Joan Venge

10
Spinal Tap Referenz
Chris S

1
Hab das noch nicht gehört. Können Sie mir sagen, was es bedeutet, damit ich nicht ausgelassen werde?
Joan Venge

8
In dem Film 'This is Spinal Tap', der einen satirischen Blick auf Heavy-Metal-Bands in einem nachgebildeten Stil zeigt, zeigt der Gitarrist (Nigel Tufnel) einen Verstärker, den er speziell für Marty DiBergi hergestellt hat: Nigel Tufnel: Die Zahlen alle gehen bis elf. Schauen Sie, auf der ganzen Linie, elf, elf, elf und ... Marty DiBergi: Oh, ich verstehe. Und die meisten Verstärker gehen bis zu zehn? : Genau. : Heißt das, es ist lauter? Ist es lauter? : Nun, es ist etwas lauter, nicht wahr?
Ichorus

1
@Ichorus aber warum machen sie nicht einfach zehn lauter?
Simon Bosley

8

Das Folgende wird aus dem Buch "The C # Player's Guide" zitiert.

Die BCL enthält alle integrierten Typen, Arrays, Ausnahmen, mathematischen Bibliotheken, grundlegenden Datei-E / A, Sicherheit, Sammlungen, Reflektion, Netzwerk, String-Manipulation, Threading und mehr. Obwohl dies kein perfekter Leitfaden ist, lautet eine allgemeine Regel, dass jeder Namespace, der mit System beginnt, Teil der BCL ist.

Über die BCL hinaus gibt es viele weitere Klassen, die Microsoft mit .NET Framework liefert. Im Allgemeinen decken diese zusätzlichen Dinge breite Funktionsbereiche ab, wie z. B. Datenbankzugriff oder grafische Benutzeroberflächen (Windows Forms oder WPF). Diese gesamte Sammlung, einschließlich der BCL, wird als Framework Class Library (FCL) bezeichnet. In gelegentlichen Diskussionen werden FCL und BCL manchmal synonym verwendet, was nicht unbedingt korrekt ist, aber für die meisten Dinge vielleicht gut genug.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.