مكتبة الصفوف الأساسية

مكتبة الصفوف الأساسية (بالإنجليزية: Base Class Library)‏ أو اختصاراً (BCL) هي مكتبة قياسية وإحدى مكتبات البنية التحتية المشتركة للغات (CLI) المتوفرة لكافة لغات CLI.[1][2][3] تتضمن CLI هذه المكتبة بهدف تغليف الوظائف البرمجية الشائعة كالقراءة من والكتابة إلى الملفات ومعالجة الصور والتعامل مع قواعد البيانات والتلاعب بملفات XML مما يسهل عمل المبرمج. تغطي هذه المكتبة عدداً كبيراً من الوظائف وتعتبر ضخمة بالمقارنة مع المكتبات القياسية الخاصة بلغات برمجة أخرى بما في ذلك لغة سي++، كما أنها تشابه من ناحية الوظيفية المكتبات القياسية للغة جافا. تعود جذور هذه المكتبة إلى إطار عمل دوت نت بسبب كونه أول تحقيق من CLI. يشار إلى هذه المكتبة بشكل خاطئ أحياناً بأنها مكتبة صفوف إطار العمل (بالإنجليزية: Framework Class Library)‏ أو اختصاراً (FCL)، ولكن FCL في الواقع مكتبة أكثر شمولاً وتتضمن بعض فضاءات التسمية الخاصة بمايكروسوفت.

خريطة مكتبة الصفوف الأساسية

يتم تحديث مكتبة BCL مع كل إصدار جديد من إطار عمل دوت نت.

فضاءات الأسماء

لم تقم مايكروسوفت بالإشارة صراحةً إلى كون بعض فضاءات الأسماء جزء من BCL إلا أن هذه فضاءات الأسماء هذه موجودة فعلاً ضمن تحقيق CLI ألا وهو إطار عمل دوت نت.

فضاءات الأسماء المعيارية

فيما يلي قائمة بفضاءات الأسماء المعيارية كما وردت في المعيارين ECMA 335 وISO/IEC 23271:2006:

System

يتضمن فضاء الأسماء هذا الحاجات البرمجية الأساسية حيث يحتوي على الأنماط الأساسية مثل String وDateTime وBoolean وغيرها بالإضافة إلى الوظائف الحسابية والصفوف الأساسية الخاصة بالسمات (بالإنجليزية: Attributes)‏ والاستثناءات والمصفوفات كما أنه يدعم عدداً من البيئات كالكونسول.

System.Collections

يحتوي هذا الفضاء على الحاويات الشائعة المستخدمة في البرمجة كالقوائم والأرتال والمكدسات وجداول هاش والقواميس بالإضافة إلى دعم الأنماط العامة.

System.Diagnostics

توفر دعماً لتفحص التطبيقات حيث تتضمن تسجيلاً للأحداث وعدادات الأداء وتتبع الإجراءات والتفاعل معها.

System.Globalization

توفر دعماً لكتابة تطبيقات معولمة. حيث يمكن تعريف «معلومات متعلقة بالثقافة بما فيها اللغة، الدولة والإقليم والتقويم المستخدم، [بالإضافة إلى] نماذج تنسيق الوقت والعملة والأرقام».

System.IO

يتيح فضاء الأسماء هذا القراءة من والكتابة إلى مجارٍ متعددة مثل مجاري الملفات والبيانات. كما يوفر اتصالاً بنظام الملفات.

System.Net

يقدم واجهةً إلى «العديد من البروتوكولات المستخدمة في الشبكات في يومنا هذا» مثل HTTP وFTP وSMTP. كما يدعم الاتصالات الآمنة عبر بروتوكولات أخرى مثل بروتوكول SSL.

System.Reflection

يوفر فضاء التسمية هذا إمكانية تفحص الطرق والأنماط والحقول الخاصة بالكائنات وقت التنفيذ و«قابلية إنشاء واستدعاء الأنماط وقت التنفيذ». حيث يعرض واجهة برمجية تمكن من استخدام ميزات البرمجة الانعكاسية الخاصة بوقت التنفيذ المشترك للغات CLR.

System.Runtime

