العودة   منتدى رياض الجنة - Riad Al-Ganah > الرياض التقنية > روضة الكورسات والدورات التقنية والعلمية > روضة دورات تقنية الـ .NET بلغاتها المختلفة > دورة .NET 2008 من منتدى فيجوال بيسك للعرب

دورة .NET 2008 من منتدى فيجوال بيسك للعرب مقدم الدورة : أحمد جمال ، نوع الدورة : كتابية مصحوبة بصور ، حالة الدورة : انتهت ، عدد الدروس : 80 درس . مستوى الدورة : من البداية للاحتراف .

إضافة رد

 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 02-15-2010, 03:46 AM
الصورة الرمزية khaledbelal
khaledbelal khaledbelal غير متواجد حالياً
مبرمج المنتدى
الادارة تكليف لا تشريف
 
تاريخ التسجيل: Oct 2009
العمر: 34
المشاركات: 3,606
افتراضي الدرس الثالث : مفاهيم بيئة .net الرئيسية

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

في هذا الموضوع سوف نتحدث عن بنية .net الرئيسية ... كل ما يتعلق بها ومفاهيمها ، وذلك على مدار اربع ايام حيث نضيف كل فترة موضوعاً جديداً عن هذه النقطة ، سيتم ضغط الحلقات ليتم طرح حلقتين هذا الاسبوع إن شاء الله .

وكالعادة ... لنبدأ .

لغات .net :

لا تعتبر .net لغة واحدة ، بل هي عبارة عن معيار قياسي تستخدمه عدة لغات برمجة ... تم طرح هذا المعيار من قبل مايكروسوفت حوالي العام 2000 وتبنت العديد من الشركات هذا المعيار ليكون قاعدة انطلاقها في لغات البرمجة ، حيث تتميز جميع هذه اللغات بإن لها الكود المصدري نفسه ، وتترجم نفسها مروراً بنفس المراحل ولا تختلف سوى في طريقة الصياغة ... سنقوم بالتعرف على المكونات الاساسية لمحرك اللغة Engine كاملة ضمن خططنا لهذا الاسبوع .. ولكن قبلاً لنتعرف على بعض اللغات التي تبنت معيار .net .

فبعد اللغات التي تصدرها مايكروسوفت بنفسها والتي تضم : C# ، VB.net ، J#.net ، اضافة إلى C++/CLI وأخيراً J******.net ... هناك اللغات الأخرى التي تدعم معيارية .net مثل باسكال ودلفي ، كوبول وحتى LISP.net لبرمجة تطبيقات الذكاء الإصطناعي .


لا ننسى ايضاً الإصدارات التي تعمل على بيئة Linux ، ف mono مثلاً يدعم معيارية .net تحت بيئة اللينكس .. لكن في النهاية فقد كان المنتج الاساسي لخدمة بيئة .net هو C# ، لتنضم إليه لاحقاً VB.net ربما لاغراض تسويقية وبدأ بعدها تتابع اللغات ، لا ننسى ان انضمام f# للمجموعة قد يجعله الاسلوب رقم 1 للبرمجة بتقنية .net .

تستطيع في النهاية الاطلاع على مجمل اللغات التي تدعم هذه المعيارية مع بعض التفصيلات عنها هنا :
[IMG]http://www.dotnet********s.net/DNL/Resources.aspx[/url]

في كتاب Pro C# 2008 .NET 3.5 Platform -Exploring the .NET universe using curly brackets ، يطرح الكاتب تساؤلاً ويجيب عليه ، لماذا كل هذا العدد من لغات .net ما دام سيتحولوا جميعاً في النهاية إلى maneged code ، ويجيب على هذا التساؤل بعدة اسباب :

1- ان العديد من المبرمجين حساسين جداً للغة التي يبرمجون بها ويحبونها ، فبعضهم يفضل اسلوب الكتابة ب ; والأقواس ... فيما يفضل البعض الآخر الاسلوب الأكثر قابلية للقراءة مثل Syntex لغات Visual Basic ، لا ننسى هنا الدور التسويقي ومحاولة جذب جميع المبرمجين للعمل مع .net حيث يمكن لمبرمجي C# و Basic و C++ و Fortran و Delphi العمل جميعاً تحت منصة واحدة ، وهذا ما يجعل انتقالهم بينها اسهل اضافة لتجميع المبرمجين تحت مظلة واحدة .

