مقدمة لإحتراف فيجوال بيسك

إرسال موضوع جديد   إرسال مساهمة في موضوع

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

مقدمة لإحتراف فيجوال بيسك

مُساهمة من طرف Mr.Hacker في السبت يونيو 24, 2017 5:22 pm

بسم الله الرحمن الرحيم

احتراف Visual Basic .Net

هذا الكتاب لن يفيد مبرمجي VB وحدهم، فما يختصّ بـ VB في هذا الكتاب لا يتجاوز الفصلين الثالث والرابع اللذين يشرحان قواعد كتابة الكود Syntax، أمّا باقي المرجع فيشرح بيئة التطوير المتكاملة وخلايا إطار العمل Framework Classes، وهما عامّان لكلّ لغات VS.NET ويمكن استخدامهما بنفس الطريقة في C# مثلا، مع مراعاة اختلاف قواعد كتابة الكود عن VB.

ملاحظات هامّة حول استخدام الكتاب الالكترونيّ
اضغط هنا لعرض محتويات الكتاب

أرجو من كلّ من يستفيد من هذا الكتاب، الدعاء لي بالهداية والتوفيق والسعادة، وللأمّة الإسلاميّة بالنصر والعزّة والخروج ممّا هي فيه من محن..

هكذا نبتتِ الفكرة:
الحمدُ لله والصلاةُ والسلامُ على رسولِ اللهِ، وبعد...
كانَ من فضلِ اللهِ سبحانَه، أن يسّر لي على مرّ السنواتِ الماضية، الاحتكاكَ بنخبةٍ من المثقّفينَ والموهوبينَ والمبدعينَ والمتميّزينَ في الفكرِ والأدبِ والعلمِ والبرمجة، ممن نأمل أن يشكّلوا جيلَ الصفوةِ والقدوةِ في المستقبلِ القريب، علّهم ينجحونَ في تغيير الواقعِ الكئيبِ من حولِنا، وما يُحدقُ بنا من تفاهةٍ وسطحيّةٍ وجهلٍ وابتذالٍ وانحرافٍ أخلاقيّ وفسادٍ في الضمائرِ وقصورٍ في الرؤيةِ وفشلٍ في التخطيط!.. (ليس هذا سبابا، إلا إذا اعتبرت الواقع سُبّة!!).
ومهما كانَ ما ثارَ بيني وبينَ بعضِ هذه النخبةِ من اختلافٍ في الرؤيةِ وتضاربٍ في وجهاتِ النظر، إلا إنّه لا سبيلَ إلى إنكارِ ما كانَ بينَنا من تأثيرٍ وتأثّر، وتقاسمٍ في الفكرِ والثقافةِ والمعرفة.
ومن بينَ هؤلاء، أناسٌ تعلّمتُ منهم الكثير، فكانَ خير ما تعلّمتُه منهم قدرتهم على العطاءِ بدونِ انتظارِ مقابل، فكأنّهم كائناتٌ نورانيّةٌ تضيءُ للسائرينَ في ليلٍ ذي ظلامٍ عميق.
من هنا نبتت فكرة هذا الكتاب، الذي أهديه لكلّ من يعشقونَ عالمَ البرمجةِ بما فيه من سحرٍ وابتكارٍ وتحدّي، آملا أن يكونَ في لغتنا الجميلةِ أيسرَ وأكثرَ تشويقًا، فربّما يغري شبابنا الصغارَ على تعلّم البرمجةِ مبكّرا، فيكونُ منهم المتميّزون والمحترفون.


