2013/08/14

تاريخ الـ . NET و لغات البرمجة منذ بداية صناعة الحاسوب ما هي تقنية NET Framework ؟

ما هي تقنية NET Framework

- كيف تعمل  تقنية NET Framework ؟ 

اطار العمل .net هو مكتبة ربط ديناميكية تحوي على البنية الأساسية أي تحوي على مفسر اللغة الوسيطة واجرائيات تنفيذ اللغة المشتركة وغيرها ... .
    يحتوي إطار العمل على مكتبة .NET وهذه المكتبة عبارة عن أكواد جاهزة مصنفة تصنيفات مختلفة فبعضها خاص ببرمجة الشبكات وبعضها خاص ببرمجة تطبيقات الويندوز، والبعض الآخر مختص ببرمجة مواقع الويب.
   عندما يكتب المبرمج برنامجه بأي لغة من لغات (.NET) وعندما يقوم بتجمعيها فإنه وعلى عكس لغات البرمجة التقليدية ، لا يقوم المجمع (assembly) بإنتاج ملف تشغيلي (.exe) مباشرة لكنه يقوم بإنتاج ملف يسمى (CIL) اختصار الي :  Common Intermediate Language
اي ملفات اللغة الوسيطة العامة وهي ملفات محايده لا تتأثر بلغة البرمجة الذي كتب بها التطبيق لهذا
السبب سميت محايده ولا يمكن تنفيذه مباشرة.
و يحتاج تنفيذها الى برنامج اخر وهو (CLR) اختصار الى : Common Language Runtime
وهو برنامج يلعب دور حاسوب افتراضي  يمكن تنفيذ البرنامج المحفوظ في (CIL) إلا إنه في الواقع يقوم بإنشاء نسخة من البرنامج بلغة الآلة تتناسب الحاسوب الحقيقي ومن ثم يقوم بتشغليها عليه.
    ويحتوي الـ .NET FRAMEWORK أيضاً على ما يسمى بـ Common Type System (CTS) وهي عبارة عن الأنواع المتاحة للغات الـ .NET لتمثيل البيانات في ذاكرة الكومبيوتر.
ملاحظة: Common Language Runtime شبيه بال (Java Runtime) في لغة java.

ما هي تقنية NET Framework


