لا شك ان كلمة الدوت نيت اصبحت تتردد الان على السنة المبرمجين الجدد والمخضرمين فما هى الدوت نيت إذاً ما هو مفهوم بيئة الدوت نيت ؟ بيئة الدوت نيت هى الاساس القادم لتطوير تطبيقات تستطيع ربط نظم ومعلومات و اجهزه و مستخدمين فى إطار موحد و مخصص تقع منصة الدوت نيت فى نقاط اساسيه : 1- أدوات التطوير Developer Tools : الواجهه البرمجيه والادوات(لغات البرمجه) التى يستخدمها المطور لتصميم و إنشاء الحلول لبيئة الدوت نيت .... تدعم دوت نيت حوالى 24 لغه برمجه 2- مجموعة من الخوادم Servers : السيرفرات التى تمثل البنية التحتيه لبناء وتطوير و تنفيذ الحلول لبيئة الدوت نيت مثل MS SQL Server او E-Commerce Server او BizTalk Server 3- خدمات الويب Xml Web Service : مجموعه من الخدمات المحدده للقيام بالعمليات الروتينيه و الوسائل التى تساعد المطور فى تطوير خدماته الخاصه 4- العملاء Clients : و المقصود بها الاجهزه التى تستخدم انظمة تشغيل مدمج معها إطار عمل الدوت نيت... هناك مشروع مونو لنقل الدوت نيت على اللينكس 5- خبرة المستخدمين User Experinece : البرمجيات التقليده والمدمجه مع خدمات الويب لتقدم كل ما يحتاجه المستخدم ربما تبدو هذه النقاط مقدمه نظريه لا فائده منها و لكنى تعلمت ان معرفة هيكلية (معمارية) بيئة العمل هامه جداً بيئة عمل الدوت نيت تقدم نموذج عمل بالبرمجه الكائنيه ( سنفهم معناها لاحقاً) و هو ما يضمن سلامة تنفيذ الكود باستخدام قواعد التحقق من الصحه وقت التنفيذ RunTime بمعنى انه لايمكن لبرنامجك ان يتخطى حدوده و يحاول الوصول إلى كائنات اخرى فى تطبيق اخر مالم يسمح له هذا التطبيق او ربما يحاول تطبيقك او ما سنسميه كائنك ان يقوم بعمليه لم تحددها له إطار عمل الدوت نيت Dot Net FrameWork إطار العمل هو بمثابة القلب النابض للدوت نيت و هو يحتوى على مكونين رئيسيين : 1- Common Langauge RunTime او (CLR) 2- DotNet Class Library 1- Common Langauge RunTime او (CLR) او ما يطلق عليه بيئة العمل المشتركه و هى البيئه التى يتم تنفيذ كل تطبيقات الدوت نيت فيها تقدم هذه البيئه الكثير للتطبيقات العامله بها و ربما توضح الصوره المرفقه ما اقصده البرامج التى يتم عمل Compilation لها تحت بيئة الدوت نيت لا يتم تحويلها مباشره إلى Native Code بل يتم تحويلها إلى MSIL ( Microsoft Intermediate Language ) تماماً مثل تطبيقات الجافا التى يتم تحويلها إلى Byte Code و بالتالى هذا يجعل تطبيقات الدوت نيت قابله للعمل على اى نظام تشغيل يحتوى على ال CLR بعد ذلك يتم تحويل كود ال MSIL إلى Native Code بواسطة مترجم وقت التنفيذ (Just In Time Compiler ) تحويل الكود إلى MSIL شئ ممتع فهو يجعلك تعمل تحت منصة الدوت نيت باستخدام لغتك المفضله (التى يجب ان تدعم تحويل الكود إلى MSIL ) يبقى شئ يجب ان نوضحه هنا و هو ان الكود الذى يتم تنفيذه تحت بيئة الدوت نيت يسمى managed code و يسمى كذلك لانه يستخدم ململم النفايات GC لتحرير الذاكره من الكائنات الغير مستخدمه و ما غير ذلك فيسمى unmanaged code دعنا نوضح النقطه السابقه الخاصه بكيفية تنفيذ ال managed code بشئ من التفصيل كما ذكرنا فان ال CLR هى المسئوله عن تحميل المجمعات (Assemblies) و الكائنات (Objects) الخاصه بتطبيقك فى الذاكره ... بعد ان يتم تحميل الكود و يبدأ تنفيذه تستمر ال CLR فى العمل لمراقبة تنفيذ ال managed code خاصتك لتقدم له الخدمات الموجوده بالشكل الموضح اعلاه ايضاً لكى تتاكد من ان برنامجك يعمل فى بدون اى عوامل خارجيه تؤثر على عمله ماذا بعد ان تنتهى دورة حياة تطبيقك ؟ تقوم ال CLR بتحرير الذاكره من كائنات تطبيقك باستخدام ميكانيكيه داخليه تسمى ال Garbage Collector او ململم النفايات (مثل تطبيقات جافا) قبل ان يبدأ ال CLR فى هذه المكانيكيه فهو يقوم بتحميل نفسه فى ال Windows Hosting Process دعنا نلقى نظره عن قرب من هذه العمليه المترجمات التى تدعم ال managed code مثل VB.NET مثلاً تقوم باضافة ترويسة (Header) تقوم بتوليد managed assembly file هذا الملف يجعل نظام التشغيل ويندوز يقوم اوتوماتيكياً بتحميل ملف MSCOREE.DLL الذى يقوم ببدأ جلسة عمل لل CLR لتطبيقك عن طريق تحميل ملف MSCORWKS.DLL افترض ان تطبيقك ينتج ملف اسمه MyApp.exe و انظر إالى الصوره التاليه لتستوعب هذه الفكره باختصار شديد هل معنى هذا ان تطبيقات الدوت نيت ستعمل على اى منصه مثل جافا ؟ نظرياً نعم حيث انه من المفترض ان منصة الدوت نيت منفصله عن نظام التشغيل و لكن تقنياً حتى الان لا تعمل تطبيقات الدوت نيت إلا من خلال منصة الويندوز و إن كان هناك مجهودات مبذوله لنقل منصة الدوت نيت إلى لينكس من خلال مشروع مونو 2- مكتبة فئات الدوت نيت DotNet Class Library تأتى بيئة الدوت نيت محمله بأكثر من 5 الآلاف فئه Class جاهزه تساعد المطور فى إنشاء التطبيقات المختلفه بكل سلاسه فهى تقدم له كل الاكواد التى يتكرر تنفيذها و لكن مغلفه مما يعطى امن للكود اثناء تنفيذه كما تجعل ذهن الطور يتجه نحو ما هو المطلوب تاديته من البرنامج و يترك التفاصيل الفرعيه لفئات الدوت نيت هذه الفئات Classes تقع فى 7 مجموعات رئيسيه : 1- فئات التعامل مع هياكل البيانات Data Structures 2- فئات التعامل مع ادوات الادخال والاخراج IO management 3- فئات ادوات تطبيقات الويندوز و الويب Windows and Web Controls 4- فئات الوصول إلى البيانات Database access 5- فئات تعدد خيوط المعالجه Multithreading 6- Remoting 7- فئات الانعكاس Reflections كل هذه الفئات يمكن الوصول إليها من اى لغة تدعم الدوت نيت اى ان المطور الذى يستخدم الفيجوال بيسك دوت نيت سيستخدم هذه الفئات كما هو الحال مع المطور الذى يستخدم ال #C مثل المطور الذى يستخدم Perl.NET مثل المطور الذى يستخدم Delphi.Net كل ال Implementaion الخاصه بإطار عمل الدوت نيت يتم شحنها مع مجموعه كبيره من الفئات المبنيه بداخلها (المدمجه معها) مكتبة فئات إطار العمل FCL تحتوى على مجموعه كبيره من الفئات تتنوع فى استخداماتها من دوال ال API التى تم تغليفها ووضعها فى صوره امنه للمبرمج يستطيع التعامل معها داخل الدوت نيت - فئات للتعامل مع قواعد البيانات - فئات للتعامل مع الواجهه الرسوميه للمستخدم - فئات للتعامل مع تنسيق النص - فئات للتعامل مع المجموعات COLLECTIONS - فئات للتعامل مع ال Program Security و هكذا ترى ان لديك مكتبه كبيره جداً من الفئات القابله للاستخدام و لكن ليس كل الفئات قابله للاستخدام داخل كل انواع التطبيقات فقد نجد فئات تستخدم فى تطبيقات الويندوز windows application و لكن لا تستخدم بداخل تطبيقات الويب web application او ال mobile applications او العكس يجب ان تحذر استخدام مكتبة الفئات إلا للمنصات التى تعمل عليها فقط اى لا تحاول استخدام مكتبه للتعامل مع السيكيورتى مثلاًُ مع نظام لا يدعم السيكيورتى ليس ان تحوبل الكود فقط إلى MSIL يسمح لك بالعمل عبر المنصات المختلفه بل ايضاً معرفتك باى مكتبه من الفئات قابله للعمل عبر تلك المنصات التحديدات specification الخاصه بال CLI عرفت مجموعه من الفئات الاساسيه التى يجب توافرها لاى DOT NET FrameWork Implementaion هذه الفئات تعرف باسم Base Class Library او اختصاراً BCL استخدامك لل BCL يضمن لك قابلية عمل تطبيقك على اى منصة عمل تستخدم إطار عمل الدوت نيت و لكن استخدامك لاى فئه خارج اطار ال BCL قد يعرض برنامج لعدم التوافقيه مع منصة العمل التى يجرى عليها تطبيقك هذا جدول يوضح اهم المجمعات Assemblies داخل مكتبة الفئات ال Microsoft.VisualBasic يقوم بمهمتين رئيسيتين لمبرمجى الفيجوال بيسك دوت نيت المهمه الاولى : تقدم وسائل المساعده التى تقوم بتحويل الكود إلى MSIL المهمه الثانيه : تقدم وصول مباشر للطرق و الثوابت التى تشبه تلك الموجوده فى الاجيال الاولى من الفيجوال بيسك و بالتالى فكما ترى ان هناك اعتماديه من مبرمجى فيجوال بيسك دوت نيت على هذا المجمع مميزات بيئة عمل الدوت نيت هذه المزايا ساسردها من وجهة نظرى و لكن هناك العديد من المصادر التى تسهب فى هذا الجزء 1 - تكاملية بيئة الدوت نيت بما تحمله من دمج لنظام التشغيل و ادوات التطوير و السيرفرات المستخدمه حقيقة هذه احدى مزايا و عيوب مايكروسوفت فى نفس الوقت 2 - لغة واحدة لجميع الاغراض الان يمكن فعلاً كتابة تطبيقات الويب و تطبيقات بيئة الخادم / العميل و التطبيقات المكتبية فى نفس الوقت بنفس اللغة بدون ان تحتاج شركتك لمبرمجين بلغات اخرى .... الم نواجه فى معظم الاحوال كمبرمجين الحاجة لاستخدام لغات اخرى لانشاء مشروعات ويب مثلاً فكنا نضطر لتعلم احدى اللغات مثل ASP او PHP او غيرها اما الان فيمكنك نقل خبرتك لاستخدام ASP.NET مباشرة باستخدام VB.NET او C# بدون الحاجة لتعلم لغات جديدة ( ترى هل سيوفر هذا على الشركات بدون الحاجة للحصول على مبرمجين جدد) 3 - الامان Security كم من مرة واجهت فيها موقفاً يشبة الموقف التالى ..... قمت بتصميم برنامج يستخدمه مجموعة مختلفة من الاشخاص و انت تريد تحديد صلاحيات داخل برنامجك لكل مجموعة من الاشخاص قمت مرة بتخزين بيانات حساسة و اردت تشفيرها و لم تعرف كيف تقوم بذلك الان اصبح بالامكان استخدام Code Access Security و Evidence-based security و Role Based Security و Application Domain و استخدام التشفير Encryption بدون الحاجة للعديد من الاكواد المعقدة فى معظم الاحيان حيث توفر بيئة الدوت نيت العديد من الفئات داخل فضاءات الاسماء System.Security صفحات ال ASP.NET و العديد من الانماط لحماية المحتوى 4 - السرعة فى ASP.NET تختلف ASP.NET عن سابقتها ASP فى كونها Compiled و ليست Interpreted هذا بالاضافة لامكانية استخدام ال Caching لصفحات معينة كما يمكن تحديد فترة زمنية لهذا التخزيم مما يزيد من كفائتها 5 - انشاء خدمات ويب Web Services لا شك ان خدمات الويب اصبحت تلعب دوراً هاماً الان فى ال Business Logic و ال Code Reuse فركزت عليها مايكروسوفت فى بيئة الدوت نيت و اصبح بالامكان برمجة او استخدام خدمات الويب مباشرة من داخل تطبيقك 6 - برمجة تطبيقات الاجهزة الذكية Mobile & Smart Applications ميزة جديدة مع الدوت نيت و إن كانت غير منتشرة مع انتشار تطبيقات جافا فى الاسواق ... ما زلنا ننتظر الجديد من مايكروسوفت لهذه السوق الجديدة العديد من المميزات التى ربما لم اتطرق إليها هنا و لكن يمكن البحث عنها فى الانترنت ...... بيئة الدوت نيت رائعه و مليئة بالمزايا مهما كانت لغة برمجتك المفضلة لربما احببت ان تلقى نظرة للدوت نيت