لماذا أتجشّم هذا العناء؟:
أعرفُ أنّ الكثيرينَ سيتساءلون: ما هو الدافع الذي حداك لبذل هذا المجهود؟.. وإنّي لأجدها فرصةً مناسبةً لأنقلَ لكم فكرةً تعلمتها من احتكاكي بأناسٍ أكنُّ لهم كلَّ الودّ والاحترام.. هذه الفكرةُ تدورُ حولَ كونِ الإنسانِ جزءًا من مجتمعِه، لهذا فمهما كانت أقدار هذا الإنسان، فإنّ مصيرَه مرتبط بمصير هذا المجتمع، يسعدانِ معا ويشقيانِ معا.
فما فائدةُ أن تملِكَ في مجتمعٍ مُعدم؟
وما جدوى أن تشعرَ في مجتمعٍ متحجّر؟
وما قيمةُ أن تعرفَ في مجتمعٍ يجهل؟
وما هدفُ أن تفهمَ في مجتمعٍ متبلّد؟
وما مغزى أن تُبدعَ في مجتمعٍ متدنّي الذائقةِ والثقافة؟
لن يكونَ لكلِّ هذا قيمةٌ إذا لم يتشاركْ معك فيه أناسٌ آخرون، بحيث تعمّ الفائدة على الجميع، في إطارٍ من التعاونِ والودّ.
إنّ الحاجةَ للإحساسِ بالانتماءِ هي حاجةٌ من حاجاتِ الإنسانِ الحيويّةِ التي لا يستطيعُ العيشَ بدونِها، تماما كالطعامِ والشراب!.. ولكن.. هل يمكنُك أن تنتمي إلا لأناسٍ يرقونَ لمستوى خُلقكِ ومبادئك وثقافتِك وإبداعك؟؟!!
إنّ هذه دعوةٌ لكلِّ من يقرأُ هذه الكلماتِ أن يحاولَ أن يشاركَ الآخرينَ في معرفتِه وعلمِه، على الأقلِّ حتّى يجدَ من يقدّرُ هذه المعرفةَ ويحترمُ هذا العلم، في مجتمعٍ اختلّت به كلّ المقاييس!!، وحتّى ينطبقَ عليه قول الرسولِ (صلّى اللهُ عليه وسلّم): "خيرُ الناسِ أنفعُهم للناس".
عامّةً لا يخلو الأمرُ من مكاسبَ شخصيّة، فقد شرعتُ في هذا الكتابِ واضعًا في اعتباري الأهداف التالية:
1- أن أستثمرَ وقتي في شيءٍ يعودُ بالنفعِ عليَّ، وهو في ذاتِ الوقتِ ممتعٌ ومحبّبٌ إلى نفسي.
2- أن أشعرَ بأنَّ لي دورًا ـ ولو صغيرا ـ في المجتمع، فإنَّ أسوأَ كوابيسي هو خوفي من أعيشَ وأموتَ كأنّما لم أكن!!
3- أن أنتقل من الإصدار VB6 إلى الإصدار VB.Net، بطريقةٍ ربّما تكونُ أبطأ في التعلّم، ولكنّها أرسخُ في الذهن، وأسهلُ في الرجوعِ إليها عن القراءةِ السريعةِ المتطايرة.
4- أن أكتبَ مرجعا سهلا قويّا في البرمجة باللغةِ العربيّة، توسّمتُ في نفسي قدرتي على إنجازه، لأنّي أكتبُ الشعرَ والقصّةَ والروايةَ والمسرحَ منذ سنين، وللغةِ العربيّةِ عشقٌ مُبَرِّحٌ لا يبرحُ قلبي، بالإضافةِ إلى أنّ دراستي هندسيّة، وأحبَّ شيءٍ إلىّ كتابةُ الخيالِ العلميّ، ومارستُ البرمجةَ لمدّةِ خمسِ سنوات، فاتصلَ عندي طرَفٌ من الأدبِ بطرفٍ من العلم، ممّا جرّأني على خوضِ هذه المغامرة اللذيذة.
5- أن أضيفَ لنفسي تجربةً جديدةً في الترجمةِ، وخبرةً جديدةً في التأليفِ العلميّ، لا ريبَ أنّهما سيعودانِ عليَّ بالنفعِ في يومٍ ما.
6- أن أساهمَ في جعلِ الأمرِ أيسرَ على المتعلّمينَ، ليسَ فقط لأنّ هذا المرجعَ باللغةِ العربيّة، ولكن كذلك لأنّه كتابٌ الكترونيّ E_Book، ممّا يضمنُ سهولةَ انتشارِه ورخصَ تكلفتِه، في مقابلِ المراجعِ العربيّةِ الورقيّة التي تتكلّف قدرا لا بأسَ به من المال، وتكلفة تصويرها أغلى من ثمنها، ممّا يحصر فائدتها في نطاقٍ ضيّق!
7- أن أجدَ طريقةً أسهلَ لنقلِ معلوماتي لأصدقائي الراغبينَ في تعلّمِ البرمجة، بدلا من الشرحِ وجها لوجه، والذي يضيّعُ الكثيرَ من الوقتِ والجهد، وكثيرا ما لا يأتي بالفائدةِ المرجوّة.
8- كما أنّ عندي أملا في أن أكوّنَ مجموعةً برمجيّةً من عاشقي ومحترفي البرمجة، فلعلَّ هذا الكتابَ يكونُ سبيلي لاكتشافِ الكثيرينَ منهم.
9- نظرًا لأنّني أتوقّع أن ينتشرَ هذا المرجعُ بإذن الله، فقد قرّرت أن أستغلّه في نشر كتاباتي وكتابات صديقيّ (سامح حسن النجّار) و(عمر محمود هاني)، لهذا فقد أضفت القسم المسمّى (نجم الخيال)، ووضعت فيه نخبةً منتقاةً من أعمالنا الأدبيّة.. أتمنّى من الله أن تروقَ لكم.
ألا تعتقد أنّه أمامَ كلِّ هذه الأسبابِ أيُّ تعبٍ يهون؟


