BCL (Base Class Library) เทียบกับ FCL (Framework Class Library)


99

อะไรคือความแตกต่างระหว่างทั้งสอง? เราสามารถใช้แทนกันได้หรือไม่?

คำตอบ:


98

Base Class Library (BCL) เป็นฐานตามตัวอักษร มันมีพื้นฐานประเภทพื้นฐานชอบและSystem.StringSystem.DateTime

Framework Class Library (FCL) เป็นไลบรารีที่กว้างขึ้นซึ่งประกอบด้วยผลรวม: ASP.NET, WinForms, กอง XML, ADO.NET และอื่น ๆ คุณสามารถพูดได้ว่า FCL มี BCL


35
ในระดับง่าย. NET Framework = libraries (FCL, BCL), คอมไพเลอร์ภาษา (C #, VB.NET) และ Common Language Runtime (CLR) นอกจากนี้ยังมี ecosytem ทั้งหมดที่อยู่รอบ ๆ : Visual Studio, MSDN Help และอื่น ๆ
Andrew Webb

1
@JoanVenge BCL เป็นส่วนย่อยของ FCL; BCL เป็นส่วนประกอบย่อยของ FCL ไม่ใช่ส่วนประกอบที่แยกจากกันทั้งหมดเข้าด้วยกัน
iliketocode

26

BCL :

ไลบรารี. NET Framework BCL เป็นมาตรฐานสำหรับไลบรารีรันไทม์ C # และหนึ่งในไลบรารีมาตรฐาน Common Language Infrastructure (CLI) BCL จัดเตรียมประเภทที่แสดงถึงชนิดข้อมูล CLI ในตัวการเข้าถึงไฟล์พื้นฐานคอลเลกชันแอ็ตทริบิวต์แบบกำหนดเองการจัดรูปแบบแอ็ตทริบิวต์ความปลอดภัยสตรีม I / O การจัดการสตริงและอื่น ๆ

FCL :

ไลบรารีคลาส. NET Framework เป็นสิ่งที่ชื่อแนะนำ: ไลบรารีของคลาสและประเภทอื่น ๆ ที่นักพัฒนาสามารถใช้เพื่อทำให้ชีวิตง่ายขึ้น แม้ว่าคลาสเหล่านี้จะเขียนด้วยตัวเองด้วย C # แต่ก็สามารถใช้ได้จากภาษา CLRbased ใดก็ได้

คุณจะใช้ BCL กับบางส่วนของ FCL กับโครงการแต่ละประเภท ดังนั้น System.Windows.Forms (ไลบรารีแยกต่างหาก) หรือ System.Web พร้อม BCL จาก mscorlib และ System.dll


4
ที่ Microsoft ฉันเชื่อว่าทีม CLR เป็นเจ้าของ BCL ในขณะที่หลายทีมเป็นเจ้าของส่วนต่างๆของ FCL
rjdevereux

22

BCLย่อมาจาก Base class library หรือที่เรียกว่า Class library (CL) BCL เป็นชุดย่อยของไลบรารีคลาส Framework (FCL) ไลบรารีคลาสคือชุดของชนิดที่ใช้ซ้ำได้ซึ่งรวมเข้ากับ CLR อย่างใกล้ชิด ไลบรารีคลาสฐานจัดเตรียมคลาสและประเภทที่เป็นประโยชน์ในการดำเนินการแบบวันต่อวันเช่นการจัดการกับสตริงและประเภทดั้งเดิมการเชื่อมต่อฐานข้อมูลการดำเนินการ IO

ในขณะที่ไลบรารีคลาส Framework มีคลาสหลายพันคลาสที่ใช้ในการสร้างแอ็พพลิเคชันประเภทต่างๆและมีฟังก์ชันพื้นฐานและบริการทั้งหมดที่แอปพลิเคชันต้องการ FCL มีคลาสและบริการเพื่อรองรับแอพพลิเคชั่นที่หลากหลายเช่น

  • แอปพลิเคชันเดสก์ท็อป

  • โปรแกรมประยุกต์บนเว็บ (ASP.Net, MVC, WCF),

  • แอปพลิเคชันมือถือ

  • แอปพลิเคชัน Xbox

  • บริการ windows ฯลฯ

รายละเอียดเพิ่มเติมที่BCL / CL ใน. Net คืออะไร?

ป้อนคำอธิบายภาพที่นี่


ashish: คุณช่วยให้คำตอบที่เป็นคำอธิบายเพิ่มเติมเกี่ยวกับ BCL ได้หรือไม่
amitguptageek

4
ดีภาพมีค่าหนึ่งพันคำ
mkb

@amitguptageek สามารถตรวจสอบรายละเอียดเพิ่มเติมได้ที่modernpathshala.com/Forum/Thread/Interview/7307/…
Ashish Shukla

14

Base Class Library (BCL) เป็นชุดหลักของคลาสที่ทำหน้าที่เป็น API พื้นฐานของ Common Language Runtime คลาสใน mscorlib.dll และบางคลาสใน System.dll และ System.core.dll ถือเป็นส่วนหนึ่งของ BCL ประกอบด้วยคลาสในเนมสเปซเช่น System, System.Diagnostics, System.Globalization, System.Resources, System.Text, System.Runtime.Serialization และ System.Data เป็นต้น

Framework Class Library (FCL) เป็นส่วนเหนือของคลาส BCL และอ้างถึงไลบรารีคลาสทั้งหมดที่มาพร้อมกับ. NET Framework ประกอบด้วยชุดไลบรารีที่ขยายออกไปรวมถึง Windows Forms, ADO.NET, ASP.NET, Language Integrated Query, Windows Presentation Foundation, Windows Communication Foundation เป็นต้น

ดังนั้นจึงมีความแตกต่างและคุณต้องไม่ใช้สิ่งเหล่านั้นแทนกัน


12

BCL เป็นส่วนย่อยของ FCL BCL เป็นไปตามข้อกำหนด ECMA สำหรับโครงสร้างพื้นฐานภาษาทั่วไป จากนั้น Microsoft ได้เพิ่มความดีทั้งหมดของพวกเขาเช่น data และ xml และเรียกมันว่า Framework Class Library โดยทั่วไปพวกเขาใช้ BCL และทำให้มันไปที่ 11!


2
ขอบคุณ "ไปที่ 11" หมายความว่าอย่างไร
Joan Venge

11
อ้างอิง Spinal Tap
Chris S

1
ยังไม่เคยได้ยินเลย บอกฉันได้ไหมว่ามันหมายความว่ายังไงฉันจึงไม่ถูกทิ้ง
Joan Venge

8
ดังนั้นในภาพยนตร์เรื่อง 'This is Spinal Tap' ซึ่งเป็นการเสียดสีวงดนตรีเฮฟวี่เมทัลในสไตล์ล้อเลียนนักกีตาร์ (ไนเจลทัฟเนล) จึงแสดงแอมป์ที่เขาทำขึ้นเป็นพิเศษสำหรับ Marty DiBergi: Nigel Tufnel: The numbers ทั้งหมดไปที่สิบเอ็ด ดูตรงข้ามกระดานสิบเอ็ดสิบเอ็ดสิบเอ็ดและ ... Marty DiBergi: โอ้ฉันเข้าใจแล้ว และแอมป์ส่วนใหญ่สูงถึงสิบ? : แน่นอน : หมายความว่าดังกว่าเหรอ? ดังกว่ามั้ย? : ก็มันดังกว่าไม่ใช่เหรอ?
Ichorus

1
@Ichorus แต่ทำไมพวกเขาถึงไม่ดังขึ้นสักสิบ
Simon Bosley

8

ต่อไปนี้อ้างจากหนังสือ "The C # Player's Guide"

BCL ประกอบด้วยชนิดในตัวอาร์เรย์ข้อยกเว้นไลบรารีคณิตศาสตร์ I / O ไฟล์พื้นฐานการรักษาความปลอดภัยคอลเลกชันการสะท้อนเครือข่ายการจัดการสตริงเธรดและอื่น ๆ แม้ว่าจะไม่ใช่แนวทางที่สมบูรณ์แบบ แต่กฎทั่วไปก็คือเนมสเปซใด ๆ ที่ขึ้นต้นด้วยระบบเป็นส่วนหนึ่งของ BCL

นอกเหนือจาก BCL แล้วยังมีคลาสอื่น ๆ อีกมากมายที่ Microsoft มาพร้อมกับ. NET Framework โดยทั่วไปสิ่งเพิ่มเติมเหล่านี้ครอบคลุมพื้นที่การทำงานที่กว้างเช่นการเข้าถึงฐานข้อมูลหรือส่วนติดต่อผู้ใช้แบบกราฟิก (Windows Forms หรือ WPF) คอลเล็กชันทั้งหมดนี้รวมถึง BCL เรียกว่า Framework Class Library หรือ FCL ในการสนทนาแบบสบาย ๆ บางครั้งผู้คนใช้ FCL และ BCL สลับกันได้ซึ่งไม่ถูกต้องอย่างเคร่งครัด แต่อาจดีพอสำหรับสิ่งต่างๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.