يمكن من إدارة أداء تطبيق ما أو وقت التنفيذ المشترك للغات CLR أثناء التنفيذ. بعض الميزات لديها القدرة على العمل مع كائنات COM أو الكود المحلي (غير المدار) بالإضافة إلى كتابة تطبيقا موزعة وسَلسَلة الكائنات بتنسيق كود ثنائي أو SOAP.

System.Security

يوفر البنية التحتية لنظام الأمن الخاصة بوقت التنفيذ المشترك للغات حيث يتيح فضاء الأسماء هذا إمكانية بناء إجراءات الحماية والأمن ضمن التطبيقات وفق سياسات وسماحيات معينة. بالإضافة إلى تقديمه خدمات أخرى كالتعمية.

System.Text

يقدم ترميزات نصية مختلفة وتعابير نمطية بالإضافة إلى تقنيات تلاعب بالسلاسل النصية فعالة (StringBuilder).

System.Threading

يساعد في تيسير البرمجة متعددة الخيوط. كما يتيح إمكانية مزامنة «نشاطات الخيوط والولوج إلى البيانات» ويوفر «تجمعاً من الخيوط المقدمة من نظام التشغيل».

System.Xml

يقدم دعماً معيارياً للتعامل مع XML بما فيها «القراءة والكتابة ومخططات XML والسلسلة والبحث والتحويل».

System.Diagnostics.CodeAnalysis

يتضمن صفوفاً خاصة بالتفاعل مع أدوات تحليل الكود. تستخدم هذه الأدوات لتحليل فيما إذا الكود متوافقاً مع سياسات معينة كطريقة التسمية وقواعد الأمان.

System.Diagnostics.Contracts

يتضمن صفوفاً استاتيكية تقوم بتمثيل قيود برمجية معينة كالشروط المسبقة (بالإنجليزية: Preconditions)‏ والشروط اللاحقة (بالإنجليزية: Postconditions)‏ واللامتغيرات (بالإنجليزية: Invariants)‏.

System.Diagnostics.Eventing

يتضمن صفوفاً تستخدم لتفحص البرنامج أثناء عمله. أثناء التفحص تكتب الأحداث إلى سجلات خاصة بنظام تتبع أحداث ويندوز (بالإنجليزية: Event Tracing for Windows)‏.

System.Diagnostics.PerformaceData

يعرض فضاء الأسماء هذا مجموعة من الصفوف التي توفر عدادات للبيانات، تستخدم هذه العدادات لإعطاء معلومات عن أداء البرنامج يمكن استخدامها من قبل برمجيات أخرى مثل Performance Monitor.

System.Diagnostics.SymbolStore

يقدم مجموعة من الصفوف التي تتيح إمكانية قراءة وكتابة معلومات التنقيح مثل إدراج رقم سطر الكود المصدري ضمن خرائط اللغة الوسيطة العامة. يمكن للمصرفات التي تستهدف إطار تطوير دوت نت تخزين هذه المعلومات في ملفات بتنسيق PDB. يمكن للمنقحات ومتفصحات الأداء قراءة هذه المعلومات أثناء تنفيذ البرنامج.

فضاءات الأسماء الغير معيارية

فيما يلي قائمة بفضاءات الأسماء التي لم تورد في معيار ECMA ولا في معيار ISO إنما هي حصرية بتحقيق مايكروسوفت فقط. على الرغم من أن تحقيق هذه الفضاءات ليس أمراً إجبارياً كونها ليست جزءاً من معيار اللغة إلا أن قسماً من تحقيقات دوت نت الأخرى (مثل مونو) قد قامت بتحقيق بعض فضاءات الأسماء هذه بشكل كامل أو جزئي.

System.CodeDom

تتيح هذه المكتبة إمكانية إنشاء كود وتنفيذه أثناء التنفيذ.

System.ComponentModel

تتيح إمكانية برمجة المكونات والتحكمات الخاصة بوقت التنفيذ وكذلك وقت التصميم. حيث أنها تشكل البنية التحتية «لتحقيق سمات المكونات وعمليات التحويل الخاصة بها وعمليات الربط مع مصادر البيانات بالإضافة إلى عمليات الترخيص».

System.Configuration

يوفر البنية التحتية الضرورية للتعامل مع بيانات الإعدادات

System.Data