منهج الكتاب:
لا يمكنُ اعتباري مؤلّفا لهذا الكتاب، في نفسِ الوقتِ الذي لا يقتصرُ دوري فيه على ترجمتِه من مرجع Mastering Visual Basic .Net، فأنا لم ألتزم بالترجمةِ الحرفيّة.. فبينما يفترض المرجعُ الأصليّ أنّ قارئه لا يجيد VB6، ولكنّ عنده خلفيّةً سابقةً في البرمجة، أفترض أنا أنّ قارئ هذا المرجع أيّ شخص، بدءا من فتيانِنا الطموحينَ من سنّ 15 سنة، إلى محترفي VB6 المتعطّشينَ لمزيدٍ من المعرفة.. لهذا كان لا بدّ من إجراء التعديلات التالية على المرجع الأصليّ:
1- النصّ اللغويّ مختلفٌ إلى حدّ بعيد، فلقد كان مبلغ همّي هو أن يظهر هذا الكتاب في أسلس أسلوبٍ وأقواه، لهذا عمدت إلى أن أشرح المضمونَ بأسلوبي في كثيرٍ من المقاطع، أكثر من التزامي بأسلوبِ المرجعِ الأصليّ.. غنيّ عن الذكر أنّ الحوارات التي تتمّ بيني الكاتب والقارئ، هي أسلوبي الخاصّ، وليس لها وجود في المرجع الأصليّ.
2- هناك بعضُ التغيير في ترتيب الفصول وترتيب محتوياتها.
3- المرجعُ الأصليُّ يحتوي على مقدّماتٍ طويلة بلا طائل، كما أنّه يتطرّق بالإشارةِ أحيانا إلى مواضيعَ ربّما تكونُ هامّةً كبرمجة، إلا إنّ الإشارةَ المجرّدةَ إليها لا تسمنُ ولا تُغني من جوع، والأفضلُ قراءتُها في المراجعِ المخصّصةِ لها، والتركيزُ بدلا من ذلك على تعلّمِ اللغة، التي تضخّمتْ بدرجةٍ مذهلة، وتحتاجُ لوقتٍ طويلٍ للإلمامِ بكلِّ ما هو جديدٌ فيها.. لهذا فقد عمدتُ إلى الاختصارِ كلّما أمكن، واضعا نُصبَ عينيّ الهدفَ التالي: "أغزر كمّ من المعلومات، بأقلّ قدرٍ من الكلمات!".
4- بعض أمثلة الفصول الأولى من الكتاب كانت صعبة، وتشيرُ إلى فصولٍ متقدّمة، ممّا لا يتناسبُ مع مستوى مبتدئ، فقمت باستبدالِ أمثلةٍ أسهلَ بها.
5- قمتُ باختصارِ الشرحِ بدءا من الفصلِ السابع، باعتبارِ أنّ قارئَ هذا الفصلِ وما يليه قد ألمّ بأساسيّات البرمجة، وارتفع مستواه لدرجةِ أنّه سيملّ من تكرار شرحِ أوّليّاتِ اللغة في كلّ مثال، لهذا فقد اقتصرتُ على شرح الأجزاءِ الصعبة أو الجديدة في الأمثلة، وأحلتُ القارئ إلى البرامجِ الملحقة بالفصل، ليدرسَها ويجرّبَها بنفسه.
6- كثيرٌ من المواضع في نسخة المرجعِ التي لديّ كان بها أخطاءٌ، فقمت بتصحيحها.
7- المرجعُ الأصليُّ يتجاهلُ العديدَ من المواضيعِ المهمّة، التي وجدتُ أنّه لا غنى لأيّ مبرمجٍ يريد احتراف VB.NET أن يعرفها، لهذا فقد استعنتُ بملفّاتِ الإرشادِ المرافقة لـ VS.NET ومراجع أخرى لشرحِ هذه المواضيع، وقمت بكتابةِ أمثلةٍ لها.. وهذه قائمة بالمواضيع التي لم تكن موجودةً في المرجع الأصليّ:

رقم الفصل المواضيع التي لم تكن بالمرجع الأصليّ
المقدّمة الجديد في VB.NET ـ كيفيّة إعداد اللغة.
2 الجمل التقليديّة لمعالجة الخطإ في VB.
3 الشروط الواجب توافرها عند تعريف المتغيّرات ـ العمليّات على الأرقام ـ  تشبيك النصوص Concatenation ـ مقارنة النصوص ـ مثال العمليّات على المصفوفات ـ الأنواع التي يعرّفها المستخدم User-Defined Data Types.
4 وكذلك AndAlso ـ أو غير ذلك OrElse ـ GoTo ـ المعاملات الاختياريّة Optional Arguments ـ العلاقات بين الدوالّ والسجّلات Structures ـ المندوب Delegate ـ استدعاء الدوال بالاسم  CallByName ـ الترتيب السريع Quick Sort ـ البحث الثنائي Binary Search ـ القوالب Modules.
5 نماذج رائعة (الشفافية وتغيير شكل النموذج) ـ كيفيّة نقل العناصر من القوائم الرئيسيّة إلى القوائم الموضعيّة ـ النماذج المترابطة.
6 تغيير لغة لوحة المفاتيح برمجيّا ـ أداة تلميحات الشاشة ToolTip ـ السحب والإسقاط Drag And Drop ـ التدريبات.
7 التعامل مع الخلايا من لغات برمجة مختلفة ـ الكلمات Shadows و MyBase و MyClass ـ التدريبات.
9 شرح أوفى لخليتي Stack و Queue ـ خليّة مصفوفة الخانات الثنائيّة BitArray Class ـ سجلّ المتّجه الثنائي Structure BitVector32  ـ سجلّ مقطع المتّجه الثنائي Structure BitVector32.Section ـ إنشاء المجموعات الخاصّة Custom Collections  ـ التراكيب Hierarchies.
10 استخدام كائن نظام الملفّات FileSystemObject.
11 الملاحظة حول كيفيّة تحديد بعض كلمات مربّع النصّ المنسّق RichTextBox لتغيير لونها، دون أن يلحظ المستخدم خطوات هذه العمليّة ـ التدريب الخاصّ بالملحوظة السابقة وتطبيق ColoringWords ـ السحب والإسقاط مع الأدوات المتقدّمة.
12 التعامل مع نقاط الصورة بطرق أخرى (استخدام المؤشّرات Pointers للتعامل مع الذاكرة المؤقّتة RAM مباشرة لتسريع عكس ألوان الصورة ـ تغيير أحد الألوان في الصورة مباشرةً).
14 معظم هذا الفصل لم يكن موجودا، وقد استعنت في كتابته بإرشادات اللغة، ومرجع MOCS.
15، 16، 17 كلّ ما له علاقة بـ Microsoft Access هو من تأليفي، كما أنّ هناك تغييرات جذريّة في أمثلة هذه الفصول، فالمرجع الأصليّ يتعامل مع قاعدتي بيانات لم أرهقْ نفسي للحصول عليهما، لأنّ كل بياناتهما إنجليزية.. لهذا قمت ببناء قاعدة بيانات الكتب، وإعادة كتابة أمثلة المرجع عليها.
18 شرح خصائص ووسائل الكائنات التالية:
مجموعة الجداول DataTableCollection ـ كائن الجدول DataTable ـ كائن الصفّ DataRow.
شرح الكائنات التالية:
كائن العمود DataColumn ـ كائن العلاقة DataRelation ـ كائن قيد التفرّد UniqueConstraint ـ كائن القيود الثانويّة ForeignKeyConstraint ـ كائن العرض DataView ـ كائن سجلّ العرض DataRowView ـ كائن إدارة العرض DataViewManager ـ كائن إعدادات العرض DataViewSetting ـ كائن الارتباط Binding ـ كائن ربط المحتوي BindingContext ـ كائن أساس الارتباط BindingManagerBase.
تطبيق دوال التجميع Aggregate Functions على بعض الأعمدة ـ صيغة العمود.
ملحق 1 تمّت إضافة هذا الملحق بالاستعانة بمرجع Programming Visual Basic  .NET.
ملحق 2 كان لا بدّ لي من إضافة هذا الملحق، لأنّي لم أتخيّل أن يبدأ شخص ما البرمجة، بدون أن تكون لديه خلفيّة عن نظام العدّ الثنائيّ.

هذا بخلافِ آلافِ التعديلاتِ والإضافات الصغيرة في كلّ موضعٍ من الكتاب.. باختصار: لو قمتُ بتغيير أمثلةِ الكتابِ لما صار باستطاعةِ أحدٍ أن يكتشف العَلاقة بينَه وبينَ مرجعه الأصليّ، إلا بشقّ الأنفس!!
ولكن ماذا عن المصطلحات البرمجيّة؟
في الواقع، لقد ابتعدت أيّما ابتعاد عن الترجمة الحرفيّة للمصطلحات، حيث لم أستسغْ أن أحذو حذو الكثير من التراجم العربيّة، التي على سبيل المثال تترجم كلمة Arguments بكلمة "مناقشات"، وكلمة Class على أنّها فصل أو رتبة.. لهذا فضّلت أن أبنى الترجمةَ على الوظيفة، بدلا من الترجمة الحرفيّة.. فمثلا، ترجمت مصطلح OverLoading بتعبير "تعدّد التعريفات"، لأنّه من المضحكِ أن تجد في الكتاب جملةً على شاكلة "ويمكنك أن تقوم بزيادة تحميل الدالة، عن طريق تعريف صيغة أخرى لها تختلف في المناقشات"!!.. أعتقد أنّ النصّ الإنجليزيَّ في هذه الحالة سيكون أسهل كثيرا!!.. لهذا كان لا بدّ من ترجمة المعنى كالتالي: "ويمكن أن تكون لديك تعريفات متعدّدة للدالة، تختلف كلّ منها عن الأخرى في المعاملات.. هذا هو ما يسمّى "تعدّد التعريفات" OverLoading".
وفي معظم الأحوال، حرصتُ على وضعِ المصطلحِ الإنجليزيّ بجوارِ ترجمته، حتّى أسهّل الأمرَ على المعتادينَ على القراءةِ بالإنجليزيّة، وحتّى يألفَ المبتدئونَ هذه المصطلحات، فيسهل عليهم قراءة ملفّات الإرشاد Help Files.. كمّا أنّه لا غنى عن المصطلح الأجنبيّ في الغالب، لأنّه سيُكتبُ في الكود بنصّه.
ولكن خوفا من أن يملّ القارئ، فإنّني أتوقّف عن كتابة المصطلح الإنجليزيّ بعد استخدامه بفترةٍ مناسبة، عندما أشعر أنّه صار مألوفا.. فمثلا، ستجد أنّ استخدامي لكلمة Form مقترنة بكلمة "نموذج" يظهر بكثافة في الفصول الأولى، ثمّ يخفت بعدها حتّى ينتهيَ تماما فيما يلي من فصول.. لهذا فإنّني أنصح من يقرأ هذا الكتاب بقراءته متسلسلا، حتّى يألف طريقتي في الترجمة.. وهو لحسن الحظّ طلبٌ منطقيّ، لأنّه لا غنى ـ حتّى بالنسبة لمحترفي VB6 ـ عن قراءة الكتاب من الجلدة للجلدة ـ إذا جاز هذا التعبير مع كتابٍ إلكترونيّ! ـ بسب التغييرات الشاسعة التي ألمّت باللغة.


