BCL (Thư viện lớp cơ sở) so với FCL (Thư viện lớp khung)


98

Sự khác biệt giữa hai là gì? Chúng ta có thể sử dụng chúng thay thế cho nhau không?

Câu trả lời:


98

Thư viện Lớp Cơ sở (BCL) theo nghĩa đen là cơ sở. Nó chứa các kiểu cơ bản, cơ bản như System.StringSystem.DateTime.

Thư viện lớp khung (FCL) là thư viện rộng hơn chứa toàn bộ: ASP.NET, WinForms, ngăn xếp XML, ADO.NET và hơn thế nữa. Bạn có thể nói rằng FCL bao gồm BCL.


35
Ở cấp độ đơn giản, .NET Framework = thư viện (FCL, BCL), trình biên dịch ngôn ngữ (C #, VB.NET) và Common Language Runtime (CLR). Thêm vào đó, có toàn bộ ecosytem bao quanh nó: Visual Studio, MSDN Help, v.v.
Andrew Webb

1
@JoanVenge BCL là một tập con của FCL; BCL là một thành phần con của FCL, không phải là một thành phần riêng biệt cùng nhau.
iliketocode,

26

BCL :

Thư viện .NET Framework, BCL là tiêu chuẩn cho thư viện thời gian chạy C # và một trong những thư viện tiêu chuẩn Cơ sở hạ tầng ngôn ngữ chung (CLI). BCL cung cấp các kiểu đại diện cho kiểu dữ liệu CLI được tích hợp sẵn, quyền truy cập tệp cơ bản, bộ sưu tập, thuộc tính tùy chỉnh, định dạng, thuộc tính bảo mật, luồng I / O, thao tác chuỗi và hơn thế nữa.

FCL :

Thư viện lớp .NET Framework đúng như tên gọi của nó: một thư viện các lớp và các loại khác mà các nhà phát triển có thể sử dụng để làm cho cuộc sống của họ dễ dàng hơn. Mặc dù bản thân các lớp này được viết bằng C #, chúng có thể được sử dụng từ bất kỳ ngôn ngữ dựa trên CLRbased

Bạn sẽ sử dụng BCL với một số phần của FCL với từng loại dự án. Vì vậy, System.Windows.Forms (một thư viện riêng biệt) hoặc System.Web, với BCL từ mscorlib và System.dll


4
Tại Microsoft, tôi tin rằng nhóm CLR sở hữu BCL, trong khi nhiều đội sở hữu các phần khác nhau của FCL.
rjdevereux

22

BCL là viết tắt của thư viện lớp Cơ sở còn được gọi là thư viện lớp (CL). BCL là một tập con của thư viện lớp Framework (FCL). Thư viện lớp là tập hợp các kiểu có thể tái sử dụng được tích hợp chặt chẽ với CLR. Thư viện Base Class cung cấp các lớp và kiểu hữu ích trong việc thực hiện hoạt động hàng ngày, ví dụ như xử lý các kiểu chuỗi và kiểu nguyên thủy, kết nối cơ sở dữ liệu, hoạt động IO.

trong khi thư viện lớp Framework chứa hàng nghìn lớp được sử dụng để xây dựng các loại ứng dụng khác nhau và cung cấp tất cả các chức năng và dịch vụ cơ bản mà ứng dụng cần. FCL bao gồm các lớp và dịch vụ để hỗ trợ nhiều loại ứng dụng khác nhau, ví dụ:

  • Ứng dụng máy tính để bàn,

  • Ứng dụng web (ASP.Net, MVC, WCF),

  • Ứng dụng di động,

  • Ứng dụng Xbox,

  • dịch vụ windows, v.v.

Thông tin chi tiết tại BCL / CL trong .Net là gì?

nhập mô tả hình ảnh ở đây


doy: bạn có thể cung cấp một số câu trả lời mô tả thêm về BCL
amitguptageek

4
tốt đẹp, Một bức tranh có giá trị bằng một nghìn từ
mkb

@amitguptageek bạn có thể kiểm tra thêm chi tiết tại modernpathshala.com/Forum/Thread/Interview/7307/...
Ashish Shukla

13

Thư viện lớp cơ sở (BCL) là tập hợp các lớp cốt lõi đóng vai trò là API cơ bản của Thời gian chạy ngôn ngữ chung. Các lớp trong mscorlib.dll và một số lớp trong System.dll và System.core.dll được coi là một phần của BCL. Nó bao gồm các lớp trong không gian tên như System, System.Diagnostics, System.Globalization, System.Resources, System.Text, System.Runtime.Serialization và System.Data, v.v.

Thư viện lớp khung (FCL) là một tập hợp lớn của các lớp BCL và đề cập đến toàn bộ thư viện lớp đi kèm với .NET Framework. Nó bao gồm một bộ thư viện mở rộng, bao gồm Windows Forms, ADO.NET, ASP.NET, Language Integrated Query, Windows Presentation Foundation, Windows Communication Foundation và những thứ khác.

Vì vậy, có sự khác biệt và bạn không được sử dụng thay thế cho nhau.


12

BCL là một tập con của FCL. BCL tôn vinh đặc tả ECMA cho cơ sở hạ tầng ngôn ngữ chung. Sau đó, Microsoft đã thêm tất cả những gì tốt đẹp của họ như dữ liệu và xml và gọi nó là Thư viện lớp khung. Về cơ bản, họ đã lấy BCL và đưa nó lên 11!


2
Cảm ơn, bạn nói "lên 11" nghĩa là gì?
Joan Venge

10
Tham khảo Spinal Tap
Chris S

1
Chưa nghe thấy cái đó. Bạn có thể cho tôi biết nó có nghĩa là gì để tôi không bị bỏ rơi?
Joan Venge

8
Vì vậy, trong bộ phim 'This is Spinal Tap', một cái nhìn châm biếm về các ban nhạc heavy metal theo phong cách giả lập, nghệ sĩ guitar (Nigel Tufnel) khoe chiếc amp mà anh ấy đã đặc biệt làm cho Marty DiBergi: Nigel Tufnel: Những con số tất cả đi đến mười một. Nhìn này, ngay bên kia bảng, 11, 11, 11 và ... Marty DiBergi: Ồ, hiểu rồi. Và hầu hết các amps tăng lên đến mười? : Chính xác. : Có nghĩa là nó to hơn? Nó có to hơn nữa không? : Chà, nó to hơn một chút, phải không?
Ichorus

1
@Ichorus nhưng tại sao họ không làm to hơn mười?
Simon Bosley

8

Phần sau được trích dẫn từ cuốn sách "Hướng dẫn chơi C #".

BCL chứa tất cả các kiểu tích hợp, mảng, ngoại lệ, thư viện toán học, I / O tệp cơ bản, bảo mật, tập hợp, phản chiếu, mạng, thao tác chuỗi, phân luồng, v.v. Mặc dù không phải là một hướng dẫn hoàn hảo, nhưng một quy tắc chung là bất kỳ không gian tên nào bắt đầu bằng Hệ thống đều là một phần của BCL.

Ngoài BCL, có nhiều lớp khác mà Microsoft cung cấp với .NET Framework. Nói chung, những thứ bổ sung này bao gồm các lĩnh vực chức năng rộng, chẳng hạn như truy cập cơ sở dữ liệu hoặc giao diện người dùng đồ họa (Windows Forms hoặc WPF). Toàn bộ bộ sưu tập này, bao gồm cả BCL, được gọi là Thư viện Lớp Khung, hoặc FCL. Trong cuộc thảo luận thông thường, đôi khi mọi người sử dụng FCL và BCL thay thế cho nhau, điều này không hoàn toàn chính xác, nhưng có lẽ nó đủ tốt cho hầu hết mọi thứ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.