1672009 - وزارة التربية والتعليم

Download Report

Transcript 1672009 - وزارة التربية والتعليم

‫وزارة التربية والتعليم‬
‫اإلدارة العامة للكمبيوتر التعليمي‬
‫أساسيات‬
‫البرمجة‬
‫إعداد‪ /‬أحمد األنصاري السالموني‬
‫أجندة‪:‬‬
‫• نظام المعلومات المعتمد على استخدام الكمبيوتر‪.‬‬
‫• العمليات األساسية التي يقوم بها الكمبيوتر‪.‬‬
‫• أشهر أساليب حل المشكالت‪.‬‬
‫• مقدمة في تقنية ‪.Net‬‬
‫• ما هي بيئة ‪.Net‬؟‬
‫• الجديد في ‪.Net‬‬
‫نظام المعلومات‬
‫المعتمد على استخدام الكمبيوتر‬
‫هو أي نظام يجمـع بين التكنولوجيـا‬
‫واألفراد ويسمح ألي مؤسسة بجمع‬
‫وتخزين البيانات ومعالجتها الستخالص‬
‫معلومات مفيدة‪.‬‬
‫العمليات األساسية التي يقوم بها الكمبيوتر‪:‬‬
‫إدخال البيانات‪.‬‬
‫تخزين البيانات في الذاكرة‪.‬‬
‫إجراء المعالجة الالزمة‪.‬‬
‫إخراج النتائج‪.‬‬
‫لغات البرمجة‪:‬‬
‫هي مجموعة القواعد التي‬
‫تستخدم في كتابة التعليمات‬
‫أو األوامر لحل مشكلة معينة‬
‫أو إنتاج التطبيقات‪.‬‬
‫من أنواع لغات البرمجة‪:‬‬
‫ لغات البرمجة اإلجرائية منها‪- COBOL :‬‬‫‪BASIC - FORTRAN‬‬
‫ لغات البرمجة الشيئية منها‪:‬‬‫‪C# - Visual Basic.NET‬‬
‫ترجمة البرنامج‪:‬‬
‫البرنامج المصدري‬
‫وهو البرنامج الذي يكتبه المبرمج بإحدى‬
‫لغات ‪ .Net‬ويكون مفهوم من قبل اإلنسان‪.‬‬
‫‪:Source Program‬‬
‫البرنامج الهدف ‪:Object Program‬‬
‫وهو برنامج بلغة وسيطة ‪.MSIL‬‬
‫تابع ترجمة البرنامج‪:‬‬
‫لغة اآللة ‪:Machine Language‬‬
‫هي لغة البرمجة التي تكتب تعليماتها بالشفرة‬
‫الثنائية ويترجم من ‪ IL‬إلى لغة اآللة بواسطة‬
‫‪.JIT Compiler‬‬
‫المترجم ‪:Compiler‬‬
‫هو البرنامج الذي يقوم بتحويل البرنامج المصدري‬
‫إلى برنامج الهدف بعد التأكد من خلوها من األخطاء‪.‬‬
‫تابع ترجمة البرنامج‪:‬‬
‫المفسر ‪:Interpreter‬‬
‫يقوم بترجمة األوامر والتعليمات إلى لغة اآللة سطر‬
‫بسطر وفي حالة ظهور أى خطأ يتوقف عن الترجمة‪.‬‬
‫وظائف المترجم‪:‬‬
‫– تحويل برنامج المصدر الخالي من األخطاء إلى برنامج الهدف‪.‬‬
‫– اكتشاف األخطاء اإلمالئية والقواعد‪.‬‬
‫استخدام الخوارزم في حل المشكالت‪:‬‬
‫)‪(1‬‬
‫)‪(2‬‬
‫)‪(3‬‬
‫)‪(4‬‬
‫)‪(5‬‬
‫)‪(6‬‬
‫تحديد المشكلة‪.‬‬
‫تحديد المخرجات‪.‬‬
‫تحديد المدخالت‪.‬‬
‫اهمال البيانات الغير مفيدة في حل المشكلة‪.‬‬
‫تحديد خطوات الحل (العمليات)‪.‬‬
‫كتابة ‪ Algorithm‬الحل‪.‬‬
‫مثال‪ :‬حل معادلة من الدرجة الثانية‪:‬‬
‫‪a x2 + b x + c = 0‬‬
‫معادلة من الدرجة الثانية‬
‫المطلوب‪:‬‬
‫تحديد خطوات حل المعادلة باستخدام الخوارزم‬
‫علما بأن جذري المعادلة‪:‬‬
‫)‪x1,2= (-b ± (b2-4ac)^.5) / (2 a‬‬
‫الحل‪:‬‬
‫)‪ (1‬تحديد المشكلة‪ :‬ايجاد جذري المعادلة‪.‬‬
‫(‪ )2‬تحديد المخرجات‪ :‬طباعة ‪X1, X2‬‬
‫(‪ )3‬تحديد المدخالت‪.a, b, c :‬‬
‫(‪ )4‬إهمال البيانات الغير مفيدة في حل المشكلة‪:‬‬
‫ال يوجد‪.‬‬
‫تابع الحل‪:‬‬
‫(‪ )5‬تحديد خطوات الحل‪:‬‬
‫ حساب قيمة المميز أسفل الجذر التربيعي‪.‬‬‫‪M = b2 – 4 a c‬‬
‫ اختبار قيمة ‪:M‬‬‫إذا كانت سالبة إذا المعادلة ليس لها حل‪.‬‬
‫إذا كانت تساوي صفر إذا يوجد جذر واحد‪.‬‬
‫إذا كانت القيمة موجبه إذا هناك جذرين للمعادلة‪.‬‬
‫تابع الحل‪:‬‬
‫(‪ )6‬كتابة ‪ Algorithm‬الحل‪:‬‬
‫ ادخال قيم المعامالت ‪.a, b, c‬‬‫ حساب المميز ‪.m‬‬‫ اختبار قيمته‪.‬‬‫ حساب قيمة جذري المعادلة ‪.x1, x2‬‬‫‪ -‬طباعة الناتج ‪.x1, x2‬‬
‫أشهر أساليب حل المشكالت‪:‬‬
‫هناك طرائق عديدة نذكر منها‪:‬‬
‫نموذج ‪.IPO‬‬
‫خرائط التدفق‪.‬‬
‫سودوكود‪.‬‬
‫نموذج ‪:IPO‬‬
‫هو جدول أو نموذج يضم تحليل‬
‫أي مشكلة إلى مدخالت ومعالجة‬
‫ومخرجات‪.‬‬
‫مثال‪ :‬حل معادلة من الدرجة الثانية‪:‬‬
‫‪a x2 + b x + c = 0‬‬
‫معادلة من الدرجة الثانية‬
‫المطلوب‪:‬‬
‫إعداد نموذج ‪ IPO‬الذي يوضيح المدخالت‬
‫والمعالجة والمخرجات‪.‬‬
‫علما بأن جذري المعادلة‪:‬‬
‫)‪x1,2= (-b ± (b2-4ac)^.5) / (2 a‬‬
‫المخرجات‬
‫(‪)Output‬‬
‫المعالجة (‪)Processing‬‬
‫طباعة الناتج وقد حساب قيمة المميز‪M = b2 – 4 a c :‬‬
‫هل ‪ M‬أقل من صفر إذا ال يوجد حل‬
‫يكون‪:‬‬
‫للمعادلة‪.‬‬
‫رسالة "ال يوجد ‪-‬هل ‪ M‬تساوي صفر إذا هناك جذر‬‫حل”‪.‬‬
‫واحد للمعادلة‪X = - b / (2 a) :‬‬
‫ طباعة ‪.X‬‬‫طباعة الجذرين‬‫‪X1, x2‬‬
‫هل ‪M‬أكبر من صفر إذا يوجد للمعادلة‬‫جذرين‪:‬‬
‫)‪(b2-4ac)^0.5‬‬
‫‪X1 = (-b +‬‬
‫)‪/ (2 a‬‬
‫)‪X2 = (-b - (b2-4ac)^0.5) / (2 a‬‬
‫المدخالت‬
‫(‪)Input‬‬
‫‪a, b, c‬‬
‫خرائط التدفق‪:‬‬
‫‪Flow Chart‬‬
‫هي عبارة عن تمثيل تخطيطي‪ ،‬يوضح‬
‫بسهولة ترتيب خطوات حل المشكلة‪ ،‬بدءا‬
‫من إدخال البيانات‪ ،‬ثم تحديد العمليات‬
‫الحسابية والمنطقية‪ ،‬وصوال للمخرجات‬
‫التي تمثل حل المشكلة‪.‬‬
‫بعض األشكال المستخدمة في رسم خرائط التدفق‪:‬‬
‫الرمز الطرفي ‪Terminal‬‬
‫رمز اإلدخال واإلخراج ‪Input / Output‬‬
‫رمز العمليات ‪Process‬‬
‫رمز اتخاذ القرار ‪Decision‬‬
‫تابع بعض األشكال المستخدمة في رسم خرائط التدفق‪:‬‬
‫خط االتجاه ‪Flow Line‬‬
‫رمز الربط أو االتصال ‪Reference‬‬
‫رمز اضافة تعليق ‪Annotation‬‬
‫االعتبارات الواجب مراعاتها عند رسم خرائط التدفق‪:‬‬
‫بساطة ووضوح الخريطة لسهولة تتبع خطواتها‪.‬‬
‫االتجاه االفتراضي ألشكال الخريطة من اليسار‬
‫إلى اليمين ومن أعلى إلى أسفل‪.‬‬
‫رمز العمليات يخرج منه خط اتجاه واحد فقط‪.‬‬
‫شكل اتخاذ القرار يدخل له خط اتجاه واحد‬
‫ويخرج منه خطان (نعم ‪ /‬ال)‪.‬‬
‫تابع االعتبارات الواجب مراعاتها عند رسم خرائط التدفق‪:‬‬
‫الرمز الطرفي للبداية له خط اتجاه واحد خارج‬
‫والعكس في الرمز الطرفي للنهاية‪.‬‬
‫يفضل استخدام رمز اضافة تعليق مع أشكال‬
‫الخريطة التي تحتاج توضيح‪.‬‬
‫يستخدم رمز الربط أو االتصال إذا كانت خريطة‬
‫التدفق كبيرة وتحتاج أكثر من صفحة‪.‬‬
‫بعد رسم خريطة التدفق يفضل تتبع جميع مساراتها‬
‫واختبارها بقيم افتراضية معروف نتائجها‪.‬‬
‫مميزات استخدام خرائط التدفق‪:‬‬
‫تمثل ضرورة قبل كتابة البرامج الكبيرة‪.‬‬
‫تمثل أحد أشكال توثيق البرنامج‪.‬‬
‫تضع تصورا كامال لحل المشكلة وتساعد في تتبع مسارها‪.‬‬
‫تساعد في عدم تكرار أجزاء معينه في الرسم أو البرمجة‪.‬‬
‫األشكال المستخدمة في رسم خرائط التدفق لها مدلول‬
‫واحد لدى جميع المتعاملين معها‪.‬‬
‫تساعد في تصحيح األخطاء بسهولة‪.‬‬
‫تساعد في تطوير وصيانة البرامج‪.‬‬
‫عيوب استخدام خرائط التدفق‪:‬‬
‫قد تبدو الخريطة معقدة للمشكالت الكبيرة‪.‬‬
‫بعض التعديالت في البرنامج قد يؤدي إلعادة‬
‫رسم الخريطة‪.‬‬
‫أحيانا تشكل نسخ خريطة التدفق صعوبة كبيرة‪.‬‬
‫الوقوع في بعض التفاصيل التي تبعدنا عن الحل‪.‬‬
‫مثال‪ :‬حل معادلة من الدرجة الثانية‪:‬‬
‫‪a x2 + b x + c = 0‬‬
‫معادلة من الدرجة الثانية‬
‫المطلوب‪:‬‬
‫رسم خريطة التدفق التي توضح خطوات حل‬
‫معادلة من الدرجة الثانية‪.‬‬
‫علما بأن جذري المعادلة‪:‬‬
‫)‪x1,2= (-b ± (b2-4ac)^.5) / (2 a‬‬
:‫الحل‬
Start
Input a, b, c
M = b2 – 4 a c
Yes
If m < 0
No
No
Print "No Roots"
Yes
If m = 0
X1 = (-b + (b2-4ac)^0.5) / (2 a)
X = -b / (2 a)
X2 = (-b - (b2-4ac)^0.5) / (2 a)
Print x1
Print x1, x2
End
‫مثال‪ :‬تحويل درجة الحرارة من فهرنهايت إلى مئوية‪:‬‬
‫ارسم خريطة التدفق التي ندخل لها درجة الحرارة‬
‫بالفهرنهايت فيتم تحويلها إلى ما يناظرها بدرجة‬
‫الحرارة المئوية‪.‬‬
‫علما بأن قانون التحويل هي‪:‬‬
‫)‪C = (5 / 9) * ( F – 32‬‬
Start
Input F
C = (5 / 9) * (F – 32)
Print F, C
End
:‫الحل‬
‫مثال‪ :‬حساب مجموع بعض األعداد‪:‬‬
‫ارسم خريطة التدفق لحساب حاصل جمع أول ‪25‬‬
‫عدد فردي من األعداد الطبيعية‪.‬‬
‫وذلك كما يلي‪:‬‬
‫‪Sum = 1 + 3 + 5 + …………. + 49‬‬
:‫الحل‬
Start
Sum = 0
K=1
Sum = Sum + K
No
K=K+2
If
K = 50
Yes
Print Sum
End
‫سودوكود ‪:‬‬
‫‪Pseudocode‬‬
‫طريقة لعرض خطوات حل‬
‫المشكلة بلغة بسيطة مختصرة‬
‫قريبة من لغات البرمجة‪.‬‬
‫مكونات سودوكود‪:‬‬
‫الكلمات‪ :‬وهي تمثل األفعال المطلوب‬
‫تنفيذها مثل‪.)Calculate – Print – Read - Stop( :‬‬
‫الجمل‪ :‬تشرح المطلوب القيام به مثل‪:‬‬
‫‪Calculate Sum of two Numbers‬‬
‫مقاطع‪ :‬والتي تمثل وحدة واحدة تضم عدة‬
‫جمل مثل‪.Block IF :‬‬
‫قواعد وقيود استخدام سودوكود‪:‬‬
‫اختيار أسماء ذات معنى واضح للمتغيرات‬
‫بحيث تعبر عن محتواه‪.‬‬
‫كتابة األوامر في صورة خطوات سهلة‬
‫وبسيطة وواضحة‪.‬‬
‫قواعد وقيود استخدام سودوكود‪:‬‬
‫تتميز "سودوكود” بأنها‪:‬‬
‫ سهلة الفهم‪.‬‬‫ ال تستخدم رموزا خاصة‪.‬‬‫ ال تخضع لقواعد صعبة أو معقدة‪.‬‬‫‪ -‬سهلة التحويل لبرنامج بأي لغة برمجة‪.‬‬
‫يؤخذ على "سودوكود”‪:‬‬
‫‪ -‬قد تكون طويلة بعض الشيء خاصة في المشاكل المعقدة‪.‬‬
‫مثال‪ :‬حل معادلة من الدرجة الثانية‪:‬‬
‫‪a x2 + b x + c = 0‬‬
‫معادلة من الدرجة الثانية‬
‫المطلوب‪:‬‬
‫كتابة سودوكود يوضح خطوات حل معادلة‬
‫من الدرجة الثانية‪.‬‬
‫علما بأن جذري المعادلة‪:‬‬
‫)‪x1,2= (-b ± (b2-4ac)^.5) / (2 a‬‬
:‫الحل‬
(1) Input Values: read a, b, c
(2) Calculate m, Where it given by:
calculate m = b2 – 4 a c
(3) Detect m value:
If m less than Zero then
print “No Roots”
Else if m Equal 0 then
calculate x = - b / (2 a)
Print “ x1 = x2 = “, x
else
calculate x1 = (-b + (b2-4ac)^.5) / (2 a)
x2 = (-b - (b2-4ac)^.5) / (2 a)
Print x1, x2
end if
end if
(4) Stop processing
‫بنية أو تركيب البرامج‪:‬‬
‫أوامر متتالية أو تتابعية‪Sequential .‬‬
‫أوامر التفريع أو االختبار أو التشعب‪Branching .‬‬
‫أوامر التكرار‪Looping .‬‬
‫مقدمة في تقنية ‪.Net‬‬
‫البرمجة اإلجرائية‪:‬‬
‫هي عبارة عن مجموعة مــن التعليمات يتـــــم‬
‫تنفيذها بالترتيب ما لم يوجد بالبرنامج أوامــــر‬
‫تغير من هذا الترتيب‪.‬‬
‫تعد لغة ‪Basic‬أحد لغات البرمجة اإلجرائيـــــــة‪،‬‬
‫وكانت تعمل في بيئة نظام التشغيل ‪ ،DOS‬ورغـم‬
‫أنهــــا كانت بسيطة وسهلة إال أنها كانت محـــدودة‬
‫اإلمكانات ولم تصمد أمام لغات البرمجة األخرى‪.‬‬
‫البرمجة الشيئية‪:‬‬
‫يتم تقسيم البرنامج إلى إجراءات يتم تنفيذ كل إجــــــراء‬
‫حسب وقوع حدث معين على أحـــــــد الكائنات‪.‬‬
‫وقد أصدرت ميكروسوفت لغة ‪ VB‬والتي تعمل في بيئة نظام‬
‫التشغيل ‪ ،Windows‬وتبعتها بعـــــــدة إصدارات –ســـــت‬
‫إصدارات‪ -‬استخدمت على نطاق واسع في برمجة التطبيقــات‬
‫المختلفة للعديد من المجاالت‪ ،‬ولكن ظلت –مقارنة مع باقـــي‬
‫لغات البرمجة‪ -‬األبطأ نسبيا واألكبر حجما وتعاني من بعــض‬
‫أوجه القصور في األداء‪ ،‬هذا باإلضافة إلى أنها ليست مـــــن‬
‫اللغات الموجهة باألحداث ‪.Object Oriented‬‬
‫‪-‬‬
‫اإلصدارات‪:‬‬
‫أصدرت ميكروسوفت ست إصدارات‬
‫من ‪ VB‬الذي يعتمد على البرمجة‬
‫الشيئية‪.‬‬
‫بعدها أصدرت ثالث إصدارات من‬
‫‪ Visual Basic.Net‬هي‪:‬‬
‫‪VB 2003, VB 2005, VB 2008, VB 2010‬‬
‫‪.‬‬
‫ما هي بيئة ‪:.Net‬‬
‫تقنية ‪ .Net‬هي حل متكامل ومتطور من‬
‫شركة ميكروسوفت لبناء األنظمة وتشغيلها‬
‫للجيل القادم من التطبيقات واألجهزة التي‬
‫تسمح بعملية ربط األجهزة والناس‬
‫والمعلومات والشبكات في كل مكان بطريقة‬
‫سهلة وآمنة ومنظمة‪.‬‬
‫ومما سبق يمكن القول أن تقنية ‪.Net‬تشمل اآلتي‪:‬‬
‫)‪ (1‬بيئة التطوير المتكاملة ‪ Visual Studio‬لتسهيل إنتاج‬
‫التطبيقات وإن كان يمكن االستغناء عنه بحيث يتم إنتاج‬
‫التطبيقات من خالل محرر نصوص "‪ "Notepad‬وإطار‬
‫العمل "‪."Framework‬‬
‫)‪ (2‬لغات البرمجة وتنفيذ قواعد العمل‪.‬‬
‫)‪ (3‬إطار العمل ‪ Framework‬ويشمل طبقة واسعة من المكتبات‬
‫‪ Class Libraries‬ولغة التنفيذ المشتركة ‪.CLR‬‬
‫)‪(4‬‬
‫المساعدة ‪ Help‬باإلضافة للمساعدة من خالل اإلنترنت ‪.Online‬‬
‫)‪ Platform (5‬ويقصد به كل شئ يساهم في إنتاج واستخدام مكونات‬
‫‪ .Net‬من أفراد وأجهزة واتصاالت وشبكات وأدوات وخدمات‪ ...‬الخ‪.‬‬
‫مكونات ‪.Net‬‬
Platform
‫كيف يعمل إطار عمل ‪.Net‬‬
‫‪Framework‬؟‬
‫إطار العمل طبقة وسيطة بين نظام التشغيل ولغات‬
‫البرمجة ويعمل كبيئة إلنتاج وتشغيل وإدارة التطبيقات‬
‫المصممة للعمل تحت بيئته كما يعمل على توفير مكتبات‬
‫موحدة للتطوير مما يسهل إنتاج التطبيقات متنوعة مهما‬
‫تعددت اللغات ويظهر ذلك واضحا في أن كل شئ تقوم به‬
‫يكتب له كود يمكنك االطالع عليه وتعديله وله العديد من‬
‫اإلصدارات مثل‪ 1, 1.1, 2, 3.5 :‬ويستطيع نظام‬
‫التشغيل التعامل مع أكثر من إصدار في نفس الوقت‪.‬‬
.Net Framework
Framework
Framework ‫أهم مكونات‬
‫لغة التنفيذ المشتركة‪:‬‬
‫”‪Common Language Runtime “CLR‬‬
‫أحد أهم مكونات بنية إطار العمل ‪.Net‬‬
‫‪ framework‬ويطلق عليه بيئة العمل المشترك‬
‫وبه يتم تنفيذ كل التطبيقات ويتيح لك مزايا عديدة‬
‫منها التعامل مع األخطاء واألمان وإزالة العيوب‬
‫والتناسق في مالمح البرنامج كما يقوم بتحويل ملف‬
‫‪ IL‬أو ‪ MSIL‬إلى لغة اآللة ‪Machine‬‬
‫‪ Language‬من خالل المترجم ‪.JIT‬‬
‫الترجمة على الفور‪:‬‬
‫”‪Just in time “Jit‬‬
‫هي تقنية –جزء من ‪ -CLR‬تقوم‬
‫بترجمة البرنامج عند تنفيذه حيث ينتج‬
‫أفضل شفرة تتناسب مع معالج الجهاز‬
‫الذي سيعمل عليه البرنامج‪.‬‬
‫مرحلتي ترجمة البرنامج‬
‫مكتبة الفئات ‪:Base Class Library‬‬
‫أحد أهم مكونات إطار العمل ‪.Net‬‬
‫‪ Framework‬وهي المكتبات التي‬
‫تساعد المبرمجين إلنشاء التطبيقات‬
‫وتحتوي ‪ .Net‬على اآلالف منها موزعة‬
‫في مجموعات هرمية " ‪Name‬‬
‫‪ "Space‬بهيكل ‪.Net‬‬
‫فمثال‪:‬‬
‫ فيما يتعلق بنظام الملفات يمكنك البحث في‬‫الفئة ‪ IO.system‬وستجد ما تريد في الفئة‬
‫الفرعية ‪IO.syatem.file‬‬
‫ وفيما يتعلق ببرمجة صفحات ‪ASP.Net‬‬‫ابحث في ‪system.web‬‬
‫ فيما يتعلق بمكتبات قواعد البيانات نبحث في‬‫‪.System.data‬‬
:.NET ‫المنتجات التى يمكن إنتاجها من خالل‬
(1) DESKTOP APPLICATIONS.
(2) WEB APPLICATIONS.
(3) WEB SERVICES.
(4) MOBILE APPLICATIONS.
‫الجديد في ‪VB.Net‬‬
Integrated ‫تعد بيئة تطوير متكاملة‬
Development
Environment
."IDE"
‫ كنا نحصل على برمجيات‬.Net ‫قبل ظهور‬
‫ ومع‬،‫ فقط‬Windows Application
‫ أمكن الحصول على منتجات‬.Net ‫ظهور‬
–Web Application :‫مثل‬
‫أخرى‬
.Web Services
‫قبل ‪ :.Net‬بعد اإلنتهاء من البرنامج يتم‬
‫ترجمته إلى ‪ .exe file‬أي ملف بلغة اآللة –‬
‫لغة المعالج ‪ -Processor‬وبذلك كان‬
‫البرنامج مرتبط بنظام التشغيل ‪ OS‬وتعليمات‬
‫المعالج بالجهاز‪ ،‬وهذا ما يفسر حدوث مشاكل‬
‫‪ Errors‬عند تشغيل البرنامج على جهاز آخر‬
‫أو نظام تشغيل آخر نظرا إلختالف المكتبات‬
‫الخاصة بنظام التشغيل ملفات ‪.Dll‬‬
‫تقنية‬
‫وبظهور‬
‫‪:.Net‬‬
‫بعد‬
‫‪ Framework‬أمكن تنفيذ البرنامج‬
‫على أي جهاز بغض النظر عن كل من‬
‫نظام التشغيل والمكونات المادية‬
‫للجهاز‪ ،‬حيث أصبح اطار العمل‬
‫‪ Framework‬طبقة وسيطه بين‬
‫البرنامج ونظام التشغيل‪.‬‬
‫وقد حقق ذلك الفوائد التالية‪:‬‬
‫أوال‪ :‬أصبح البرنامج يستخدم مكتبات الــ ‪Framework‬‬
‫وبذلك حلت مشكلة ملفات المكتبات مع ‪.OS‬‬
‫ثانيا‪ :‬فيما يتعلق بمشكلة ترجمة البرنامج فإن ذلك يتم اآلن‬
‫على مرحلتين‪ :‬مرحلة ترجمة البرنامج وتحويله إلى‬
‫برنامج بلغة ‪Il‬أو ‪ MSIL‬وعند تنفيذ البرنامج المترجم‬
‫إلى ‪ IL‬يتم ترجمته في المرحلة الثانية فوريا إلى لغة اآللة‬
‫من خالل ‪Common Language " CLR‬‬
‫‪ "Runtime‬بواسطة المترجم ‪ Jit Compiler‬في الـ‬
‫‪.Framework‬‬
‫حيث أصبح لكل لغة في ‪ .Net‬مترجم خاص بها وينتج‬
‫عنه ملف ‪"Portable Executable File" PEF‬‬
‫يكون أحد عناصره ملف ‪MSIL‬ومعلومات أخرى متعلقة‬
‫بالبرنامج مثل رقم اإلصدار ومعلومات عن المكتبات التي‬
‫‪–Framework‬ويعرف بــ‬
‫سيحتاجها من‬
‫"‪ "Metadata‬الذي يتم ترجمته بعد ذلك إلى لغة اآللة‬
‫بواسطة المترجم ‪.JIT Compiler‬‬
‫وبذلك يمكن تشغيل أي برنامج ‪ .Net‬على أي جهاز به‬
‫‪ Framework‬بدون حدوث أي أخطاء مع نظام التشغيل أو‬
‫المعالج حتى وإن كان تليفون محمول مزود ‪.Framework‬‬
‫جميععع لغععات ‪ .Net‬تسععتخدم واجهععة‬
‫واحععدة "‪ "Studio‬وتتععرجم إلععى ملععف‬
‫‪Microsoft‬‬
‫بلغعععععععة "‪"MSIL‬‬
‫‪Intermediate‬‬
‫‪Language‬‬
‫وهعععذا يعنعععي امكانيعععة انشعععاء تطبيقعععات‬
‫تععدخل فيهععا أكثععر مععن لغععة برمجععة بعععد‬
‫اتخاذ بعض اإلجراءات‪.‬‬
‫إضافة امكانات جديدة لنافذة محرر األكواد‬
‫مثال‪ :‬إذا كتبنا كود جملة ‪:IF‬‬
‫‪If x = 10 Then‬‬
‫وتم الضغط على مفتاح اإلدخال يضيف محرر‬
‫األكواد تلقائيا ‪ End If‬بل ويضيف أيضا كلمة‬
‫‪ Then‬إذا لم تكتبها‪.‬‬
‫تععم إضععافة تلميحععات كثيععرة‬
‫‪ tip‬تظهر على الشاشة عند ععرض‬
‫قيم المتغيعرات وأنواعهعا ومععامالت‬
‫اإلجعععععععراءات والعععععععدوال ونتيجتهعععععععا‬
‫وعععرض نبععذة عععن وظيفععة كععل دالععة‬
‫وكل معامل‪.‬‬
‫‪Tool‬‬
‫إدخال تحسينات كثيرة على مظهر النموذج‬
‫واألدوات مثل‪:‬‬
‫– تحديد درجة شفافية النموذج من خالل خاصية‬
‫"‪."Opacity‬‬
‫– تحديد منطقة ظهور النموذج على الشاشة من خالل‬
‫خاصية "‪ "StartPosition‬بدال من نافذة‬
‫"‪ "Layout‬في ‪.VB 6.0‬‬
‫– لم تعد في حاجة لكتابة كود يحافظ على تناسب‬
‫مقاييس األدوات مع أبعاد النموذج كلما تغير حجم‬
‫النموذج‪ ،‬وذلك من خالل خصائص جاهزة تقوم بذلك‪.‬‬
‫من الممكن اآلن إضافة أزرار أو أي أدوات‬
‫أخرى للنماذج في وقت التنفيذ أي في وقت‬
‫‪ Run Time‬مع إمكانية ربطها بأي إجراء‪.‬‬
‫جميع لغات ‪.Net‬يتم ترجمتها إلى ملف‬
‫وسيط "‪ "MSIL‬ويترجم بعد ذلك عن طريق‬
‫"‪ "CLR‬إلى لغة اآللة وهذا يعني أن ‪VB‬‬
‫أصبح يعمل بقوة وسرعة وكفاءة ‪.VC++‬‬
‫إضافة إمكانية استخدام معالجات االسعتثناءات‬
‫‪ Exception Handlers‬كما في جملة‪:‬‬
‫‪Try‬‬
‫……………………‬
‫‪Catch‬‬
‫………………………‬
‫‪End Try‬‬
‫هناك ثالثة أنواع من األخطاء‪:‬‬
‫(‪ )1‬أخطاء لغوية أو صياغة ‪ :Syntax Error‬وحاليا‬
‫يتكفل باكتشافها محرر البرنامج ‪ Editor‬من خالل‬
‫المفسر‪.‬‬
‫أخطاء منطقية ‪ :Logical Error‬ويمكن‬
‫اكتشافها عند تنفيذ البرنامج على بيانات حقيقية‬
‫معلومة النتائج مسبقا وتم تجربتها‪.‬‬
‫أخطاء أثناء التشغيل ‪:Run Time Error‬‬
‫وهو ما يمكن للمبرمج اكتشافه من خالل‬
‫استخدام المعالجات االستثنائية ‪Exception‬‬
‫‪ Handlers‬كما في جملة … ‪Try‬‬
‫‪ Catch / End Try‬من خالل المترجم‪.‬‬
‫‪ VB.Net‬مبنية بالكامل على مفهوم‬
‫البرمجـــة المـــــوجهـــة بالكائنـــــات ‪OOP‬‬
‫فعلى سبيل المثال‪:‬‬
‫– يوجد بها وسائل جاهزة ‪Methods‬خاصة‬
‫بالتعامل مع المتغير النصي من نوع‬
‫‪String‬تسمح بالبحث فيه أو تقطيعه أو‬
‫استبدال أجزاء منه‪.‬‬
‫– وصارت هناك وسائل جاهزة أيضا لعكس‬
‫المصفوفة ‪Array‬وترتيبها والبحث فيها‪.‬‬
‫يوفر إطار العمل ‪ Framework‬في‬
‫‪.Net‬كم كبير من المكتبات أو التصنيفات‬
‫‪ Classes‬بديال عن استخدام الدوال الخاصة‬
‫بنظام التشغيل ‪.OS‬‬
‫أصبح بإمكانك تعريف المتغيرات داخل مقاطع‬
‫الجمل الشرطية ‪ If Statement‬وجمل التكرار‬
‫‪ Loop Statements‬بحيث تكون معزولة‬
‫عن المتغيرات الموجودة خارج هذه المقاطع‪.‬‬
‫إمكانية تصميم صفحات إنترنت‬
‫بنفس طريقة تصميم النماذج العادية‬
‫مع كتابة كود ‪ VB.Net‬بمعظم‬
‫إمكانياته إلنشاء تطبيقات ‪ASP.Net‬‬
‫تعمل على الخوادم ‪ Server‬بدون‬
‫كتابة أي كود ‪.ASP‬‬
‫وتهدف ميكروسوفت من إنتاج ‪ .Net‬إلى‪:‬‬
‫إنشاء آالف المكتبات للعديد من البرامج التي تعمل‬
‫على أنظمة التشغيل األخرى مثل لينكس للتوافق‬
‫وتعمل على نظام التشغيل ‪.Windows‬‬
‫سهولة تطوير تطبيقات اإلنترنت‪.‬‬
‫أصبحت لغة برمجة موجهة بالكائنات ‪OOP‬‬
‫وبيئة تطوير وبذلك أمكن دمج أكواد أكثر من لغة في‬
‫نفس البرنامج‪.‬‬
‫وتهدف ميكروسوفت من إنتاج ‪ .Net‬إلى‪:‬‬
‫وتم مواجهة لغة ‪ Java‬بلغة ‪ J#‬مع بناء إطار‬
‫العمل ‪ Framework‬والذي يعد محاكاة من شركة‬
‫ميكروسوفت لنظام ‪ Virtual Machine‬المنتج‬
‫من شركة ‪.SUN‬‬
‫استيعاب تقنية ‪Extensible " XML‬‬
‫‪ "Markup Language‬الذي يهتم بالبيان‬
‫ونوعه أما ‪ HTML‬فهو يهتم بطريقة عرض البيان‪.‬‬
‫وزارة التربية والتعليم‬
‫اإلدارة العامة للكمبيوتر التعليمي‬
‫مع أرق‬
‫تحياتي‬
‫أحمد األنصاري السالموني‬