2- مشاركة الفريق الواحد مبرمجين بلغات متعددة ، حيث يمكن ان تجد في الفريق الواحد مبرمجين يبرمجون بعدة لغات ويتم اخراج منتج واحد في النهاية بعد ان كان من المفضل ان يكون المبرمجين لنفس اللغة ، هذا يفتح الاختيارات كثيراً امام الشركات في اختيار المبرمجين .

3- بعض اللغات تتميز بنقاط قوة تضطر الناس لاستخدامها ، فمثلاً هناك لغات مميزة في العمليات الرياضية والمعادلات مثل الفورتران ، الكوبول مميزة ايضاً في التعاملات المالية والعمليات الحسابية ... هكذا تستطيع الاستفادة من هذه المميزات وتدمجها جميعاً مع بعضها تحت بيئة .net .

العناصر الأساسية لبيئة .net :

تقدم .net بين طياتها ثلاث عناصر رئيسية تتحكم في دورة حياة البرنامج المعتمد على بيئة .net ، هذه التقنيات الثلاث يرمز لها اختصاراً بأسماء : CLR, CTS and CLS ، سنتعرف في هذا الدرس على مهامهم بشكل مختصر وسريع فيما سنتعرف على تفاصيل كل منهم في دروس متفرقة قادمة إن شاء الله ضمن هذا الأسبوع .

تمثل ال CLR ال runtime lyer للبرنامج ، وهي اختصار ل Common ******** Runtime ، مهمته الاساسية هي التحكم في الأنواع والمكونات الرئيسية لل .net - المكتبات والدوال - وحجز المتغيرات في الذاكرة وتقسيم الذاكرة والتعامل معها ، ال threads والتنفيذ اضافة لبعض اختصارات الأمان ،" باختصار شديد تشكل ال CLR المرحلة الاساسية لترجمة أوامر .net وتنفيذها على جهاز الكومبيوتر .

ال Common Type System والذي يتم اختصاره ب CTS مختص بالتعامل مع انواع البيانات المدعومة للعمل ضمن بيئة .net ، وكيف يتم التعامل بينهم وبين بعضهم ، مع مراعاة وجود بعض الانواع غير المدعومة في جميع بيئات .net والتي توجد بها اختلافات بين بيئة وأخرى ، أما الأخيرة وهي Common ******** Specification والتي يتم اختصارها بالرمز CLS فهي مختصة بالتعامل فقط مع انواع البيانات القياسية والمدعومة من جميع اصدارات بيئة .net .

وبهذا نستطيع ان نقول ان البرنامج المصمم باستخدام C# مثلاً ويستخدم فقط الأنواع المتاحة في CLS هو متوافق تماماً للعمل على نفس توزيعة .net من اجل العمل على Linux المسماه mono ، اما لو خرجت خارج نطاق ال CLS إلى CTS فلن تضمن ان يتم تنفيذها بنفس الكفاءة في كل الأنظمة المختلفة .

في الدروس اللاحقة المخصصة للحديث بالتفصيل عن هذه العناصر الثلاثة سوف نتعرف على طريقة عملها بالتفصيل إن شاء الله تعالى .

ال **** Class :

توفر تقنية .net ما يعرف باسم **** Class Library ، وهو عبارة عن كلاس يحتوي على الأوامر والدوال الرئيسية في بيئة .net ، هذا الكلاس موجود في جميع بيئات .net ويتم التعامل معه ومع خصائصه بنفس الطريقة ، يضم الكلاس العناصر الاساسية مثل التعامل مع الملفات وقواعد البيانات ، ال Threads ، ال XML ، ال GUI وخلافه . وتساهم هذه المكتبة في جعل اسلوب البرمجة موحد وأسهل . وقابل للتكامل مع أي من اللغات التي تدعم .net .

هذا الجدول لمحتويات ال BCL من مايكروسوفت :