لماذا Visual Basic؟
حينما أصدرت (ميكروسوفت) أوّل نسخة من لغة Visual Basic عامَ 1991، لم يكن في حسبانِها أنّها ستكتسبُ كلّ هذه الشهرةِ وستحقّق كلّ هذه الشعبيّة!
إنّ لغة BASIC القديمة تُعَدّ من أسهل لغاتِ البرمجة، ولكّنها لم تستطع الصمود في المنافسة مع لغاتِ البرمجة الأخرى بسبب قدراتِها المحدودة.
كانَ ذلك كذلك، حتّى أصدرت (ميكروسوفت) إصدارات VB المتتابعة، لتنتقل لغة BASIC من قِفار الدوس المجدبة إلى مراعي الويندوز الخصبة، مانحةً للمبرمج القدرة على إنشاءِ برامج ذات واجهة مرئيّة، بأسهلِ طريقةٍ وفي أسرعِ وقت.
ومنذئذٍ ولغة VB تتصدّر قائمة مبيعات لغات البرمجة، لتدخلَ في بناءِ التطبيقاتِ التجاريّة وتطبيقاتِ قواعد البياناتِ البسيطة، وبرامج الوسائط المتعدّدة Multimedia والكثير من الألعاب.
ولكن للأسف.. دائما وأبدا كانت VB أدنى من باقي لغاتِ البرمجة، فتطبيقاتُها أبطأ نسبيّا وأكبر حجما، وتعاني من بعض أوجهِ القصورِ في الأداء.
ولقد استمرّت (ميكروسوفت) في تطوير VB عبرَ ستّ إصداراتٍ مختلفة، وفي كلّ إصدارٍ جديدٍ كانت تعالجُ بعضَ المشاكلِ القديمةِ وتضيفُ المزيدَ من القدرات، لتضيقَ الفجوةُ شيئًا فشيئا بين VB وباقي لغات البرمجة.
ثمّ أخيرا أقدمت (ميكروسوفت) على الخطوة التي طال انتظارها.. أصدرت نسخة جديدةً بكلّ المقاييس من VB، بنتها من جذورها From scratch لتجعلها ندّا حقيقيّا لـ VC++، بحيثُ يمكنك أن تقولَ بثقة: إنّ العصرَ الذهبيَّ لـ VC++ آخذٌ في الأفول بلا رجعة، حيثُ سينحصرُ استخدامها في تصميم المحرّكات Engines التي تدخل في بناء تطبيقات أخرى، أو في كتابة الكود الذي يتيح للكمبيوتر التحكمّ في آلات أخرى، ولكنّ استخدامها سيتراجع بلا شكّ في تطبيقات الإنترنت والتطبيقات التجاريّة وتطبيقات قواعد البيانات والوسائط المتعدّدة ومعظم الألعاب وما شابه، نظرًا لصعوبتِها وتعقيدِها وطول الوقت اللازم للبرمجة بها!
وأعتقدُ أنّ هذا هو السبب الذي دفع (ميكروسوفت) لإصدار اللغة الجديدة C#، التي تُعتبر توأما لـ VB إلا إنّها تستخدم قواعد C++ في كتابة الأوامر، ممّا يشكّلُ لمبرمجي VC++ إغراءً تصعبُ مقاومته للانتقالِ إليها.
ولكن مهما كانت سهولة C#، فإنّ VB يصرعُها في هذا المضمار، فهو أقربُ ما يكونُ للّغةِ الإنجليزيّة العاديّة، ولا يحتوي على الرموزِ الكثيرةِ المملّة التي تملأ C++، مثل ; ، ++ ، == ، ||.... إلى آخر هذه الرموزِ التي تجعلُ احتمالاتِ الخطإ عند كتابةِ الكودِ أعلى، وتجعلُ البرنامجَ أصعبَ فهمًا وأقلَّ ألفةً عندَ قراءته.
مرحى لكلّ مبرمجي VB.. لقد صاروا على قمّة برمجة السوق!!


