Was ist der Unterschied zwischen den beiden? Können wir sie austauschbar verwenden?
Was ist der Unterschied zwischen den beiden? Können wir sie austauschbar verwenden?
Antworten:
Die Basisklassenbibliothek (BCL) ist buchstäblich die Basis. Es enthält grundlegende, grundlegende Typen wie System.String
und 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.
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.
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
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?
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.
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!
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.