تاريخ الـ . NET  و لغات البرمجة منذ بداية صناعة الحاسوب :

  • في بداية الأمر خرج أناس عرفوا بإسم المهندسين والمصممين والعلماء اللذين قاموا بتصميم وهيكلة جهاز الحاسوب وقد نتج عن ذلك جهاز ضخم إحتوى على 5 طوابق تقريبا من النوع الكبير . وكانت فكرة إنشاء جهاز حاسب آلي قد نتجت إثر ضخامة المعلومات وإزالة طريقة الكتابة على الورق وإزالة الوقت الكبير للعمليات الحسابية الأربعة .
  • IBM كانت من الشركات الرائدة والسباقة في هذا المجال بحيث كانت تصمم جهاز حاسب آلي و تضع فيه نظام تشغيل صغير Operating System ( O.S ) والتي أدت فيما بعد إلى تطور مصطلح نظام التشغيل O.S والحاجة إلى تطويره .
  • ومعنى نظام التشغيل : هو النظام الذي يستخدم أجهزة الهاردوير أو العتاد الموجودة في الحاسوب .
  • في ذلك الوقت ظهر طالبين من إحدى الجامعات الأمريكية اللذان كانا في مستوى سنة ثانية من تطوير وتصميم نظام تشغيل خاص بهما والذي أسفر فيما بعد عن ثورة معلوماتية ضخمة وهما الطالبان بيل غيتس وصاحبه وكان هندي الأصل .
  • عندما نظرت شركة IBM إلى النظام الذي صمم بواسطة هذين الطالبين تبنت نظامهما بالكامل وعملت على تشجيعهما والذي أدى إلى أن تركا الدراسة وفتحا شراكة مع شركة IBM .
  • كان النظام يدعى DOS – 8 Bit  و كلمة DOS  جاءت من الجملة المختصرة Disk Operating System ومعناها قرص نظام التشغيل . أما القسم الثاني من النظام فهو كناية ودلالة على عدد الخانات المستعملة لكل جملة Instructor وهي أوامر النظام ونلاحظ هنا أن عددها 8 أي أننا عندما نضغط على لوحة المفاتيح من خلال النظام فإن الحاسوب يقوم بفهمها على أساس 8 أرقام ثنائية ( 1 , 0 ) . وكما نعرف فإن الحاسوب لا يمكنه التعامل مع الحروف وإنما بواسطة الأرقام الثنائية Binary فمثلا لإدخال حرف A فإن الحاسوب يفهمها ( ******** ) والنجمة معناها إما 1 أو 0  .
  • من خلال هذا النظام ظهرت لغة الأسمبلي الشهيرة والمعقدة ومعناها لغة التجميع .
  • بواسطة لغة الأسمبلي كان العمل صعبا وكانت الجمل طويلة وعدد سطورها طويلة حيث أن المبرمج كان يتعامل مع الذاكرة مباشرة من خلال وضع وجمع وحذف .. إلخ قيمتين محزنتين في الذاكرة ، لذلك فقد كان يتوجب على المبرمج مثلا لطباعة كلمة أن يكتب 5 أو 6 سطور لتنفيذ ذلك . و نتيجة لذلك كان لابد من إيجاد طريقة جديدة لتوفير الوقت والتقليل من حجم البرنامج فقاموا بإبتكار طريقة جديدة وهي طريقة الدوال Function حيث قاموا بوضع أكثر من Instruction بدالة واحدة فقط ومن هنا نشأ مفهوم المكتبات التي تضم أكثر من دالة وتطورت البرمجة فعرفت بإسم Structured Programming ومعناها البرمجة التركيبية . نتيجة لذلك طُورت عدة لغات مثل COBOL  ولغة C الشهيرة و FORTRON .
  • بعدد تلك اللغات وبسبب الحاجة إلى إضافة كلمات فقد تم إضافة وتوسعة النظام لكي يصبح DOS – 16 Bit .
  • كانت شركة أبيل ماكنتوش قد عملت على تطوير نظام عجيب وكان فريد من نوعه فقد كان يستخدم الصور للدلالة على الأعمال فظهر شكل الملف وشكل المجلد ... إلخ وذلك بدل الشاشة السوداء التي كانت معروفة في ذلك الوقت والمسماة Console وبذلك النظام تم معرفة الـ Interface ومعناها الواجهة والتي كانت User-Friendly حيث كان التفاعل مع المستخدم تفاعلاً مباشراً من خلال الرسومات .
  • أخذت شركة SUN الفكرة من نظام ماكنتوش والتي كانت تمتلك النظام المفتوح Open Source المسمى يونيكس نسبة إلى صانعه وقامت بتشكيل نظام جديد  عُرف بإسم لينكس .
  • ظهرت في هذه اللحظة التسابق لإنتاج نظام تشغيل كامل من واسطة كبريات الشركات مثل Microsoft  وشركة Sun  وشركة Apple Macintosh  و باقي الشركات الكبرى .
  • وأيضاً في هذه الأثناء وبينما كان هناك تقدم وتطور من قِبل شركات Sun  وشركة Apple Macintosh  كانت شركة Microsoft   تعيش ركود نسبي لأنها كانت تعتمد نظام الـ Console في تلك الأثناء .
  • شعرت شركة مايكروسوفت بعجزها وبتنحيها عن السوق فقامت بطرح تطبيق Application وليس نظام تشغيل يعتمد الواجهة الرسومية والذي عرف بنظام Windows 3.X .
  • ظهرت الحاجة لتوحيد نظام البرمجة لدى المبرمجين لكي يكون الكود ديناميكي وسلس وله قواعد وشروط ولكي لا يخرج كل مصمم بأفكار بعيدة عن الهدف المقصود فظهر مفهوم الـ Object Oriented Programming والمعروف بالرمز ( OOP ) وأدت إلى ظهور العديد من اللغات ومن الأمثلة عليها C++ , Small Talk , … .
  • بواسطة البرمجة الموجهة بالأهداف أنتجت شركة مايكروسوفت شبه نظام وسموه Windows 95  وسبب أنه كان شبه نظام أنه كان يعتمد على نظام الـ DOS في أداءه وعمله .
  • وظهرت الحاجة إلى إخراج جيل من البرمجيات المتكاملة من خلال شركة مايكروسوفت والتي سميت فيما بعد بـ Microsoft Office  .
  • وبعد سنتين تقريباً طرحت شركة مايكروسوفت نظام تشغيل وسمته Windows 97 ولكنه فشل فشلاً سريعاً فقد طرح وخلال شهرين فقط تم سحبه من الأسواق لرداءته .
  • ولكنها سرعان ما قدمت أول نظام تشغيل مستقل بواجهة رسومية والذي عرف بإسم Windows 98 ومن هنا ظهرت الحاجة لإنشاء برمجيات متكاملة على طريقة الـ Enterprise التي تعني وجود جميع الحلول في مجموعة واحدة .
  • قامت شركة مايكروسوفت بالتفكير بفكرة ذكية لجذب ولإجبار جميع العملاء على إستخدام نظامها التشغيلي فقد قامت بطرح معالج لبعض اللغات مثل لغة الـ C ولغة الـ BASIC ولإجبار المبرمجين على إستخدامه فقد قامت بالتسهيل على المبرمجين وبالمجان فقدمت API المستخدمة من قِبل النظام والمختصرة من جملة Application Program Interface والتي تعني واجهة البرامج التطبيقية . فسهلت على المبرمج فمثلاً إذا أراد المبرمج كتابة كود لإظهار نافذة فقط فإنه سيبقي وقت طويل جداً وسيكتب كود طويل جداً  ، فقامت مايكروسوفت بطرح المكتبات لهذه الغاية بحيث ينتج نافذة كما في نظام التشغيل بوقت وكلفة قليلين جداً . وبذلك جذبت العديد من المبرمجين ومن العملاء إليها بواسطة هذه الخطة . وبالطبع فإن البرنامج الناتج من هذه العملية لن يشتغل سوى على نظام التشغيل Windows .
  • قام المبرمجين بكتابة البرامج المختلفة بواسطة نظام API لأنه كان سلس وسهل الإستعمال ونتيجة لذلك فقد زادت مبيعات شركة مايكروسوفت أضعافاً مضاعفة والتي وصلت سنوياً إلى 3.5 مليار دولار سنوياً .
  • في هذه الأثناء قامت شركة SUN بطرح لغة جديدة من إنتاجها والتي عرفت بإسم جافا JAVA لملاحقة شركة مايكروسوفت وبذلك تكون هذه الشركة قد قطعت شوطاً كبيراً بهذا المجال حيث قامت بتجزيء هذه اللغة إلى ثلاثة أقسام وهي : J2SE , J2EE , J2ME .
  • ظهرت مكتبتان هنا من إنتاج الشركتان وهما :
    SDK : من شركة مايكروسوفت وهي إختصار لجملة Software Developer Kit  .
    JDK : من شركة SUN وهي إختصار لجملة JAVA Developer Kit  .
  • لكن يوجد جانب لم تعيهما تلك الشركتان وهو قواعد البيانات Database  والتي أصبحت حالياً الجانب المهم والأكبر في إستخدام الحاسب الآلي فقد كانت شركة Oracle الرائدة في هذا المجال والسباقة إليه . وظهرت شركات أخرى مثل شركة Fox Pro التي أيضاً كانت من الشركات الكبيرة في هذا المجال .
  • تنبهت شركة مايكروسوفت باكراً إلى خطورة هذا الجانب فإشترت ملكية شركة Fox Pro وضمتها إلى أملاكها وقامت لاحقاً بإنشاء المكتبة الخاصة للـ Database  التي عرفت بإسم SQL .
  • و بإستخدام قواعد البيانات أنتجت شركة مايكروسوفت لغات جديدة مثل Visual C++ , Visual Basic , Visual Fox Pro وضمتها إلى قائمتها البرمجية .
  • و بإستخدام تكنولوجيا الإنترنت فقد قامت شركة مايكروسوفت بطرح لغة خاصة لمعالجة صفحات الإنترنت والي سُميت فيما بعد بالإسم InterDev وهي عبارة عن صفحات إنترنت نشطة ذات الإمتداد المعروف ASP .
  • كانت شركة SUN تعمل على تحديث وتطوير لغتها ( JAVA ) أول بأول من حيث قواعد البيانات و التعامل مع الإنترنت .
  • وطبعاً جاءت هنا فكرة الـ Script والتي تعني جزء من كود لغات الإنترنت في صفحة HTML .
  • بسبب الطمع والجشع الذي كان عند شركة مايكروسوفت فقد قامت بالخطوة القاتلة وهي أنها أنشأت لغة جديدة وسمتها بإسم Visual J++ , ولكنها لم تسلم بتلك الفعلة فقد قامت شركة SUN برفع دعوة قضائية على شركة مايكروسوفت ولأنها صاحبة اللغة فقد خسرت شركة مايكروسوفت تلك القضية وتم تغريمها مبالغ طائلة وصلت إلى 3 مليار دولار أمريكي ومُنعت من إستعمالها والتطوير عليها لذلك السبب .
  • يمكن تلخيص الإصدارات للغات البرمجة في تلك الفترة لشركة مايكروسوفت بالجدول التالي :