ما الجديد في VB.Net:
إنّ التطويرات التي لحقت بـ VB.Net من الكثرةِ بحيثُ لن نستطيع أن نحيطَ بها كلّها هنا.. ولكن يكفي أن نذكر منها ما يلي:
- لم تعد لـ VB واجهة استخدام مستقلّة، فكلّ لغات VS.Net تستخدم واجهة واحدة، مليئة بالأدواتِ التي تُسهّل بطريقة مدهشة عمليّةَ تصميم البرنامج.. إنّ هذه الميزة تسمح لك بإنشاء تطبيقات تدخل فيها أكثر من لغة برمجة، دون أن تحتاج لفتح أكثر من واجهة.. إنّها واجهة واحدة فقط لكلّ المبرمجين.
- هناك إمكانيّات جديدةٌ في نافذة محرّر الكود، منها قيام اللغة بكتابة جملة نهاية المقطع تلقائيّا، بمجرّد كتابتك لبدايته وضغط زرّ Enter.. فمثلا: لو كتبت جملة:
If X = 0 Then
فإنّ محرّر الكود سيضيف الجملة التالية تلقائيّا:
End If
بل إنّك لو لم تكتب كلمة Then فسيكتبها لك محرّر الكود تلقائيّا!
هذا بالإضافة إلى أنّه سيضع مؤشّر الكتابة داخل مقطع If، وسيقوم بتنسيق المسافات البادئة تلقائيّا، بحيث يبدو الكود منظّما وواضحا عند قراءته.
كمّا أنّ هناك تحسيناتٍ كثيرةً في تلميحات الشاشةِ التي تعرضُ قيمَ المتغيّراتِ وأنواعَها ومعاملاتِ الإجراءاتِ والدوالِّ وقيمَها المعادة، مع نبذة عن وظيفة كلّ دالة وكلّ معامل.. باختصار: لقد أصبحت كتابة الكود متعة.
- هناك تحسيناتٌ كثيرةٌ في مظهر النموذج والأدوات، وهناك العديدُ من الخصائص والوسائل الجديدة التي تمّت إضافتها لهذه العناصر، بحيث تمنحك تحكّما أكبر فيها.. فمثلا، أصبح بإمكانك تحديد درجة شفافية النموذج، كما صار بإمكانك تحديد المنطقة التي ستظهر منه على الشاشة، بحيث يمكنك تصميم نماذج بأيّ شكل.. ولم تعد مضطرّا لكتابة الكود الذي يحافظ على تناسب مقاييس الأدوات مع مقاييس النموذج كلّما تغيّر حجم النموذج، فقد صارت هناك خصائصُ جاهزةٌ مسئولةً عن هذا.. هذا بخلافِ العديد من الأدوات الجديدة، مثل الفاصل Splitter الذي يُمكّنك من تغييرِ حجمِ الأدوات المتجاورةِ أثناء تشغيل البرنامج.
- صار بإمكانك إضافة الأزرار والأدوات للنماذج في وقت التنفيذ Run Time، مع قدرتك على ربطها بأيّ إجراء، ليتمّ استدعاؤه عند ضغطها.
- لم يعد هناك أيّ قصور في مترجم الكود Compiler، فكلّ لغات VS.Net تعمل على مترجم واحد، ممّا يعني أنّ VB قد صار بقوّة وسرعة وكفاءة VC++.. وكمثال، صار بإمكانك استخدام البرمجة الارتداديّة Recursive Programming دونّ أن تخشى من بطئها أو استهلاكها لحجم الذاكرة، فقد صارت في منتهى السرعة والكفاءة.
- أصبح بإمكانك معالجة الأخطاء، عن طريق استخدام معالجات الاستثناءات Exception Handlers في جملة Try.. Catch.. End Try.
- VB.Net مبنيّةٌ بالكاملِ على مفهومِ البرمجةِ بالكائنات Object Oriented Programming، لدرجة أنّ الأعدادَ الصحيحة Integers والنصوص Strings والمصفوفات Arrays قد صارت خلايا Classes، وصارت لهذه العناصرِ خصائصُ ووسائلُ جاهزة.. فمثلا، أصبحت لديك وسائل جاهزة تنتمي للمتغيّر النصّيّ، تسمح لك بالبحث فيه أو تقطيعه أو استبدال أجزاء منه... إلخ... كما صارت لديك وسائلُ جاهزةٌ لعكسِ المصفوفةِ وترتيبِها والبحثِ فيها!
- صار بإمكانك استخدام كلّ مفاهيم الوراثة Inheritance وتعدّد الأشكال Polymorphism بلا أيّ مشاكل.. وإن كان مسموحا لك بوراثة خليّة واحدة فقط Single Inheritance للتسهيل.
- يمنحك إطار العمل .Net Framework ثروة هائلة من الخلايا Classes، تقدّر بـ 3500 خليّة، تفعل كلّ ما تحلم به وأكثر، بحيث تريحك بدرجة كبيرةٍ من الاحتياج لاستخدام دوال API الخاصّة بالويندوز، بما فيها من تعقيد ومشاكل.. وأحدث ما فعلته (ميكروسوفت)، هو إصدار نسخة جديدة من DirectX مبنيّة بالكامل بالخلايا بدلا من APIs.
- هذا بخلاف أنّ معظم هذه الخلايا قابل للوراثة، بما فيها الأدوات Controls نفسها، ممّا يمنحك القدرة على تطوير أدائها بما يناسبك.
- ومن الخلايا الجاهزة العديدة التي يمكنك استخدامها، الخلايا التالية: Stack ـ Queue ـ BitArray، و ArrayList وغيرها.
- أصبح بإمكانك تعريف المتغيّرات داخل مقاطع الجمل الشرطيّة If Statements والجمل التكراريّة Loops، بحيث تكون معزولة عن المتغيّرات الموجودة خارج هذه المقاطع.
- بل أصبح بإمكانك تعريف الخلايا داخل الخلايا Nested Classes، وأيّ نوعٍ Type داخل أيّ نوع آخر.
- أصبح بإمكانك تعريف الواجهات Interfaces وكتابة الخلايا التي تطبّقها وتنفّذها.
- أصبح بإمكانك استخدام المندوب Delegate كمعامل للإجراءات والدوال، بحيث يمكنك تمرير اسم أيّ إجراء أو دالة كمعامل!
- أصبح بإمكانك استخدام السمات Attributes في تعريف الخلايا والوسائل والخصائص والأنواع المختلفة، ممّا يختصر لك الكثير من العمل، ويمنحك العديد من القدرات.
- لديك إمكانيّات جديدة وعديدة تمنحها لك خلايا جاهزة، للتعامل مع الملفّات والمجلّدات.. وعلى سبيل المثال، يمكنك أن تراقب أيّ تغيير يطرأ على ملفّات المجلّد الذي تريد، باستخدام الأداة FileSystemWatcher، كما يمكنك أن تخزّن كائنا أو مصفوفة أو مجموعة Collection من أيّ نوعٍ إلى ملفّ مرّة واحدة، وإعادة قراءتها حينما تريد، باستخدام خلايا السلسلة Serialization.
- هناك إمكانيّات هائلة في مجال الرسم والتلوين تمنحها لك مكتبة GDI+.. يكفي أن تعرف أنّ بإمكانك الآن رسم منحنيات معقّدة، وتكوين أشكال مركّبة من مجموعة خطوط ومضلّعات ومنحنيات، وتلوين السطوح بألوان متدرّجة، وتحديد شكل مساحة الرسم، وتحديد درجة الشفافية، وتدوير الرسوم وتغيير مقاييسها تكبيرا أو تصغيرا.... إلخ.
- يمكنك استخدام المؤشّرات Pointers في بعض الأحيان، للقراءة والكتابة في الذاكرة، كما يمكنك أداء عمليّات معقّدة على النظام System لم تكن لتحلم بها!
- أصبح بإمكانك تقسيم برنامجك لمجموعة من العمليّات المستقلّة Threads، ممّا يعني أنّ برنامجك يستطيع القيام بأكثر من عمليّة في نفس اللحظة Multithreading.
- هناك إمكانيّات جديدة رائعة للتعامل مع قواعد البيانات، تمنحها لك تقنية ADO.Net، بالإضافة للعديد من الأدوات المرئيّة التي تساعدك في إنشاء تطبيقات قواعد البيانات بأقلّ قدر من الكود.
- أمّا الجديد تماما، فهو قدرتك على تصميم صفحات الإنترنت بنفس الطريقة التي تصمّم بها النماذج العاديّة، مع كتابة كود VB بمعظم إمكانيّاته، لإنشاء تطبيقات ASP تعمل على الخوادم Servers بدون كتابة حرف واحد من لغة ASP!!
وأنا مضطرّ للاكتفاء بذلك، قبل أن تصيبك الفرحة بالذهول!!


إعداد اللغة Set Up:
تأتي هذه اللغة على خمس أسطوانات، الأولى لتحديث مكوّنات النظام Windows Component Updater، وهي المسئولة عن إعداد إطار العمل .Net Frame Work الذي يعتبر قلب لغة VS.Net.. والثانيّة مسئولة عن إعداد لغاتِ البرمجة، والأسطوانات الثلاثة المتبقية تحتوي على ملفّات إرشادات اللغة Help.
وهناك أسطوانات إضافيّة أخرى، منها أسطوانة تطبيق Visio الذي يستخدم في تحليل البرامج بطريقة مرئيّة ليسهّل عمليّة تصميمها، كما أنّ هناك ثلاث أسطوانات تحتوي على MSDN وهي زاخرةٌ بالمعلومات البرمجيّة القيّمة.
والآن دعنا نرى كيفيّة إعداد هذه اللغة:
1- يجب أن يعمل جهازك على Windows 200 أو Windows NT أو Windows XP حتّى تتمكّن من إعداد هذه الغة.
2- يجب أن تعدّ نظام معلومات الإنترنت Internet Information System (IIS) على نظام تشغيلك.. ولفعل ذلك اتبع هذه الخطوات:
- من قائمة البداية Start Menu اضغط "إعدادات" Settings، ثمّ اضغط "لوحة التحكّم" Control Panel.
- في نافذة لوحة التحكّم اضغط "إضافة البرامج أو إزالتها" Add Or Remove Programs.
- في نافذة "إضافة البرامج وإزالتها" اضغط "إضافة أو إزالة مكوّنات الويندوز" Add/Remove Windows Components.
- في النافذة التي ستظهر لك، ابحث في قائمة مكوّنات الويندوز عن العنصر Internet Information System (IIS)، وتأكّد من وجود علامة () في مربع الاختيار المجاور لها، ثم اضغط زر "التالي" Next.



