إن كل الإصدارات الحديثة من لغات البرمجة قد صممت لتعمل فى ظل وجود إطارعمل دوت نت Dot Net Framwork ولكن ماهو هذا الإطار وما هو الدوت نت
من المعنى نستنتج أنة مجال أوحاوية لكن أيضا هناك سؤال أى مجال وإذا كانت حاوية فهى تحوى ماذا
-المجال الذى يجمعنا جميعا ضمن إطار عمل مشترك إذا نستطيع عن بعد المشاركة فى عمل واحد
-الحاوية التى تحوى المعدات التى تلزمنا لإتمام هذا العمل المشترك الذى اشتركنا فية فى السطر السابق والمقصود بالمعدات هنا هى لغات البرمجة
معنى ذلك أننا كمشاركين فى هذا العمل نمثل جزء من إطار عمل دوت نت وأن الأدوات التى هى لغات البرمجة أيضا تمثل جزء اخر ولكن هناك شىء يستدعى الوقوف أمامة لقد ذكرت أننا كمشاركين فى هذا العمل نمثل جزء ونحن جميعنا من نوعية واحدة وهو النوع البشرى وهذا الأمر أمر مقبول لأننا من نوع واحد ولا يوجد بيننا مشارك من نوع اخر قد يكون متعارضا مما يؤدى إلى إفساد المهمة ولكن ماذا عن الطرف الاخر وهى لغات البرمجة مختلفة النوعية وطبيعة العمل والسلوك وأحيانا متعارضة هل يصلح ذلك؟
كيف نسنطيع هذة اللغات أن تفهم بعضها البعض من الذى يقوم بالترجمة؟
نفترض الان أننا أن نقوم بعمل برنامج ما وهذة النوعية من البرامج يلزمها مجهود ضخم ويحتاج إلى عدد كبير جدا من المبرمجين وعندما بحثنا عن مبرمجين وجدنا أن هناك مبرمج يجيد لغة البسيك والاخر ++C ومبرمج يستخدم الجافا أضف إلى ذلك أنهم متواجدون فى أماكن متباعدة قد تصل الى الاف الأميال ولم نجد أمامنا سوى ذلك ويجب أن يقومون بهذا العمل سويا هل يمكنهم إتمام هذا العمل وهم متباعدون هل برنامج مهم مثل هذا يمكن أن يتم وإذا تم هل سيعمل بكفاءة ؟
الإجابة على كل الأسئلة السابقة نعم
-كيف يتم هذا وما الرابط الذى استطاع تجميع مجهوادات مختلفة وغير متجانسة وقام بصبها داخل بوتقة واحدة إنة Dot Net Framwork
للإيضاح انظر الشكل
وعن طريق اللون المشترك لكل عنصر يكون الناتج هو
-مجدى المصرى ++J
-عبد القادر المغربى #C
-طلال السعودى ++C
-محمود الفلسطينى Vb
يمثلون هذا الإطار ويقوم Dot Net Framwork بتجميع العمل من كافة العناصر ويقوم بترجمتها إلى لغة موحدة
كيف يتم هذا؟
من الشكل يتضح الاتى تقوم لغات البرمجة بارسال العمل إلى مسرح العمليات والمسمى Dot Net Framwork إلى جزء محدد وهو Primary Microsoft Dot Net Framwork Components ويتكون هذا الأخيرمن
جزئين
1-Class Liberary
ما معنى هذة الجملة إذا قمت بترجمتها سواء كانت الترجمة حرفية أوغير حرفية فسوف أفشل فشلا ذريعا فى إيصال معنى هذة الجملة Liberary تعنى مكتبة و Class تعنى قسم فتكون الجملة قسم المكتبات أيضا غيرمفهومة
-تعريف (Class Module)
Module هى تصغير لكلمة Model التى تعنى نموذج وعند سؤالى عن تصغير نموذج قيل لى أنة أنموذج المهم المعنى أنة نموذج فى طور النمو ولكن ماهو؟
إذا كان مازال فى صورة نص Text فهو كود فإذا تم وضعة داخل التصميم إستعدادا لتنفيذة فقد صار Module فإذا تم توجيهة ليقوم بوظيفة ما فقد أصبحت لة أحقية فى الحصول على لقب Class وغالبا ماتكون وظائفة ثانوية الغرض منها خدمة العمل الأساسى .
إذن Class Liberary هى تجميعة كبيرة لأكواد سوف تصبح فيما بعد Classes وهنا داخل Primary Microsoft Dotnet Framwork Components يتم تجميع كافة Classes المعروفة للغات الفيجوال ستوديو
2-(Common Language Runtime ( CLR
ويتم إختصارها إلى CLR وهو بصورة مبسطة المكان الذى يتم تجميع الأوامر المرسلة وتحويلها إلى لغة موحدة قبل إرسالها إلى المترجم (Compiler)
تعريف (Compiler)
هو الاداة التى تقوم بترجمة الأكواد والأوامر التى نقوم بكتابتها أو تصميمها إلى لغة الآلة بصورة أبسط تحويلها الى الصورة التى يفهمها المعالج ويقوم بتنفيذها يعنى برنامج يعمل فى صورتة النهائية ولكل لغة برمجة المترجم (Compiler) الخاص بها
السؤال الان لماذا تطلب بعض البرامج Dotnet Framwork؟
الإجابة لأنها قد أنشأت تحت رعايتة وهو الذى بستطيع القيام بتشغيلها عن طريق العملية العكسية لما يحدث داخل (Common Language Runtime ( CLR وللإيضاح نفترض أننا نقوم بعمل برنامج ما واننا بالضرورة سوف نقوم بتصميم أزرار وقوائم....الخ فى السابق كان تصميم مثل هذة الأشياء يأخذ حوالى 70% من الوقت والمجهود المستنفذ لعمل لعمل البرنامج الان هذة الأزرار والقوائم وخلافة موجودة ومعدة مسبقا داخل الدوت نت أثناء تصميم البرنامج يسمح لك Dotnet Framwork باستخدام النماذج الموجودة لدية ولكنة لا يمكنك من دمجها داخل برنامجك أثناء تعبئة البرنامج وعلى ذلك عندما يريد أحد المستخدمين تشغيل برنامجك سوف يطلب منة البرنامج أن يقوم بتثبيت Dotnet Framwork أولا لأنة هو الذى لا زال يحتفظ بالمكونات المذكورة سابقا والتى بدونها لن يعمل هذا البرنامج.
عودة للحديث عن تطبيقات (Common Language Runtime ( CLR
يقوم CLR بتوفير عدد من الخدمات الذى سوف بستخدمها الدوت نت لكى يتمكن من أداء المهمة
1-المترجم Compiler وقد تحدثنا عنة
2- مستكشف الأخطاء Debugger
3-مدير الذاكرة Memory Manager
4-إدارة السرية Security Management
5-المعارضة Exception Handling
-ميكانيكية عمل (Common Language Runtime ( CLR
يقوم (Common Language Runtime ( CLR بتحويل لغات الفيجوال ستوديو إلى ما يسمى باللغة الوسيطة ( Microsoft Intermediate Language ( MSIL هذا عند الإنشاء ويقوم بالعملية العكسية عند التشغيل
ماالذى استفدناة من الدوت نت
أصبح بالإمكان الان كتابة برنامج بأكثر من لغة برمجية ولكن ما الفرق بين أن أكتب برنامجا ما بلغة برمجية واحدة أوأكثر
-إيضاح
الفيجوال بيسيك كلغة فهى جيدة جدا وسهلة بالمقارنة مع اللغات الأخرى ولكنها تعتمد على نماذج معدة مسبقا من قبل ميكروسوفت مما كان يجعلها محدودة التطبيقات أى أنها كانت تعتمد على ماتوفرة ميكروسوفت من تطبيقات فقط وكان من الصعب جدا أن تقوم باى ابتكار لتطبيق جديد غير مدرج من قبل ميكروسوفت أما لغة ++C فهىقادرة على عمل أى شىء وبدون حدود ولكنها صعبة وتحتاج إلى درجة عالية جدا من التركيز كما انة من الصعب أن يقوم من يستخدمها بتصور الناتج النهائى ومدى كفائتة أثناء العمل والتعديل فى السطر رقم 70 مثلا وأنت تعمل فى السطر رقم 1200 يلزمك التعديل فى كافة الأسطر غالبا وأشياء أخرى ليس وقت الحديث فيها وبالنسبة للغات الاخرى فكان يعيبها نفس العيوب الخاصة بالفيجوال بيسيك مع وجود اختلافات ولكن الان يمكنك فعل أى شىء باستخدام أى لغة وبصورة أكثر دقة أنك تستطيع إستغلال المميزات المتواجدة فى اللغات الأخرى دون النظر عن اللغة التى تستخدمها بالفعل
-المستفيد الأول من Dotnet Framwork هو الفيجوال بيسيك
-فى السابق عندما كنت تقوم بإنشاء برنامج ما وكان هذا البرنامج يحتوى على مكونات ما مثل تطبيقات (COM (Component Object Model أويحتوى على ملفات مثل ملفات (Windows DLL (Dynamic Link Library أو غير ذلك كان ينبغى عليك إرفاق كافة الملفات التى تم إنشاؤها أثناء العمل ببرنامجك الذى قمت بإنشاؤة وهذا يفسررسائل الخطاء التى على الشكل التالى
-التطبيق خاطىء الملف الفلانى غير موجود قم بإصلاح الملف التالف أو قم بإعادة الإعدادات أو اتصل بالبائع أو فوت علينا بكرة وكان سبب ذلك عدم وجود ملف من الملفات التى قام المبرمج بإنشائها أثناء عملة فى إنشاء البرنامج
ماهى عيوب الدوت نت
1-البرامج التى أنشأت فى وجودة لا تعمل إلا فى وجودة
2-السرية Security
إن وجود إمكانية المشاركة الشرعية عن بعد يعتبر فى حد ذاتة خرقا لقواعد السرية هناك قاعدة أمنية تقول إن كل ما يمكن الحصول علية بطريقة شرعية يمكن ايضا الحصول علية بصورة غير شرعية دون النظر إلى الكيفية التى تتم بها حماية هذا الشىء