• 0
Guest cold0zero

.NET Framework

سؤال

ويحتوي على مكونين رئيسيين هما:

1-CLR (Common Language Runtime)

2- Class Library

أولاً : ماهية ال CLR:-

عندما تنشيء صفحة ASP.NET, الصّفحة تُجْمَع (compile) تلقائيًّا في طبقة عند طلبها للمرة الأولى . عندما تُجْمَع (compile) الصّفحة, لا تجمع مباشرةً إلى لغة الآلة الأصليّة . بدلاً من ذلك, الصّفحة تُجْمَع الى شيئ ما يسمّى اللّغة المتوسّطة لمايكروسوفت Microsoft Intermediate Language وتسمى إختصارا (MSIL) .

MSIL متشابهة مع كود لغة الملفات (assembly) , باستثناء أنّ لديه سمات موجّهة بالشّيء (object-oriented) و صُمِّمَ ليكون غير معتمد على نوع الجهاز.

بصرف النّظر عن اللّغة التي تستخدمها لكتابة صفحة ASP.NET, الصّفحة تُجْمَع (compile) الى نفس كود MSIL . ومن ثم كود MSIL يحول الى لغة الآلة بواسطة من قبل (في لّحظة) Just-in-Time أو (JIT). في الحقيقة أن تحويل صفحة ASP.NET الى كود MSIL قبل التّنفيذ لة بعض المميزات المهمّة .

أوّلا, تجعل إختيار لغة برمجة صفحة ASP.NET مجرد تفضيل شخصي . على سبيل المثال, يمكن أن تكتب صفحة ASP.NET بإستخدام لغة Visual Basic التي تنفّذ بسرعة مثل أي صفحة مكتوبة بلغة #C أو ++C . بصرف النّظر التي تستخدمها لكتابة صفحة ASP.NET , الصّفحة تُجْمَع (compile) في نفس شفرة MSIL .

أيضًا, بما أن كلّ لغات .NET تنفذ أو تجمع (compile) الى نفس كود MSIL , إذن جميع لغات .NET تعمل مع بعض جيدا. على سبيل المثال, يمكن أن تنادي العنصر الذي كتبتة بإستخدام Visual Basic في صفحة ASP.NET مكتوبة بلغة #C

سبق وأن ذكرنا أن الVisual Studio .NET يدعم حوالي 27 لغة برمجية يمكننا الكتابة بداخله بأي منها أو مجموعة منها، ولابد من وجود مترجم لكل لغة ليحول الكود البرمجي إلى لغة الماكينة وإلى ملف قابل للتنفيذ حيث يمكن للكمبيوتر بعد ذلك تنفيذ البرنامج دون الحاجه إلى الكود المصدر المكتوب به البرنامج، ولكن ما هو الحال إذا كنا نستخدم أكثر من لغة في نفس شاشة الكود الواحده ؟، وأي مترجم لغة سوف يعمل في حالة تعدد اللغات البرمجيه المكتوب بها البرنامج ؟، لذا كان من الواجب وجود مترجم عام يستطيع التعامل مع اي لغة من اللغات البرمجية التي يدعمها Visual Studio .NET والمكتوب بها البرنامج، وهذا المترجم العام أطلق عليه Common Language Runtime أو CLR وهو الإختصار الخاص بهذه الكلمة.