http://vb4arab.com/vb/uploaded/3/012.../zcx1eb1e.aspx

Common ******** Specification

كما ذكرنا في الموجز السابق ، ال CLS هي subset من ال CTS تصف الحد الأدنى من المتطلبات اللازمة لنستطيع القول ان هذه اللغة تعمل تحت بيئة .net ، وبمعنى آخر ، فإن بعض محتويات CTS اختيارية حيث يمكن ان تجدها في بعض لغات .net ولا تجدها في الآخر ، مجموعة من محتويات CTS تم تجميعها في CLS لتكون اجبارية لكل لغة تستخدم بيئة .net للتطوير .

ويتم اطلاق مصطلح CLS Rules على هذه الشروط الاجبارية ، ويتم توصيفها ولا بد من تطبيقها لكل لغة تستخدم بيئة .net للتطوير .

بالنسبة للغات C# و VB.net ، هناك مجموعة كبيرة من الخصائص التي لا يضمها ال CLS ، بامكانك معرفة اذا كان الكود الذي تستخدمه موجود ضمن ال CLS ام لا لمراعاة عملها على جميع أنظمة التشغيل من خلال الكود التالي :

كود PHP:
[assemblySystem.CLSCompliant(true)] 
سنتعرف على المزيد عنذ كتابة ال assembly في مراحل قادمة ، وحتى ذلك الحين ، إذا كنت مهتماً بموضوع ال CLS يمكنك مواصلة القراءة من هنا :
http://msdn2.microsoft.com/en-us/lib...h3(VS.71).aspx

Common ******** RunTime :

كما ذكرنا سابقاً ، فإن ال CLR تضم كافة المعلومات المطلوبة ليعمل كود ال .net الخاص بك على الجهاز بغض النظر عن اللغة التي تمت بها كتابة الكود الأصلي ، ولتقريب المثال ، إذا كنت مبرمج فيجوال بيسك فإنك مضطر لوجود msvbvm60.dll على الجهاز ليعمل برنامجك المصمم بالفيجوال بيسك وبالأدوات الرئيسية ، اما لو كنت مبرمج جافا فإنك تحتاج إلى JVM على الجهاز الذي سيعمل عليه تطبيقك ... وبنفس الطريقة ، فإن ال CLR هو الملف الوحيد الذي تحتاجه ليعمل تطبيقك المصمم تحت بيئة .net على اي جهاز كومبيوتر .

ففي عالم ال .net ، تحتاج لوجود مكتبة ال CLR المسماه mscoree.dll اختصاراً ل Microosft Common Object Runtime Execution Engine ، مع بدء برنامجك ومع بداية اشارة ملف الاسمبلي إلى هذه المكتبة يقوم ال CLR بعمل Load لملف الاسمبلي وقراءة ال ****data ، يعمل Load ايضاً لل Types في الميموري ، واخيراً يقوم بترجمة اوامر البرنامج الموجودة في CIL إلى platform specific instructions كما اتفقنا سابقاً ليمكنه التنفيذ على جهازك ... اخيراً يبدء ال CLR بتنفيذ برنامجك ، وخلال عمل البرنامج سيقوم ال CLR بالتعامل مع الفئات الاساسية لل .net الموجودة في **** Class إذا كنت تستخدمها في برنامجك .

هذا المخطط من ويكبديا يوضح مراحل كتابة الكود حتى تحويله إلى native كود ومن ثم تنفيذه :
http://upload.wikimedia.org/wikipedi...f4(VS.71).aspx

استخدام Object Browser :

من قائمة View اختر Object Browser ، ستظهر لك الشاشة التالية :

[url]http://vb4arab.com/vb/uploaded/3/01202814816.jpg[/IMG]

من خلال هذه ال Tool المتوفرة مع اصدارات Visual Studio المختلفة ، تستطيع استعراض كافة المكتبات والفئات الرئيسية في .net ، وتستطيع ان تعرف مكانه وملفات الاسمبلي التي يتبعها ، طريقة استخدامه ونبذة مصغرة عن فائدته .