3- أدخل أسطوانة تحديث مكوّنات النظام Windows Component Updater في محرّك الأسطوانات، وتصفّح محتوياتها.. قد تظهر لك رسالة تطلب منك إدخال الأسطوانة الأولى.. اضغط OK وتجاهل هذه الرسالة.
4- من ملفّات الأسطوانة انقر الملفّ SETUP.EXE مرّتينِ بالفأرة.. بهذا سيبدأ برنامج الإعداد.
5- ستظهر لك رسالة تخبرك بأنّه من الأفضل أن تستخدم الأسطوانة الأولى لإعداد هذه الأسطوانة.. اضغط زر No.
6- ستظهر لك النافذة الموضّحة في الصورة التالية:



اضغط زر "تحديث الآن" Update Now.. وبهذا سيستمرّ إلى الإعداد إلى أن تيمّ.. ساعتها ستختفي كلمة Cancel وستظهر مكانها كلمة Done.. اضغطها لإغلاق برنامج الإعداد.
7- ضع الأسطوانة الأولى، وتصفّح محتوياتها.. من ملفّات الأسطوانة انقر الملفّ SETUP.EXE مرّتينِ بالفأرة.. بهذا سيبدأ برنامج الإعداد.
8- لو كانت مقاييس الشاشة 640 × 480 فستظهر لك رسالة تخبرك بتغيير مقاييس الشاشة إلى 600 × 800.. ولفعل ذلك اضغط سطح المكتب Desktop بزر الفأرة الأيمن، ومن القائمة الموضعيّة اضغط "خصائص" Properties.. ستظهر لك نافذة الخصائص.. اضغط شريط الإعدادات Settings بالفأرة لتظهر لك النافذة الموضّحة في الصورة التالية:



ستجد عنوانا يدعى "دقّة العرض" Resolution، وتحته منزلق يشير إلى أنّ مقاييس الشاشة 640 × 480.. حرّك هذا المنزلق درجةً (بضغطه بالفأرة وتحريكه)، لتصبح مقاييس الشاشة 600 × 800.. بعد ذلك اضغط زر Ok.. سيتمّ تغيير مقاييس الشاشة، وستظهر لك رسالة تستوثق من رغبتك في إتمام ذلك.. اضغط OK.. ثم اضغط زر Ok في رسالة الإعداد.
9- ستظهر لك النافذة التالية:



اضغط بالفأرة الاختيار الثاني Visual Studio .Net.
10- سيستغرق برنامج الإعداد بعض الوقت، ثمّ ستظهر لك نافذة تُقرئك حقوق الملكيّة الفكريّة.. اضغط اختيار "أوافق على بنود الاتفاقية"، وأدخل الأرقام المكتوبة على الأسطوانة في الخانات المخصّصة لها، ثم اضغط زر Next.
11- الآن ستظهر لك نافذة تمكّنك من اختيار إعدادات اللغة
:



12- اضغط علامة "+" المجاورة للعنصر "أدوات اللغة" Language Tools.. عندئذٍ سينسدل هذا العنصر عن ثلاثة عناصر فرعيّة، هي أسماء لغات البرمجة.. اترك علامة الاختيار بجوار Visual Basic .Net و Visual C# .Net، فإنّ إزالة C# لن يوفّر لك أكثر من 20 ميجا بايت، فهي و VBيعتمدانِ على نفس الملفّات والمصادر تقريبا.. ولكن أزل علامة الاختيار من أمام Visual C++ وذلك بضغط مربّع الاختيار بالفأرة، وذلك حتّى توفّر حوالي 500 ميجا بايت.
13- أزل كذلك علامة الاختيار من أمام العنصر .Net Frame Work SDK.
14- لو أردت توفير حوالي 600 ميجا من مساحة الإعداد، فاضغط علامة "+" المجاورة لعنصر الوثائق Documentation، وأزل علامة الاختيار من العنصر Additional MSDN Documentation.
14- اضغط زرّ تحديث الآن" Update Now ليبدأ الإعداد.. سيستهلك ذلك بعض الوقت، وفي خلال ذلك سيطلب منك برنامج الإعداد إدخال الأسطوانات المطلوبة.. بعد أن ينتهي الإعداد اضغط زرّ Done.
15- مرحى.. لقد أعددت اللغة.. الآن يمكنك فتحها من قائمة Start حيث ستجدها ضمن قائمة البرامج Programs تحت عنوان: Microsoft Visual Studio .Net .
وقتا ممتعا!


avatar
Mr.Hacker
Admin

المساهمات : 70
تاريخ التسجيل : 23/06/2017

معاينة صفحة البيانات الشخصي للعضو http://ezz111gdy.yoo7.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


إرسال موضوع جديد   إرسال مساهمة في موضوع
 
صلاحيات هذا المنتدى:
تستطيع الرد على المواضيع في هذا المنتدى