دعني أخبرك أيها القارئ العزيز أن مفتاحك الذهبي لدخول عالم البرمجة من أوسع أبوابه باستخدام لغات الدوت نت هو معرفتك لمجالات الأسماء 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+ و التعامل مع شكل و حجم و الأدوات الى غيرها من الخصائص (سوف تنعرف عليها بالتفصيل في دروس قادمة)
و غيرها الكثير و التي سنتعرف على البعض منها و التي نحتاجها كتيرا في مشاريعنا المختلفة في الدروس القادمة بعون الله
للتعمق في هذا الموضوع و التعرف أكثر على باقي مجالات الأسماء بالتفصيل قم بزيارة الرابط التالي :
و لنا متابعة...
ليست هناك تعليقات:
إرسال تعليق