لمزيد من المعلومات عن اي منها يمكنك اللجوء إلى مكتبات MSDN سواء الموجودة في قائمة Help ، او الموجودة على الانترنت مباشرة في موقع msdn .

ال Name Space :

من خلال الدروس التي قدمناها هذا الاسبوع ، تستطيع ان تلاحظ أن System هي ال namespace الرئيسية التي تجد تشتق منها أغلب ال name spaces الأخرى .

هناك name space آخر باسم Microsoft تجد تحتها العديد من الفئات مثل Microsoft.ManagementConsole وجميع الفئات المشتقة من فئة Micosoft هي خاصة فقط بالتعامل مع خدمات مايكروسوفت ولذا فهي لا تعمل تحت ال mono مثلاً .

لاحقاً ، سيكون من الواضح ان تفسر ال name space التالي : System.Windows.Forms انها تحتوي على المهام الرئيسية التي تحتاجها لبناء Forms .

تعريف مجالات الأسماء :

يمكنك تعريف مجال الاسماء اعلى ملف الكود الخاص بك بالشكل التالي C# :

كود PHP:
using System.Data.SqlClient
أو VB.net :

كود PHP:
Imports System.Data.SqlClient 
إذا قمت على سبيل المثال باستيراد مجال الاسماء كما اوضحنا ، فيمكنك كتابة الأمر التالي مباشرة :

كود PHP:
SqlConnection sql1=new SqlConnection(); 
في المقابل ، لو لم تقم بتعريفه في مجال الاسماء ، ففي هذه الحالة انت مضطر لدخوله بالترتيب في كل مرة تستخدمه فيها :

كود PHP:
System.Data.SqlClient.`SqlConnection sql1=new System.Data.SqlClient.SqlConnection(); 

استخدام برنامج ildasm :

ضمن البرامج الملحقة مع Visual Studio 2008 تجد في الغالب برنامج ildasm ، يمكنك هذا البرنامج من الاطلاع على الاسمبلي الخاص بأي برنامج قمت بعمله باستخدام .net ، ايضاً يمكنك من رؤية ال CIL الخاص بهذا البرنامج ... هذه صور لكل مهمة فيهم :





هل تبحث عن open source .net ؟

http://www.mono-project.com او mono project هو اشهر ال projects التي تتيح لل CIL العمل على توزيعات لينوكس المختلفة .

هناك مشروع آخر باسم Portable.NET يمكن CIL من العمل على منصات مختلفة .

تجد رابطاً للمشروع الثاني هنا :
http://www.dotgnu.org

إلى هنا اكون قد انتهيت مما كنت انوي تقديمه لهذا الاسبوع ، اتمنى ممن لديه اضافة او تعقيب ان يذكرها هنا .

وإلى اللقاء في الاسبوع القادم مع أولى خطواتنا داخل عالم .net 2008 ، موعدنا القادم مع المفاهيم الاساسية لعالم OOP داخل ال .net ، وسنظل في مرحلة توضيح المفاهيم للفترة القادمة .

والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .



توقيع : khaledbelal



(أَفَأَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا بَيَاتاً وَهُمْ نَآئِمُونَ {97} أَوَ أَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا ضُحًى وَهُمْ يَلْعَبُونَ {98}
أَفَأَمِنُواْ مَكْرَ اللّهِ فَلاَ يَأْمَنُ مَكْرَ اللّهِ إِلاَّ الْقَوْمُ الْخَاسِرُونَ {99}).
سورة الأعراف.

رد مع اقتباس
إضافة رد


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
الدرس الثالث (تتمت دروس اللسان) حركة اللسان ابو تسنيم روضة العقيدة 3 09-08-2010 05:34 PM

استضافة الحياة

الساعة الآن 12:05 PM.


Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By Almuhajir
النسخة الفضية
Ads Management Version 3.0.1 by Saeed Al-Atwi

SlamDesignzslamDesignzEdited by Riad Al-Ganah Team - جميع الحقوق محفوظة لشبكة رياض الجنة

Privacy Policy Valid XHTML 1.0 Transitional By SlamDesignz Valid CSS Transitional By SlamDesignz