أن شركة مايكروسوفت قامت بإنتاج لغة وسيطة بين الكود المصدر (أياً كانت لغته البرمجية) ولغة الماكينة وهي المحصلة النهائية لترجمة أي ملف كودي ، بحيث يقوم ما يشبه بالمترجم الفوري ( Just In Time) بترجمة هذه اللغة الوسيطة (Microsoft Intermediate Language (إلى لغة الماكينة (Machine Language).

ثانياً : ما هي ال Class Library:-

يمكن تعريف مكتبة الصفوف أو ال Class Library على أنها تلك المجموعة من الصفوف التي يمكن إعادة إستخدامها في البرمجة الموجهة بالأهداف (Object Oriented Programming) والتي تم تنظيمها بواسطة وظائفها .

إن مكتبة الصفوف الموجودة في إطار عمل الدوت نت يحتوي على ما يزيد عن 3,400 طبقة يمكن أن تستخدمها في طلباتك . تمثّل بعض من هذه الطّبقات أنواع البيانات الأساسية مثل النصوص (string) والمصفوفات (array) . أغلبيّة الطّبقات مخصصة لمهامّ متخصّصة أكثر مثل العمل بنظام الملفاتّ و توليد وثائق XML .

إن التطرق إلى مكتبة الصفوف سوف يجرنا إلى الحديث عن مسمى أخر مهم في تقنيتنا الجديدة وهو Namespace، والذي يمكن تعريفه ببساطة بأنه يقوم بتعريف مجموعة ال Classes المرتبطة ببعضها و/ أو ال Namespaces الأخرى الموجودة في ال NET Framework، وكمثال على ال Namespaces ما يلي :

* System

* System.Windows.Forms

مجموعات المكتبات (Namespaces)

وتجدر الإشارة إلي أنه طالما تحدثنا عن ال Namespaces فيجب أن نذكر مصطلح ال Class ذلك الكائن البرمجي الذي يحتوي على مجموعة من النماذج والخصائص والسمات الخاصة به، وكمثال على ذلك فإن النموذج ما هو الا واحد من فصائل أو Classes ال Namespace التي تدعى System.Windows.Forms، وهو الذي يقوم بإنشاء النموذج

و الطّبقات في هيكل ال.NET لا تُخْلَط ببساطة معًا . الطّبقات توزع على شكل مجموعات هرمية تسمى (namespaces) . على سبيل المثال, كلّ الطّبقات التي تعمل مع نظام الملفاتّ تُجْمَع في المجموعة (System.IO). يمكن أن تشير إلى أيّ طبقة بشكل فريد في هيكل ال.NET بتزويد الصفحة بإسم المجموعة (namespace) واسم الطّبقة ( نوعها ) . على سبيل المثال, للإشارة إلى طبقة الملفاتّ في مجموعة (System.IO) , يمكن أن تستخدم :

System.IO.File

مجموعة واحدة من (namespace) مهمّة خصوصًا لبرمجة صفحات ASP.NET . كلّ الطبقات التي تتعلق بهيكل ASP.NET يمكن أن تُوجَد تحت المجموعة (System.Web) . كلّ تحكم أشكال الفورم في HTML والتي تسمى (HTML controls) موجودة في مجموعة System.Web.UI.HTMLControls و كلّ تحكّم أشكال الفورم في ASP.NET والتي تسمى (Web controls) موجودة في مجموعة System.Web.UI.WebControls

ملفات المكتبات (Assemblies)

الطّبقات في هيكل ال.NET تجمع في ملفات تسمى (Assemblies) . من المهم عدم الخلط بين الملفات (Assemblies) والمجموعات (namespace) . الملف (assembly) هو الملفّ أو الملفات الفعلية التي تحتوي على الكود للطّبقات . على سبيل المثال, كلّ الطّبقات في المجموعة (System.IO) تقع في الملف Mscorlib.dll . ملفّ Mscorlib.dll هو الملفّ الفعليّ الذي ستجده على القرص الصلب في كمبيوترك .

من ناحية أخرى, لاترتبط المجموعة (namespace) مباشرةً بالطّريقة التي وزعت بها الطّبقات التي يحتويها في الملفات (Assemblies) . يمكن أن تحتوي المجموعة (namespace) الواحدة عدة ملفات () وكذلك يمكن أن يحتوي الملف الواحد (assembly) على أكواد عدة مجموعات (namespace) . وبمعنى آخر فأن المجموعة هي تجميع منطقي (logical) للطبقات بينما الملف هو تجميع حسي (physical) لها

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

1 إجابات على هذا السؤال .

  • 0

شكراً على المعلومات القيمة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .