بيئة ال*** نيت هى الاساس القادم لتطوير تطبيقات تستطيع ربط نظم ومعلومات و اجهزه و مستخدمين فى إطار موحد و مخصص
تقع منصة ال*** نيت فى نقاط اساسيه :
1- أدوات التطوير Developer Tools : الواجهه البرمجيه والادوات(لغات البرمجه) التى يستخدمها المطور لتصميم و إنشاء الحلول لبيئة ال*** نيت .... تدعم *** نيت حوالى 24 لغه برمجه
2- مجموعة من الخوادم Servers : السيرفرات التى تمثل البنية التحتيه لبناء وتطوير و تنفيذ الحلول لبيئة ال*** نيت مثل MS SQL Server او E-Commerce Server او BizTalk Server
3- خدمات الويب Xml *** 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 *** Controls
4- فئات الوصول إلى البيانات Data**** access
5- فئات تعدد خيوط المعالجه Multithreading
6- Remoting
7- فئات الانعكاس Reflections
كل هذه الفئات يمكن الوصول إليها من اى لغة تدعم ال*** نيت اى ان المطور الذى يستخدم الفيجوال بيسك *** نيت سيستخدم هذه الفئات كما هو الحال مع المطور الذى يستخدم ال #C مثل المطور الذى يستخدم Perl.NET مثل المطور الذى يستخدم Delphi.Net
كل ال Implementaion الخاصه بإطار عمل ال*** نيت يتم شحنها مع مجموعه كبيره من الفئات المبنيه بداخلها (المدمجه معها)
مكتبة فئات إطار العمل FCL تحتوى على مجموعه كبيره من الفئات تتنوع فى استخداماتها من دوال ال API التى تم تغليفها ووضعها فى صوره امنه للمبرمج يستطيع التعامل معها داخل ال*** نيت - فئات للتعامل مع قواعد البيانات - فئات للتعامل مع الواجهه الرسوميه للمستخدم - فئات للتعامل مع تنسيق النص - فئات للتعامل مع المجموعات COLLECTIONS - فئات للتعامل مع ال Program Security و هكذا ترى ان لديك مكتبه كبيره جداً من الفئات القابله للاستخدام
و لكن ليس كل الفئات قابله للاستخدام داخل كل انواع التطبيقات فقد نجد فئات تستخدم فى تطبيقات الويندوز windows application و لكن لا تستخدم بداخل تطبيقات الويب *** application او ال mobile applications او العكس
يجب ان تحذر استخدام مكتبة الفئات إلا للمنصات التى تعمل عليها فقط اى لا تحاول استخدام مكتبه للتعامل مع السيكيورتى مثلاًُ مع نظام لا يدعم السيكيورتى
ليس ان تحوبل الكود فقط إلى MSIL يسمح لك بالعمل عبر المنصات المختلفه بل ايضاً معرفتك باى مكتبه من الفئات قابله للعمل عبر تلك المنصات
التحديدات specification الخاصه بال CLI عرفت مجموعه من الفئات الاساسيه التى يجب توافرها لاى DOT NET FrameWork Implementaion هذه الفئات تعرف باسم **** Class Library او اختصاراً BCL
استخدامك لل BCL يضمن لك قابلية عمل تطبيقك على اى منصة عمل تستخدم إطار عمل ال*** نيت و لكن استخدامك لاى فئه خارج اطار ال BCL قد يعرض برنامج لعدم التوافقيه مع منصة العمل التى يجرى عليها تطبيقك
هذا جدول يوضح اهم المجمعات Assemblies داخل مكتبة الفئات
ال Microsoft.VisualBasic يقوم بمهمتين رئيسيتين لمبرمجى الفيجوال بيسك *** نيت
المهمه الاولى : تقدم وسائل المساعده التى تقوم بتحويل الكود إلى MSIL
المهمه الثانيه : تقدم وصول مباشر للطرق و الثوابت التى تشبه تلك الموجوده فى الاجيال الاولى من الفيجوال بيسك
و بالتالى فكما ترى ان هناك اعتماديه من مبرمجى فيجوال بيسك *** نيت على هذا المجمع
مميزات بيئة عمل ال*** نيت
هذه المزايا ساسردها من وجهة نظرى و لكن هناك العديد من المصادر التى تسهب فى هذا الجزء
1 - تكاملية بيئة ال*** نيت بما تحمله من دمج لنظام التشغيل و ادوات التطوير و السيرفرات المستخدمه
حقيقة هذه احدى مزايا و عيوب مايكروسوفت فى نفس الوقت
2 - لغة واحدة لجميع الاغراض
الان يمكن فعلاً كتابة تطبيقات الويب و تطبيقات بيئة الخادم / العميل و التطبيقات المكتبية فى نفس الوقت بنفس اللغة بدون ان تحتاج شركتك لمبرمجين بلغات اخرى .... الم نواجه فى معظم الاحوال كمبرمجين الحاجة لاستخدام لغات اخرى لانشاء مشروعات ويب مثلاً فكنا نضطر لتعلم احدى اللغات مثل ASP او PHP او غيرها
اما الان فيمكنك نقل خبرتك لاستخدام ASP.NET مباشرة باستخدام VB.NET او C# بدون الحاجة لتعلم لغات جديدة (ترى هل سيوفر هذا على الشركات بدون الحاجة للحصول على مبرمجين جدد)
3 - الامان Security
كم من مرة واجهت فيها موقفاً يشبة الموقف التالى ..... قمت بتصميم برنامج يستخدمه مجموعة مختلفة من الاشخاص و انت تريد تحديد صلاحيات داخل برنامجك لكل مجموعة من الاشخاص
قمت مرة بتخزين بيانات حساسة و اردت تشفيرها و لم تعرف كيف تقوم بذلك
الان اصبح بالامكان استخدام Code Access Security و Evidence-****d security و Role ****d Security و Application Domain و استخدام التشفير Encryption بدون الحاجة للعديد من الاكواد المعقدة فى معظم الاحيان حيث توفر بيئة ال*** نيت العديد من الفئات داخل فضاءات الاسماء System.Security
صفحات ال ASP.NET و العديد من الانماط لحماية المحتوى
4 - السرعة فى ASP.NET
تختلف ASP.NET عن سابقتها ASP فى كونها Compiled و ليست Interpreted هذا بالاضافة لامكانية استخدام ال Caching لصفحات معينة كما يمكن تحديد فترة زمنية لهذا التخزيم مما يزيد من كفائتها
5 - انشاء خدمات ويب *** Services
لا شك ان خدمات الويب اصبحت تلعب دوراً هاماً الان فى ال Business Logic و ال Code Reuse فركزت عليها مايكروسوفت فى بيئة ال*** نيت و اصبح بالامكان برمجة او استخدام خدمات الويب مباشرة من داخل تطبيقك
6 - برمجة تطبيقات الاجهزة الذكية Mobile & Smart Applications
ميزة جديدة مع ال*** نيت و إن كانت غير منتشرة مع انتشار تطبيقات جافا فى الاسواق ... ما زلنا ننتظر الجديد من مايكروسوفت لهذه السوق الجديدة
العديد من المميزات التى ربما لم اتطرق إليها هنا و لكن يمكن البحث عنها فى الانترنت ...... بيئة ال*** نيت رائعه و مليئة بالمزايا مهما كانت لغة برمجتك المفضلة لربما احببت ان تلقى نظرة لل*** نيت
لتوصل معي على الفيس بوك بإمكان اضافتي على الحساب التالي :
https://www.facebook.com/Microsoft.Engineer
نصائح واستشارات امنية في مجال امن المعلومات والإتصالات
كبار استشاري امن المعلومات في شركة مايكروسوفت
الذين يشاهدون الموضوع الآن: 2 (0 من الأعضاء و 2 زائر)
مواقع النشر (المفضلة)