BCL (biblioteka klas podstawowych) vs FCL (biblioteka klas struktury)

98

Jaka jest różnica między nimi? Czy możemy ich używać zamiennie?

Joan Venge
źródło

Odpowiedzi:

98

Biblioteka klas bazowych (BCL) jest dosłownie podstawą. Zawiera podstawowe, podstawowe typy, takie jak System.Stringi System.DateTime.

Framework Class Library (FCL) to szersza biblioteka zawierająca całość: ASP.NET, WinForms, stos XML, ADO.NET i inne. Można powiedzieć, że FCL obejmuje BCL.

Andrew Webb
źródło
35
Na prostym poziomie, .NET Framework = biblioteki (FCL, BCL), kompilatory języków (C #, VB.NET) i Common Language Runtime (CLR). Poza tym jest cały ekosystem, który to otacza: Visual Studio, pomoc MSDN i nie tylko.
Andrew Webb
1
@JoanVenge BCL jest podzbiorem FCL; BCL jest podskładnikiem FCL, a nie jako oddzielny składnik razem.
iliketocode
26

BCL :

Biblioteka .NET Framework, BCL, jest standardem dla biblioteki środowiska wykonawczego C # i jedną ze standardowych bibliotek Common Language Infrastructure (CLI). BCL zapewnia typy reprezentujące wbudowane typy danych CLI, podstawowy dostęp do plików, kolekcje, atrybuty niestandardowe, formatowanie, atrybuty zabezpieczeń, strumienie we / wy, operacje na ciągach i inne.

FCL :

Biblioteka klas .NET Framework jest dokładnie tym, co sugeruje jej nazwa: biblioteką klas i innych typów, których programiści mogą używać, aby ułatwić sobie życie. Chociaż te klasy są napisane w języku C #, mogą być używane z dowolnego języka opartego na CLR

Będziesz używać BCL z niektórymi częściami FCL w każdym typie projektu. Czyli System.Windows.Forms (oddzielna biblioteka) lub System.Web, z BCL z mscorlib i System.dll

Chris S.
źródło
4
W firmie Microsoft uważam, że zespół CLR jest właścicielem BCL, podczas gdy wiele zespołów posiada różne części FCL.
rjdevereux
22

BCL oznacza bibliotekę klas bazowych, znaną również jako biblioteka klas (CL). BCL jest podzbiorem biblioteki klas Framework (FCL). Biblioteka klas to kolekcja typów wielokrotnego użytku, które są ściśle zintegrowane z CLR. Biblioteka klas bazowych zawiera klasy i typy, które są pomocne w wykonywaniu codziennych operacji, np. Zajmowanie się ciągami i typami pierwotnymi, połączenie z bazą danych, operacje IO.

podczas gdy biblioteka klas Framework zawiera tysiące klas używanych do tworzenia różnych typów aplikacji i zapewnia wszystkie podstawowe funkcje i usługi, których potrzebuje aplikacja. FCL obejmuje klasy i usługi obsługujące różne rodzaje aplikacji, np

  • Aplikacja pulpitu,

  • Aplikacja internetowa (ASP.Net, MVC, WCF),

  • Mobilna aplikacja,

  • Aplikacja Xbox,

  • usługi Windows itp.

Więcej szczegółów na stronie Co to jest BCL / CL w .Net?

wprowadź opis obrazu tutaj

Ashish Shukla
źródło
ashish: czy możesz podać bardziej opisową odpowiedź na temat BCL
amitguptageek
4
ładne, obraz jest wart tysiąca słów
mkb
@amitguptageek, możesz sprawdzić więcej szczegółów na modernpathshala.com/Forum/Thread/Interview/7307/ ...
Ashish Shukla
14

Biblioteka klas podstawowych (BCL) to podstawowy zestaw klas, które służą jako podstawowy interfejs API środowiska uruchomieniowego języka wspólnego. Klasy w mscorlib.dll i niektóre z klas w System.dll i System.core.dll są uważane za część BCL. Obejmuje klasy w przestrzeniach nazw, takich jak System, System.Diagnostics, System.Globalization, System.Resources, System.Text, System.Runtime.Serialization i System.Data itp.

Biblioteka klas Framework (FCL) to nadzbiór klas BCL i odnosi się do całej biblioteki klas dostarczanej z .NET Framework. Obejmuje rozszerzony zestaw bibliotek, w tym między innymi Windows Forms, ADO.NET, ASP.NET, Language Integrated Query, Windows Presentation Foundation, Windows Communication Foundation.

Są więc różnice i nie wolno ich używać zamiennie.

Praveen Prajapati
źródło
12

BCL jest podzbiorem FCL. BCL honoruje specyfikację ECMA dotyczącą infrastruktury wspólnego języka. Następnie Microsoft dodał wszystkie ich zalety, takie jak dane i XML i nazwał je biblioteką klas Framework. Zasadniczo wzięli BCL i osiągnęli 11!

Joshua Belden
źródło
2
Dzięki, co masz na myśli, mówiąc „przejdź do 11”?
Joan Venge
10
Odniesienie do Spinal Tap
Chris S,
1
Nie słyszałem tego. Czy możesz mi powiedzieć, co to znaczy, żeby mnie nie pominięto?
Joan Venge
8
Tak więc w filmie `` This is Spinal Tap '', który jest satyrycznym spojrzeniem na zespoły heavy metalowe w udawanym stylu, gitarzysta (Nigel Tufnel) prezentuje wzmacniacz, który zrobił specjalnie dla Marty'ego DiBergiego: Nigel Tufnel: Liczby wszystkie idą do jedenastej. Spójrz, po drugiej stronie tablicy, jedenaście, jedenaście, jedenaście i… Marty DiBergi: Och, rozumiem. A większość wzmacniaczy dochodzi do dziesięciu? : Dokładnie. : Czy to znaczy, że jest głośniejszy? Czy jest głośniej? : Cóż, jest o jeden głośniejszy, prawda?
Ichorus
1
@Ichorus, ale dlaczego po prostu nie zrobią dziesięciu głośniejszych?
Simon Bosley,
8

Poniższe cytaty pochodzą z książki „The C # Player's Guide”.

BCL zawiera wszystkie wbudowane typy, tablice, wyjątki, biblioteki matematyczne, podstawowe operacje we / wy plików, zabezpieczenia, kolekcje, odbicia, sieci, manipulację ciągami, wątki i inne. Chociaż nie jest to doskonały przewodnik, ogólna zasada mówi, że każda przestrzeń nazw, która zaczyna się od System, jest częścią BCL.

Poza BCL istnieje wiele innych klas, które firma Microsoft dostarcza wraz z .NET Framework. Ogólnie te dodatkowe rzeczy obejmują szerokie obszary funkcjonalne, takie jak dostęp do bazy danych lub graficzne interfejsy użytkownika (Windows Forms lub WPF). Cała kolekcja, w tym BCL, nosi nazwę Framework Class Library lub FCL. W swobodnej dyskusji czasami ludzie używają zamiennie FCL i BCL, co nie jest do końca poprawne, ale być może wystarcza do większości rzeczy.

user1899020
źródło