مجالات الأسماء Namespace : مقدمة


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

بيني و بينك أول برنامج قمت بتصميمه بعد معرفتي مباشرة  بمجالات الأسماء هو برنامج لالتقاط الصور من سطح المكتب بمميزات متعددة وبرنامج لارسال الايميل...وغيرها الكثير

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



لنبدأ على بركة الله :


سأضرب لك مثالا عزيزي المبرمج القارئ يوضح المقصود من مجالات الأسماء ..عندما تدخل أحد المكتبات ,ماذا تلاحظ ؟؟
ستلاحظ أنه تم تقسيم المكتبة الى أقسام متنوعة ,قسم التاريخ و يضم جميع  كتب التاريخ المتوفرة بالمكتبة , و قسم الرياضيات و يضم الكتب التي تخص علم الرياضبات ,و قسم الأدب  ,و قسم الرسم , و قسم الحاسب ..الى آخره من الأقسام.
و الفائدة من ذلك :
 الفائدة تكمن في سرعة البحث عن الكتاب  و التسهيل على الزائر  التنقل بسهولة بين الأقسام المتنوعة
و حفظ الكثير  من الوقت و جذب الزائرين الى المكتبة ...الخ من الفوائد

تنتقل الآن الى عالم البرمجة و نطبق عليه المثال السابق  :
      انظروا  الوظائف التالية : فتح ملف , قراءة ملف نصي, زر   , الاتصال بالانترنت  , رسم دائرة , قلم , رسم خط مستقيم ,  
        الاتصال بقاعدة البيانات , حفظ قاعدة البيانات , فرشاة , ارسال ايميل  , حذف مجلد ,  اسم التطبيق , وصف التطبيق  , صندوق النص , صندوق الصورة  , معرفة الــHTML  ... و غيرها الكثير من الوظائف و الخصائص و الفئات المتوفرة بداخل اطار عمل .Net Framework

فهل من العقل أن نترك كل هذه الوظائف و الفئات و الخصائص متناثرة  متبعثرة دون ترتيبها و تصنيفها ...  دعني أخبرك أن اطار عمل .Net Framework  يحتوي على ما يزيد من 3500 Class  ((فئات)) بمفرده . و عند انشائك للتطبيقات المختلفة قد تستخدم أكثر من Class  لذلك سيكون من الصعب عليك ايجاد واستخدام الــclass  الذي تريده كما سيكون مضيعة للوقت أن تقوم بالبحث عن class  من بين 3500 class



لذلك نشأت فكرة انشاء مكتبة ((كما في المثال السابق )) تحتوي على أقسام متنوعة  كل قسم يضم الفئات المتشابهة ...

فتم انشاء مكتبة  كبيرة تحتوي على أقسام متعددة قسم الرسم : وضع فيه عدة الرسم كاملة و تم تسميته  drawing   
وقسم آخر : تحتوي على كل ما يخص الملفات و المجلدات من فتح الملف و قراءته و نسخه و نقله و خذفه و الكتابة عليه و معرفة مؤلفه ...و غيرها و تم تسميته "IO"

وقسم آخر  تضم ال Process وال Counters وال Events   وتم تسميته  Diagnostics   
وقسم آخر  يضم كل ما يتعلق بالتعامل مع النصوص وتم تسميته  .Text  
و تم عمل أقسام  كثيرة متعددة و جمعت في مكتبة كبيرة تم تسميتها SYSTEM

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

   مما سبق يتضح لنا أن  الفكرة من مجالات الاسماء Namespaces تقتضي توزيع الأسماء المتشابهة لمعرفات البرنامج (    كــ classes, structures, enumerations, delegates, interfaces  ) إلى كتل مختلفة تسمى مجال أسماء بحيث تسهل عليك ترتيب أسمائها على مجموعات، وتمكنك أيضا من تعريف أسماء متشابهة لمعرفات مختلفة. لنفرض أنني قلت للفيجوال بيسك Mouse   فهل عرفت المقصود بالماوس هنا هل هو الفأرة ((الماوس))  أم الفأر ((الحيوان))
فلازالة هذا الاشتباك نقول للفيجوال بيسك
Animal. Mouse
Computer. Mouse



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

توضيح :
نريد تصميم برنامج يقوم بفتح ملح نصي و القراءة منه :

نذهب الى مجال الأسماء  system ثم نبحث بداخله عن مجال الأسماء IO   و نبحث بداخله على خاصية فتح الملف و القراءة منه و نقوم بقراءته
   
 وبالمثل  نريد تصميم برنامج يقوم برسم دائرة و تلوينها
الحل :
نحتاج الى  القلم المناسب و الألوان و الورق الذين  سنجدهم جيمعا في القسم drawing   التي توجد داخل المكتبة  system   فنختارهم و نشرع في عملية الرسم


نريد اضافة الأداة Button  الى الــForm  بواسطة الكود  فنذهب الى  SYSTEM namespace  ثم الى WINDOWS namespace     ثم الى Forms namespace  فنجد بداخله جميع الأدوات و منها الأداة button



بالعربي: لو أنا أريد عمل برنامج لارسال الايميل , فماذا أفعل : أذهب الى مكتبة system  ثم أبحث بداخلها عن القسم web   سوف أجد بداخله قسم آخر يسمى mail  أجد بداخله كل ما يخص التعامل مع الايميل مما يسهل لي عملية تصميم هذا البرنامج




بعض مكونات مجال الأسماء System



 
System.Io :  يختص بالقراءة و الكتابة من و الى  ملفات و مجلدات  الكمبيوتر و البيانات المتعددة ((فهو يمكنك من انشاء ملف جديد أوحذفه و نسخه و مفرفة خصائصه و استلام البيانات و ارسالها اليه و التعامل مع الأقراص ...الخ))

SYSTEM.drawing:  يختص بكل ما يتعلق بالرسم   GDI+ و التعامل مع شكل و حجم و الأدوات الى غيرها من الخصائص (سوف تنعرف عليها بالتفصيل في دروس قادمة)

و غيرها الكثير و التي سنتعرف على البعض منها و التي نحتاجها كتيرا في مشاريعنا المختلفة في الدروس القادمة بعون الله

للتعمق في هذا الموضوع و التعرف أكثر على باقي مجالات الأسماء بالتفصيل قم بزيارة الرابط التالي :





و لنا متابعة...

ليست هناك تعليقات:

إرسال تعليق