يمثل فضاء الأسماء هذا المعمارية الخاصة بآدو دوت نت حيث تشتمل على عدة مكونات برمجية يمكن للمبرمج استخدامها من أجل الولوج للبيانات وخدمات البيانات.

System.Deployment

يتيح إمكانية التحكم بكيفية قيام التطبيق بعملية التحديث عبر استخدام تقنية كليك وانس.

System.DirectoryServices

يتيح ولوجاً مبسطاُ من الكود المُدار إلى أكتيف ديريكتوري.

System.Drawing

يعرض فضاء التسمية هذا الوظيفية الخاصية بواجهة +GDI الرسومية بما في ذلك من رسوميات ثنائية الأبعاد ورسوميات متجهية والصور والطباعة والخدمات النصية.

System.EnterpriseServices

يتيح فضاء التسمية هذا إمكانية ولوج كائنات دوت نت إلى خدمات +COM مما يجهل بيئة تطوير دوت نت أكثر ملاءمة للتطبيقات الخاصة بالشركات

System.Linq

يعرّف هذا الفضاء الواجهة <IQueryable<T والطرق المرتبطة بها والتي تمكن مزودي خدمات لينك من توفير خدماتهم للمطور.

System.Linq.Expressions

يسمح هذا الفضاء بتمثيل مؤشرات التوابع (بالإنجليزية: Delegates)‏ وتعابير لامبدا ضمن أشجاء التعابير مما يمكن من فحص ومعالجة الكود عالي المستوى أثناء التنفيذ.

System.Managment

يتيح إمكانية الحصول عن معلومات النظام، "كالمساحة المتبقية من القرص أو مقدار الانتفاع (بالإنجليزية: Utilization)‏ من المعالج أو هوية قاعدة البيانات التي يتصل بها البرنامج بالإضافة إلى العديد من الوظائف الأخرى".

System.Media

يتيح إمكانية لعب أصوات النظام وملفات WAV.

System.Messaging

يتيح إمكانية "الاتصال ومراقبة وإدارة أرتال الرسائل الموجودة في الشبكة بالإضافة إلى إرسال واستقبال واختلاس النظر (بالإنجليزية: peek)‏ إلى الرسائل". لهذه الوظيفية اسم آخر وهو Net Remoting. حلت مكتبة أساسيات اتصال ويندوز مكان هذا الفضاء.

System.Resources

يتيح معالجة موارد التطبيق بهدف عولمته إلى ثقافات ولغات متعددة.

System.ServiceProcess

يتيح إنشاء التطبيقات التي تعمل كخدمة ضمن نظام التشغيل ويندوز.

System.Timers

يتيح إمكانية القيام بحدث ما خلال فترات زمنية محددة.

System.Transactions

يوفر دعماً للمناقلات الموزعة

System.Web

يوفر العديد من المكتبات البرمجية المتعلقة بالوب. حيث يتيح إمكانيات الاتصال بين المتصفح والمخدم وإنشاء خدمات الوب المبنية باستخدام لغة الترميز القابلة للامتداد، يشار إلى معظم هذه المكتبات باسم معمارية إيه إس بي دوت نت.

System.Windows.Forms

يتضمن فضاء التسمية هذا معمارية ويندوز فورمز والتي توفر ولوجاً إلى عناصر واجهة ويندوز الأساسية حيث تقوم بتغليف واجهة برمجة التطبيقات الخاصة بويندوز الحالية. تتيح هذه الواجهة إمكانية كتابة تطبيقات ويندوز رسومية باستخدام الكود المُدار. حلت مكتبة بنية عروض ويندوز مكان هذا الفضاء.

مراجع

  1. ^ "IV.5.10 Parallel library". Standard ECMA-335 – سي إل أي (CLI) (Technical report) (ط. 6th). Ecma International. يونيو 2012. ص. 441.
  2. ^ "IV.3.2 The Compact Profile". Standard ECMA-335 – سي إل أي (CLI) (Technical report) (ط. 6th). Ecma International. يونيو 2012. ص. 437.
  3. ^ "IV.3.1 The Kernel Profile". Standard ECMA-335 – سي إل أي (CLI) (Technical report) (ط. 6th). Ecma International. يونيو 2012. ص. 437.