Visual Studio 6
Visual Studio 5
Visual Studio 4
Visual Studio 2
Visual C++
Visual C++
C
Visual Basic
Visual Basic
Visual Basic
Basic
Visual Fox Pro
Visual Fox Pro
Visual Fox Pro

InterDev
InterDev


Visual J++


  

  • ظهرت مشاكل عديدة في لغات شركة مايكروسوفت فمثلاً وجود أوامر في لغة السي ++ وعدم وجودها في الفيجوال بيسك وكذلك فقد كان من الصعب تشغيل برنامج على الفيجوال بينما هو مكتوب بلغة السي ++ , في هذه الأثناء كانت شركة SUN تسير على الطريق الصحيح وتعمل على تطوير لغتها أولاً بأول . ومن المشاكل الأخرى لمايكروسوفت أن مبرمج اللغة الواحدة لا يستطيع أن يتعامل أكثر من نسخة من برامج قواعد البيانات فمثلاً كل مبرمج واحد يستطيع التعامل مع لغة واحدة لا يسعة إستعمال غير مكتبة واحدة فقط من المكتبات التالية DAO , ADO , ODBC   ... الخ ، وكل مكتبة متخصصة بلغة واحدة لا يستطيع المبرمج إستعمالها في لغة أخرى وفي هذا تقسيم المبرمجين إلى أقسام عديدة وكل مبرمج له مجال يختلف عن مجال زميله في المهنة ، بينما كانت شركة SUN تمشي بدون أي مشاكل فهناك لغة واحدة فقط وهي الجافا وهناك مكتبة واحدة وموحدة فقط لقواعد البيانات وهي JDBC .
  • نظرت شركة مايكروسوفت بنظرة عميقة للموضوع وأسفر عن ذلك خطة جديدة مع عام 2000 وهي إخراج لغات موحدة لها نفس مكتبات التشغيل ولها إطار واحد فقط Framework  وأدت إلى ظهور لغات جديدة عرفت بمجموعة الدوت نيت . NET  فقدمت لغات جديدة مثل VC# وضمتها في مجموعة Visual Studio 7 . NET وضمت :
1 – Visual C # ( 2000 )
2 – Visual C ++ ( 2002 )
3 – Visual Basic (2002)
4 – Visual J# ( 2003 )
في هذه النسخة قاموا بضم لغة الـ J# ولعلك تتساءل كيف ذلك ؟؟ والمحاكمة ؟؟
هنا قامت شركة مايكروسوفت بتصميم تلك اللغة من الصفر وقاموا بتطويرها لتحاكي لغة الجافا

كل اللغات السابقة كانت قادرة وبكفاءة التعامل مع الـ XML , ADO وبإستطاعة المبرمج تصميم وصناعة البرامج في المجالات التالية :
Windows Application , Web Application , Mobile Application , Smart Device
كان هذا في النسخة لعام 2000 الماضي
وفي نسخة عام 2003 قاموا بإنشاء Compiler مترجم لكل لغة وهو موحد ويستدعي مكتبة واحدة كما في الشكل التالي:

1 تعليقات :