الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل آن الأوان لنشد الرحال الى VB.NET

مغلق
بدأه nasser50001 في 16 مارس 2005 · 10 رد · 1,292 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أحاول من فترة ليست بالقصيرة ان أشد الرحال الى VB.NET رغم اني قطعت فيها شوطا كبيرا نزولا على طبيعة عملي ولكن أقدم رجلا وأوخر آخري لسببين

1 - عشقي الشديد للإصدار 6 حتى اني يصعب علي فراقة والتنازل عنه

2 - عدم التفرغ بصورة كبيرة للبدء مع هذا المجهول VB.NET على الرغم من مذاكرتي السريعة لكتاب تركي العسيري والتصفح السريع ايضا لكتاب mastring وكتاب احترف الفيجوال دوت نت ولكن هل آن الأوان لكي نرتحل أم لا يزال في الوقت فسحة .... وماذا إذا تاخرنا هل سنفقد الكثير وما هي المالانجازات التي سنجنيها من الرحيل وكيف يتم هذا الرحيل وما دور المنتدى في فكرة الرحيل

اسئلة كثيرة تدر في ذهنيواريد المشاركة في النقاش على هذه المحاور :

1 - هل نحن على استعداد للرحيل أم يزال هناك فسحة من الوقت .

2 - ما نتيجة التأخر عن التحويل الى الفيجوال بيسك دوت نت

2 - ماذا سنجنية من هذا التحول

4 - ما دور منتدى الفيجوال بيسك ( منتدانا الحبيب لهذا الرحيل إن حدث )

اسئلة دارت في ذهني فأحببت أن أطرحها للنقاش

ارجو التفاعل مع الموضوع

ولكم تحياتي

أخوكم ناصر

#2

في الحقيقة انا ايضا يحيرني هذا الموضوع ..

ولكن ارى انه يجب علينا جميعا ان نتحول الى البرمجة بـتقنية الدوت نت .. وذلك لآنها المستقبل ، ولآن لا مجال للبقاء لسنوات قادمة على فيجوال بيسك 6 .. ولآن مايكروسوفت تخلت عن دعمها له .. ولأمور اخرى كثيرة جدا ...

واعتقد انه يتوجب علينا ان ننتقل إستغلالا للوقت والجهد ..

وانا شخصيا احاول ان انتقل الى هذه البيئة ولكن المشكله التي لدي ان نظام التشغيل هو ويندوز ملينيوم ، ونظام ويندوز اكس بي خارج نطا امكانيات جهازي .. ولكني سمعت بطريقة للعمل على ملينيوم وسأعمل بها إن شاء الله تعالى ...

تحياتي لكم جميعا

#3
/index.php?showtopic=59638

اذا اراد الله بعبد خيراً فقهه في دينه

((إياكم والغلو في الدين فإنما هلك من كان قبلكم بالغلو في الدين )).

( إن هذا الدين يسر ولن يشاد هذا الدين إلا غلبه فأوغلوا فيه برفق )

( هلك المتنطعون ، هلك المتنطعون ، هلك المتنطعون )

<span style='font-size:14pt;line-height:100%'>طريقة سريعة لحفظ كتاب الله العزيز</span>

<span style='font-size:14pt;line-height:100%'>تعرف على عباقرة الكذب</span>

#4

السلام عليكم

ايه دا يا اولاد الــ .......

بدكم تخربو بيوتنا ولا ايه

اللي عايز يروح الدوت نت او .New :D

يروح بس ما يخربش علينا

كده برضك ياخبيرنا , انا اللي بقول عليك انت الكبير تجي تخرب علينا اكل عيشنا

الله يسامحك .

:)

gaza3-3.jpg
#5

:D :D :D :D

أكل العيش مر

#6

السلام عليكم

ادي كده هانت عليكم العشرة , الله يسامحكم .:(

طيب يا استاذ ناصر روح لي ناس الدوت نت و خليهم يعطوك خبير :)

gaza3-3.jpg
#7

الاخ ناصر

تشتي كلام مليان ومقنع ..

شوف هذه المقالة للاستاذ رغيد الطيب :

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

لقد حان الوقت للانتقال الى الاصدار VB.NET , عبارة بدأنا نسمعها كثيراً هذة الفترة ...

ولكن هذة العبارة الجديدة تمثل للقليلين مصدر تفاؤل بينما تسبب للغالبية العظمى من مبرمجين الاصدار VB6 كابوساً

رهيباً يطبق على انفاسهم .. فهم قد عاشوا مع الاصدار القديم سنوات من الصداقة الحميمة التي يصعب تجاهلها بهده

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

بعض الاستفسارت كالتالي :

1 - انا لا ازال مبتدء في الاصدار القديم فكيف انتقل قبل ان اصل الى مستوى الاحتراف اولاً ؟

2 - سوف انتظر حتى تنتشر اللغة الجديدة !

3 - الانتقال يحتاج الى جهد كبير انا في غنى عنه هذة الفترة !

4 - الاصدار الجديد غير متوافق مع جميع انظمة الوينذوز مثل الملينيوم !

5 - بما اني سوف انتقل فلماذا لا انتقل الى C#.NET او C++.NET ؟

6 - ان شركة مايكروسوفت شركة متقلبة فما الضمان من ان تنشئ لغة جديدة بعد ان اكون قد قطعت شوطاً في

اللغة الجديدة فلماذا لا انتقل الى لغة مختلفة كلياً كالجافا او الدلفي مثلاً ؟

7 - لاتوجد مصادر كثيرة للمعلومات عن الاصدار الجديد كما هو الحال مع الاصدار القديم ؟

8 - استطيع القيام بكل البرامج التي اريدها بالاصدار الحالي فلما اقوم بالانتقال اصلاً ؟

9 - ارى ان مايكروسوف قد بالغت في التسهيل على المبرمجين لدرجة التي ستدفعهم الى إلغاء عقولهم ... فكل

شيء اصبح جاهزاً ؟

طبعاً التساؤلات السابقة لم ولن تكون كل التساؤلات التي قد تخطر ببال كل المبرمجين و قد يكون غيرها الكثير ...

ولكن دعوني ابين وجهات نظري في كلاً مما سبق فقد يشاركني الكثير وقد يعارضني اكثر ولأن الله قد من علينا

سبحانه وتعالى بعقول نزن بها الامور فلا اظن ان احداً منا لا يستطيع ان يميز الخطأ من الصواب ... لهذا اذا كنت ممن

تعتريهم الريبة من الاصدار الجديد فقرأ وجهات نظري فيما سبق وخذ منها ما وافق ميلك وهذة تسعة اسئلة (عدد

فردي ) لهذا فالنتائج لابد وان تميل الى احد الجانيبن والاجابة التي تقتنع بها سجل عندها مقتنع والتي لست مقتنع

بها فسجل عندها العكس وبعد ان تفرغ انظر اي الجانبين اقوى جانب الاقتناع ام الجانب الآخر ! ... ثم استفتي قلبك

وتوكل على الله يقول الحق سبحانه وتعالى :

<< وشاورهم في الأمر فإذا عزمت فتوكل على الله إن الله يحب المتوكلين >>

يظهر بوضوح من الاية السابقة ان التشاور هو امر مهم ويكفيه اهميه ان الله سبحانه وتعالى امر به المصطفى صلى الله

عليه وسلم ... ثم بعد ذلك جاء الامر الثاني وهو

فإذا عزمت فتوكل على الله إن الله يحب المتوكلين

ضع تحت هذا الامر خطاً ... فيكفيك بعد ان تتوكل على الله ان تفوز بحب الله تعالى وان كانت خسارتك ليس الفجيوال

بيسك فقط بل لو كانت خسارتك هي كل لغات البرمجة التي عرفتها البشرية ! ...

والان دعنا نجيب على التساؤلات .. مع التنويه بأن كل ما سيأتي هنا هو عبارة عن رأي شخصي لا الزم احد باتباعه

ولكني اذكره فلربما انار لبعض الحائرين طريقاً ...

1 - انا لا ازال مبتدء في الاصدار القديم فكيف انتقل قبل ان اصل الى مستوى محترف اولاً ؟

الاجابة على هذا السؤال لا تحتاج الى فطنة ابداً فإذا كنت مبتدئاً في الاصدار الحالي فما الذي ستخسره من الانتقال

فالخسارة ليست لمن هم مثلي من المبتدئين بل هي للذين هم على قدر كبير من الخبرة والاحتراف حيث سيكلفهم

الانتقال ان يتنازلوا عن مناصبهم الرفيعة بين مبرمجين اللغة الحالية كي ينخرطوا مع فريقنا كمبتدئين تحت لواء الاصادر

الجديد VB.NET ... وان كنت لا اعد هذة خسارة ابداً فكلما زادت خبرة المرء بلغة برمجة كلما سهل عليه اتقان لغات

اخرى بأوقات قياسية والنتيجة هي انه سيكون محترف في لغته الاولى وعلى مستوى جيد في لغته الجديدة مما

سيدفع به بوقت قصير نسبياً الى الاحتراف في اللغة الجديدة بعونٍ من الله وتوفيق ... واما للمبتدى فهي فرصة ذهبية

لاثبات الوجود في عالم يتعبر جديداً على الجميع فبعد ان كان مبتدئاً بين محترفين اصبح الكل سواسيه و الغلبة لمن

اراد له الله ذلك وكان ذو همة عالية و بأس شديد ...

2 - سوف انتظر حتى تنتشر اللغة الجديدة ؟

ان انتظارك لانتشار هذة اللغة حتى تبدء في تعلمها سوف يزج بك الى الخلف كثيراً ففي الوقت الذي تطور نفسك في

امور ستنتهي بعد امد قريب يسعى غيرك الى اكتساب مهارات ستدوم زمناً اطول من المهارات التي ستكتسبها انت

... حيث ان الجهد المبذول في تعلم شيء جديد على الانسان يستلزم جهذ كبير سواء اكان بهذة اللغة ام بتلك فعدم

العلم بشيء سواء .. فلماذا تحرق ساعات ثمينة في تطوير مهارات قديمة يمكنك استغلالها بعد رضا الله في امور اكثر

فائدة مع مهارات افضل في هذة اللغة الجديدة !

3 - الانتقال يحتاج الى جهد كبير انا في غنى عنه هذة الفترة ؟

نعم الانتقال يحتاج الى جهد ولكن ... ان تخصص ايام محددة في الاسبوع لتعلم اللغة الجديدة لن يضرك في شيء بل

انه سوف يفيدك كثيراً على الاقل من ناحية العلم بالشيء فبدلاً من ان تمضي ساعات الفراغ في البحث عن تمضية

للوقت بما يسليك في امور غير مفيدة لم لا تبحث عن التسلية بين سطور اللغة الجديدة ! (لاتنسى ان ذكر الله تعالى

في فراغك اذ يقول سبحانه "فإذا فرغت فانصب#وإلى ربك فارغب" ) ... إضافة الى ذلك فأنك ان

تعلم مثلاً انه يمكنك إستبدال عرض الرسائل MsgBox بواسطه MessageBox.Show في الاصدار الجديد فهي تعتبر

معلومة جميلة ( للعلم فقط ان الامر MsgBox مازال يعمل في الاصدار الجديد) ولم تكلفك هذة المعلومة من الوقت إلا

الثانية او الاثنتين التي استغرقتها في قراءة السطر السابق ... لهذا فتخصيص وقت مهما كان قصيراً لتعلم اللغة

الجديدة سوف يعود عليك بالنفع الكبير بإذن الله تعالى ... وستجد نفسك ذو خبرة لابأس بها مع مرور الوقت .. فلا تنتظر

ابداً .

4 - الاصدار الجديد غير متوافق مع جميع انظمة الوينذوز مثل الملينيوم ؟

صحيح انه يلزمك تنزيل إطار العمل (NET Framewrok.) على انظمة الوينذوز القديمة حتى تعمل برامجك إلا ان إطار

العمل هذا سرعان ما سينتشر ويكون ضمنياً في انظمة التشغيل المستقبلية ... مما سيزيل هذا العائق لهذا فهو

ليس بالعذر الكافي لتضييع فرصة تعلم اللغة الجديدة وتأجيل ذلك بينما يتسابق الكل في انحاء العالم لسبر اغوار هذة

اللغة الجديدة قبل ان تصبح هي اللغة السائدة ...

وفي هذة المرة يكفي تحميل إطار عمل الدوت نت حتى تعمل برامجك بشكل جيد على اصدارات الوينذوز المختلفة و

يمكن ان ترفقه مع برنامجك اذا كنت تنوي توزيعه وتنتهي بذلك المشكلة ...

5 - بما اني سوف انتقل فلماذا لا انتقل الى C#.NET او C++.NET ؟

في الواقع لكل لغة مايميزها و اذا اطلعت على ملفات المساعدة مثلاً فسوف تجد انه ما ان يذكر مثال لكود معين في

لغة الفجيوال بيسك حتى يذكر نفس المثال بلغة #C وسوف تستغرب من تطابق العمليات مع اختلاف صيغة اللغة فقط

.... اما الاوامر و المكتبات التي يمكنك الوصول اليها فهي متساوية في اغلب الاحيان وبالتالي يبقى لديك حرية الاختيار

من بين اللغات .. مع العلم بأن جميع الاكواد تتم ترجمتها جميعاً الى نفس اللغة الوسيطة التي تعتمدها مايكروسوفت

وبالتالي فأنت تكتب الكود باللغة التي تروق لك ثم يتم ترجمتها بنفس الطريقة ولا انسى هنا ان اذكر ميزة محرر الكود

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

يقوم بتكملة بعض الامور بدلاً عنك تسهيلاً في الكتابة والتكرار الممل فمثلاً انت عندما تكتب :

كود:

If I = 4 Then

فبمجرد ان تضغط على الزر Enter عند انتهائك تجد ان المحرر قد اقفل الشرط نيابة عنك وذلك باضافة End If في

الاسفل وكذلك عندما تكتب امر الدوران FOR فانه يكمل الكود عنك بإضافة Next في الاسفل .. ولا تنتهي ميزة المحرر

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

ولا انسى ان اذكر احب الاشياء الى قلبي وهي عدم حساسية الاحرف فعندما تعرف متغير بإسم Rgheed انت لا تهتم

بعد ذلك كيف ستكتب اسم هذا المتغير فاذا كتبته بالشكل :

rgheed

او

rghEEd

او

rGheed

او كيفما تشاء فان المحرر سوف يعيده الى صيغته التي عرفته بها مسبقاً وهي Rgheed وهذة الميزة موجودة في

الاصدار القديم من الفجيوال ايضاً ولكنك في اللغات الاخرى سوف تجد ان جميع الصيغ تمثل متغيرات مختلفة فالمتغير

rgheed لايساوي المتغير Rgheed لانهما لا يحملان نفس حالة الاحرف يعني يمكنك كتابة اكتر من متغير بنفس الاسم

مع تغيير حالة الاحرف وهذا يعني بالنسبة لي على الاقل صداع حاد في الرأس عند تتبع كود برنامج معين ...

وبشكل عام فأن الـ VB.NET هو التطور الطبيعي لمبرمجي VB بينما الـ C++.NET هو ايضاً التطور الطبيعي لمبرمجي

++VC .. اما الـ C#.NET فهي وجدت لتنساب المنتقلين من لغات اخرى مثل الجافا او السي++ فهي عبارة عن مزيج

بين لغات برمجة الجافا والـ ++C ...

وكرأي شخصي في هذا السؤال فانا افضل بل لست ارضى عن VB.NET بديلاً ... ولا تنسى انه يمكنك الانتقال الى اي

لغة من اللغات الجديدة فالمهم هنا هو عدم تضييع فرصة الاستفادة من امكانيات بيئة الـدوت نت عليك ابداً فهي مكتبة

قوية جداً يمكنك استغلالها بأيٍ من اللغات السابقة فاختر منها مايروق لك ولا تتردد فقط ابدء مع من تحب فقد اللغيت

معظم الفروق بين اللغات ولم يعد بامكان احد ان يطلق عبارات مثل ان الفجيوال بيسك لغة ضعيفة كما في السابق ..

6 - ان شركة مايكروسوفت شركة متقلبة فما الضمان من ان تنشئ لغة جديدة بعد ان اكون قد قطعت

شوطاً في اللغة الجديدة فلماذا لا انتقل الى لغة مختلفة كلياً كالجافا او الدلفي مثلاً ؟

سؤال جميل واجابته منوطه بك وحدك فلكل لغة ميزاتها ولكن لا تعتقد ابداً ان مايكروسوفت سوف تضحي بقاعدتها

الجماهيرية بهذة البساطة وهي لم و لن تخاطر بتغيير منتجاتها ولغات برمجتها دون فائدة من وارء ذلك ... ويمكنك ان

ترى ذلك بوضوح مع اصدارت الفجيوال السابقة فقد كان كل اصدار اقوى بكثير من سابقيه ولم اجد شخص عاقل يقول انه

"كان من الافضل ان تبقي مايكروسوفت على الاصدار VB4 بدلاً من ان تأتي بالاصدارت VB5 ثم VB6" طبعاً هذا كلام غير

منطقي ابداً فيكفيك ان تعرف انه لم يكن بامكانك ان تصمم ادوات ActiveX في الـ VB4 لهذا كله اقول لك اخي ان كل

اصدار حمل لنا مميزات كبيرة جداً عن سابقه ولكنها كانت عبارة عن لغات منفصلة عن بعضها البعض فللفيجوال بيسك

دوال واوامر لن تجدها في الفيجوال سي++ وكذلك الحال بالنسبة لدوال و اوامر السي لن تجدها في البيسك .. اما

الان مع الاصدار الجديد فالاوامر هي نفسها في جميع اللغات وكذلك الدوال والتغيير الذي تجده فقط في النص

البرمجي ... وما اريد قوله هو ان جميع اللغات اصبحت تتشارك نفس الموارد ونفس الادوات والكائنات .... واذا كنت

تتسائل ما الفائدة من ذلك فالاجابة هي انه كان في السابق على مايكروسوفت ان تطور ادوات كل لغة لحالها اي ان

للبيسك دوال وكائنات وللسي ايضاً دوال وكائنات مختلفة ولهذا كنا نرى دائماً انه يوجد اشياء موجودة لمبرمجي السي

وليست لدينا كمبرمجين فيجوال بيسك كما ان مبرمجي السي يجدون تسهيلات لدينا ولايجدوها لديهم اما الان اصبح

على مايكروسوفت ان تفكر في تطوير التقنيات والادوات فقط والجميع بعد ذلك سوف يستخدم نفس الميزات نظراً لان

البنية التحتية اصبحت موحدة تقريباً (طبعاً هناك امور تختلف فيها اللغات ولكنها ليست كما في السابق) ولهذا فانت

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

من الاصدار VB6 الى VB.NET لم يكن لمجرد التسلية بل انه نقلة حقيقة ذات فائدة عظيمة وسوف تتطور من الان

بشكل مفيد جداً بعد ان اصبحت لدينا جميع الامكانيات التي كنا نحلم بها فلم يكن باستطاعة احدنا ان يستخدم تقنية

الـ OOP في الفجيوال بيسك وماكنا نقوم به هو مجرد تحايل لم يكن يغني من الحق شيئاً ... اما الان فلدينا بيئة رائعة و

كائنية التوجه (OOP) بالفعل ....

كما اريد ان اللفت نظرك بان لغة الجافا قد اصبحت تشكل تهتدياً واضحاً لميكروسوفت بانتشارها الواسع لهذا نرى ان

ميكروسوفت وضعت وبسرعة خطة مضادة لاجتاذاب مبرمجي الجافا وذلك عن طريق ال C# الماشبهة كثيراً للغة الجافا

من حيث الصيغ البنائية مما يسهل على مبرمجي الجافا عناء الانتقال اليها في حال رغبتم بذلك ..

وككلمة اخيرة بالنسبة لهذا السؤال ان انتقال مايكروسوفت الى تقنية الدوت نت لم يكن عبطاً وسوف تلمس ذلك اذا

بدأت بتجربة التقنية الجديدة بشكل جاد ... كما اني اود ان اللفت انتباهك الى ان الدعم الفني وملفات المساعدة

والامثلة المطروحة على الشبكة والتي تهتم بتقنيات شركة مايكروسوفت لن تجد لها مثيل بين قريناتها من الشركات

الاخرى مما سيصب في الاخير الى فائدتك انت من توفر المصادر بشكل مكثف في الشبكة ... اعلم انه قد يساروك

شعور بان هذا تحيز واضح مني لهذة الشركة ولكني اود ان اعلمك انني كمسلم فأني اتأسى بنصيحة رسولنا الكريم

بأن الحكمة ضالة المسلم انى وجدها فأنها له .... فصلى الله عليه وسلم وعلى آله وصحبه اجمعين وجمعني وكل

مسلم بهم في جنات النعيم ...

7 - لاتوجد مصادر كثيرة للمعلومات عن الاصدار الجديد كما هو الحال مع الاصدار القديم ؟

هذا كلام جميل وفيه من الحق جانب ولكنك اذا نظرت الى معظم إن لم يكن جميع المواقع الاجنبية من منتديات و

مواقع تعليمية لبرمجة البيسك فانك سوف ترى انها قد اضافت اما قسماً او مجموعة كبيرة من الدروس المتعلقة

باليجوال بيسك دوت نت ... كما ان معظمها قد جعل اللغة الاساسية التي يدعمها الموقع هي اللغة الجديدة وجعل

اللغة الثانوية هي لغتنا الحبيبة VB6 ... وهذا بالنسبة للمواقع الاجنبية واما بالنسبة للمواقع العريبة فقد بدأ الحال ايضاً

بالتغيير وبدأت المواقع البرمجية العربية تضاعف دعمها للغة الجديدة ومن هذة المنتديات العربية :

منتدى الفيجوال بيسك للمبرمجين العرب www.vb4arab.com ومنتدى الفريق العربي للبرمجة

www.arabteam2000.com .... وهذان المنتديان على سبيل المثال وليس على سبيل الحصر ...

وقد بدأت هذة المنتديات تزيد دعمها للغه الجديدة حتى يوفر لجميع المسلمين غير المجيدين للانجليزية دعماً لايقل

كفائة عن نظيرة الاجنبي بإذن الله تعالى ...

8 - استطيع القيام بكل البرامج التي اريدها بالاصدار الحالي فلما اقوم بالانتقال اصلاً ؟

صحيح ان الفجوال بيسك 6 هي عصا سحرية استخدمناها طويلاً في حل مشاكلنا وهي لم تخذلنا إلا في حالات نادرة

جداً جداً خاصة اذا تزينت برامجنا ببعض دوال API التي مكنتنا من التحكم بالوينذوز بشكل كبير .. كما انه يحقق سهولة

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

تقدمها الدوت نت ؟ ... اذا كانت الاجابة لا .. فلا عجب من ان يتبادر الى نفسك مثل هذا السؤال فمن اطلع على

المميزات الجديدة سوف يجد انها بالفعل تستحق الانتقال ...

ولنفرض الان ان جميع المميزات الجديدة لم ترق لك او انها لاتهمك في مجالك على الاقل .. ولكن هل فكرت ما الذي

سيكون عليه الحال بعد فترة وجيزة من الزمن !

اذا لم تكن قد فكرت في ذلك دعني اساعدك بما استطيع ( والله سبحانه اعلى و اعلم ) .... ان برامج الفيجوال التي

اعتدنا عليها دائماً كانت وبشكل اساسي موجهه للحاسب الالي وليست احترافيه في مجال الشبكات ولكن الذي

يحصل ان الامور اصبحت تتجه وبشكل سريع الى برمجة الشبكات ومواقع الانترنت وما يقدمه لنا الفجيوال بيسك لا

يقارن ابداً معا مايقدمه لنا الدوت نت .... فالميزات كثيرة جداً ومنها على سبيل المثال انشاء خدمات ويب Web

Services وفيها يمكنك ان تقوم بتصميم مجموعة من الدوال القوية ثم تضعها في سيرفرات قوية على موقع معين ثم

تستدعي هذة الدوال والكائنات من داخل برنامجك او موقعك في اي مكان في العالم وتطبيقات خدمات الوب لاحصر لها

... طبعاً اذا كنت من المبرمجين المخضرمين في الفجيوال بيسك 6 ... فكأني اراك تتهيئ الان لكي تخبرني بانه يمكنك

اداء ذلك بفيجوال بيسك ايضاً مع بعض الاستخدامات المتقدمة ... إلا ان ما اريد ان اخبرك به هو كل ذلك يمكنك ان تقوم

به ببضع سطور فقط باستخدام الدوت نت بل انه يكفيك سطران من الكود كي تستدعي دالة موجودة في خدمة ويب من

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

في الواقع الميزات كثيرة ولست بصدد ذكرها هنا ولكن يروق لي ان اضرب مثالا بسيطاً عن التشعبات او الـ Threads ...

تخيل معي انك تريد من برنامجك ان يقوم بفتح قاعدة بيانات ويستخرج بيانات منها ويعرضها لك بطريقة معينة ثم يفتح

بريدك على الانترنت ويحظر لك آخر الرسائل الموجودة فيه ويقوم بفحص القرص الصلب لديك لمعرفة الملفات التي تم

حذفها مثلاً ... وهذا كله في الحدث Load للفورم !! ... فما الذي تتوقع حدوثه عندئذ ؟ ... الاجابه هي بطء شديد في

ظهور الفورم وتعليق البرنامج .. اليس كذلك ؟

لكن هذا كله بالفيجوال بيسك دوت نت غير موجود حيث يمكنك ان تنشأ تفرع خاص بكل عملية من العمليات ثم

تستدعيها جميعاً في نفس الوقت ومع ذلك يمكنك ان تستخدم الفورم الرئيسية دون ان يشعر المستخدم ان هناك

اموراً معقدة تدور في الخفاء .... واكثر من هذا فانه يمكن التحكم بسرعة كل عملية من العمليات فمثلاً اذا احست

عملية جلب رسائل البريد بان عملية البحث في القرص الصلب سوف تعيقها يمكنها ان توقفها لفترة معينة تستحوذ

فيها على الجهد الاكبر للمعالج تم تعود لتشغليها بعد ذلك ... وغير ذلك من عمليات التحكم القوية ! .... ولهذا فقد

اصبح بامكان مبرمج الفيجوال بيسك ولاول مرة ان يتنفذ اكثر من دالة في نفس الوقت دون اي تدخل من دوال الـ API !!

..... وحتى بتدخل الـ API فقد كانت التشعبات هي احد اكبر الاسباب التي تزيد الاخطاء في برامج الفجوال بيسك

حيث ان ابسط خطأ غير متوقع يسبب مشاكل كثيرة ... اما مع الدوت نت فقم بعمل كل ما تريد وفي نفس الوقت بدون

اي عناء يذكر او ادنى ازعاج للمستخدم (الازعاج المقصود تعليق او تجمد وتأخير تنفيذ البرنامج) ...

ان اهم الاشياء التي قد تغريك في الاصدار الجديد انه يمكنك ان تبني انواع كثيرة جداً من البرامج بواسطة لغتك

الحبيبة الفيجوال بيسك (دوت نت طبعاً) ومن هذة الانواع :

- تصميم صفحات ومواقع انترنت تفاعلية (ASP.NET) .

- بناء خدمات ويب على مستوى عالي من الموثوقية .

- يمكنك ايضا تصميم برامج تعمل في نظام الدوس ! ( Console Applications ) .

- هذا كله وغيره الكثير بالاضافة الى جميع انواع البرامج التي كنا نعرفها في الاصدار القديم كا برامج الوينذوز العادية و

بناء مكتبات (DLL) وغيرها ..

باختصار شديد تحمل الدوت نت اكثر من الذي كان يتمناه مبرمج الفيجوال بيسك فلا تحرم نفسك من متعة البرمجة

بهذة اللغة ...

9 - ارى ان مايكروسوف قد بالغت في التسهيل على المبرمجين لدرجة التي ستدفعهم الى إلغاء عقولهم

... فكل شيء اصبح جاهزاً !

هذا الكلام لايصدر إلا من مبرمج يتذوق السطور البرمجية التي يكتبها تذوقاً ... فهو لايريد السهولة المطلقة بالقدر الذي

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

وهو شيء احييك عليه اخي و لا اخفيك اني كنت اخشى مثلك ان اصبح مستخدم دوت نت بدلاً من كوني مبرمج VB6

.... ولكن كل هذة المسائل قد تلاشت الان بعد تجربتي للغة الجديدة فان السهولة التي اضافتها مايكروسوفت هي

في الامور التي كانت تشكل اشياء روتينية مملة في الاصدار السابق بينما تركت لك حرية التصرف مع المسائل

البرمجية التي تخصك كما يحلو لك ...

ويذكرني هذا الوضع كثيراً بحال المنتقلين من السي++ الى الفيجوال بيسك 6 ... فقد كان مبرمج السي++ قديماً

فمثلاً لكي تظهر رسالة خاصة عندما ينقر المستخدم على الفورم التابعة لبرنامجك في السي++ كان يجب القيام

بعمل دوران داخل برنامجك للاستماع الى جميع الرسائل التي تصل الى البرنامج من نظام التشغيل بحيث يقوم

البرنامج بتحليلها منتظراً ان تصل الرسالة WM_LBUTTONDOWN حتى يقوم بالاستجابة لها ويظهر الرسالة !!

بينما في الفجوال بيسك يكفيك ان تقوم تضع الشفرة الخاصة باظهار الرسائل في الحدث MouseDown التابع للفورم

وينتهي بذلك كل شيء ..

وهذا هو بيت القصيد فما الفائدة من تكرار عمل الدروان في جميع البرامج التي انشئها كي اقتنص رسائل النظام

وعلى الرغم ان الامر ليس نعقداً جداً ولكنه يستلزم الخروج من الغرض الرئيسي للبرنامج لتأدية بعض الامور الروتينية

وهذة هي اكثر الامور التي تصيب المبرمج بالملل ..

لهذا فلا تنتظر من الفيجوال بيسك او اي لغة اخرى تقوم هي بعرض الرسالة بدلاً عنك ولكنها قد تعفيك من الالتفات

الى الامور التي لا تهمك في بناء برامجك وهذا هو بالضبط ما تقدمه الدوت نت لك فانت الان بيديك كل ما تتمناه فقط

حدد متطلبات برنامجك وابدأ بعون الله ..

-----------------------------------------------------------------------------------

حتى لا تفهم المقالة بشكل خاطىء

لم يكن الغرض من هذة المقالة هي الدخول في منازعات لا تغني ولا تسمن من جوع ... ولكنها مجرد همسة في

اذنيك اخي لعلها تجد صداها في عقلك .. فان لم تجد صداها فيه فلا تتعب نفسك بالرد على ما جاء فيها واعلم انها

مجرد اراء من شخص مثلك تردد كثيراً قبل ان يفكر في الانتقال ولكنه استغرب كثيراً تردده هذا بعد ان انتقل ... وها انا

ذا اشق طريقي مبتدئاً في لغة ساحرة راقت لي كثيراً كما لم ترق لي لغة من قبل ...

ولا انسى ان اذكرك انك اذا وجدت في حديثي السابق ما جانب الصواب فتجاوز عنه متكرماً ... فلو اردت الاستمرار في

الفيجوال بيسك 6 ... فتوكل على الله واستمر فيها .... وان اردت دخول عالم الدوت نت فتوكل على الله وادخل هذا

العالم ( ولعلك تلقاني في مواضيع برمجية تخص الدوت نت بين صفحات قسم الكمبيوتر في المنتدى ) ...

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

وبالمناسبة انا كنت امس عند الاخ رغيد ... وخلانا اكره الفيجوال بيسك واذهلتنا امكانيات الدوت نت . والله حاجة روعة .. خصوصا لما تسمع امكانياتها وتشوف وجه مقارنة بينها وبين البيسك تتمنى ان تبدأ الدوت نت الان وليس غذا ...

المقالة منقووولة من موقع اخر ..

اني ابتليت باربع ما سـلطوا ***** الا لشدة شقوتي و عنائي

ابليس والدنيا ونفسي والهوى **** كيف السبيل وكلهم اعدائي

شكوت الى وكيع سوء حفظي ***** فارشدني الى ترك المعاصي

و اخـبرنـي بـان الـعلم نـور ****** و نور الله لا يهدى لعاصي

#8

وهذا كان رد للاستاذ رغيد على الجدال والخلاف الكبير الذي نشأ بعد انزال المقالة :

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

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

في الواقع قد كنت اكيداً ( و لله علم السموات و الأرض ) انه سيكون هناك ردود معاكسة كثيرة ذلك ان الكثيرين يعتبرون مسئلة ارتباطهم بلغة برمجية معينة هي مسئلة شخصية حساسة جداً لا تحتمل التشكيك بها او تضعيفها ابداً ... على الرغم من ان اي لغة برمجية لا تعدو كونها بعضاً من الكلمات المحجوزة التي تكون هذة اللغة يمكن تركيبها بشكل يفهمه مترجم اللغة كي ينتج في الاخير برنامج مفيد او غير مفيد بحسب نية مبرمجه ... و يتكلم البعض عن مشاعر من الانتماء و الحب الى هذة اللغة وان كل شخص عرفها و يريد ان يتركها ( على الرغم من اني لا استطيع ذلك ابداً ) هو شخص ناكر للجميل برغم ان المسألة لا تتعلق بنركان الجميل مطلقاً ..... و اعجبني تعليق لصديق عزيز علي قال بما معناه : " اذا مللت يوماً ما من سيارتك واردت ان تشتري سيارة افضل منها فسوف يفرح الجميع لك, اما اذا اردت ان تتجه الى لغة برمجة افضل فلن يتركك احد وشأنك و ستجد من يهجم عليك وبعنف !!" .. طبعاً انا لا اقصد انه يوجد من الحاظرين من قد هجم علي بعنف ... ابداً ابداً ... فالجميع راعى الموضوعية في طرحه لرأيه وهو شيء يشكرون عليه ... و لكن كلمات صديقي بالفعل اعجبتني و احببت ذكرها فقط ... و من غير المنطقي ايضاً ان لا استبدل سيارتي قبل ان اقود بها بسرعتها القصوى ( 200 كليومتر في الساعة ! ) فلايجب علي ان استفيد من هذة السرعة كاملة قبل ان اترك السيارة و لكن المنطقي ان اقود بالسرعة التي تكفيني فقط و إلا ربما كنت نزيل احدى المستشفيات حينها !!! ...

لهذا عندما كتبت مقالي السابق كنت و اضحاً حين قلت انها مجرد اقتراحات و خواطر دارت في فكري واقترحت طريقة كي تتفاعل من هذه الخواطر و هي ان تتحدد ( بينك و بين نفسك !) واشدد على العباره ( بينك و بين نفسك ) ما الخواطر التي اقتنتعت بها وما التي لم تقتنع بها ثم ترى اي الكفتين هي الارجح فتستخير الله تعالى ثم تتوكل عليه و تمضي في حياتك البرمجية التي اخترت مشمولاً برعاية الله وحفظه في الدارين الآخرة و الأولى بإذنه سبحانه وتعالى ... و السبب في ذلك ان كثيراً من الحوارات الجادة التي رأيتها من قبل لم تنتهي إلا بإزدياد تمسك كل فرد بلغته البرمجية التي يتقنها او يظن انه يتقنها كما اشار الأخ العزيز أمين ...

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

فقد رأيت ان البعض قد فهم مقصدي عن الدوت نت خطاءً ... فظن اني اقصد ان نترك الفيجوال بيسك 6 الى غير رجعة ... فمن ظن ذلك فاليراجع موضوعي السابق جيداً و لعله يفهم مقصدي جيداً ...

إن الفيجوال بيسك هي لغة طالما تحدث الكثيرين عن ضعفها المخزي و ان اللغات الأخرى اقوى منها و من نتائج مثل هذا الحديث ان ظهر عند الكثيرين شك عظيم و تخبط كبير بشأن هذه اللغة المظلومة و عندما اقول الفيجوال بيسك فانا اقصدها بجميع اصداراتها .... فما هي الحقيقة التي ينبغي على المرء ( في نظري - يعني مجرد رأي شخصي ) ان يتبعها !!

ارى ان كل لغات البرمجة دون اي استثناء هي هدف مغري كثيراً كي يتعلمها المرء بالقدر المناسب لإحتياجاته و ميوله .. و اللغات المغرية كثيرة متنوعة مثل الدوت نت ( بجميع لغاتاها ) و محبوبتنا جميعاً الفيجوال بيسك 6 و الجماهيرية (Java) و الدلفي امتداداً للباسكال و السي ++ ( و من يستطيع أن ينساها ) .. وكذلك بالطبع القديمة لغة البرمجة الدفعية بواسطة اوامر الدوز Batch Files و كذلك الـ VBScript ولمحبي الجافا JavaScript ... واستخدامهما في الـ WHS اختصاراً للـ Windows Host Script ...

طبعاً قد يصاب المرء بالاحباط لكثرة اللغات التي اريده ان يتعلمها وقد يظن ان العمر سيفنى قبل اتقانها .. ولكني في الواقع لا اريدك ابداً ان تتقنها كلها فواحدة او اثنتين ستكفيك كي تتقنها رويداً رويداً غير اني انصحك بصفة شخصية ان تتسلى باحداها كل مرة لاسبوع فقط او اقل حتى .. و ذلك عند فراغك فقط للأطلاع فسوف يأتي يوم ستحتاج لمعرفتك بها وستذكرني حينها فكم هي المرات التي احتجت فيها لمعرفة لغة من اللغات بدلاً من تصعيب الامور ...

لكي تفهم مقصدي بأن لكل لغة ميزة مهما كانت قديمة فتخيل معي انك صممت برنامج وتريد ان تجعل هذا البرنامج يزيل نفسه من الجهاز بصورة نظيفه في وقت معين او استجابةً لحدث ما ... في هذة الحالة سوف تحتاج جعل برنامجك يحذف نفسه ! ... فكيف ستعمل هذا ربما ستقول اذا كنت مبرمج فيجوال بيسك ان الاجابة تكمن في استخدام الأمر Kill ولكنك ستفاجىء بان هذا الامر لن يعمل لانه لن يتمكن من حذف الملف وهو شغال ... و لو كنت من محبي اوامر الـ API فسوف تجد ان الامر على درجة من التعقيد و قد تكتشف بعض الحلول ولكنها لن تكون في معظم الاحوال متوافقة مع جميع اصدارات الوينذوز و ربما لجأت في الاخير الى الطريقة الأسهل وهي جعل البرنامج يحذف نفسه بعد اعادة تشغيل الجهاز و هو يتم بطرق بسيطة تختلف بإختلاف عائلة نظام الويذوز لديك اهي NT كالـ 2000 و الـ XP او من عائلة الـ 9x كالـ Me او الـ 98 ... و اذا كنت غير متخيل بعد مدى تعقيد الامر فانظر الى معظم البرامج المحملة في جهازك فعندما تريد ازالتها فانها تحتاج الى اعادة تشغيل كي تكتمل عملية الإزالة و لو جربت البحث عن مجلداتها قبل اعادة التشغيل فانك سوف تجدها موجودة في معظم الاحوال حتى تتم اعادة تشغيل الجهاز !!!

و لكن ابسط معرفة لك بملفات الـ Batch ذات الامتداد bat سوف تجعلك تضحك من بساطة حل هذة المشكلة وبالتالي يمكن ان تكتب برنامج يزيل نفسة بمجرد الضغط على زر امر موجود في فورم فيجوال بيسك وذلك عن طريق توليد ملف باتش صغير ثم جعله يتولى حذف برنامجك و نفسه وذلك دون ان يشعر المستخدم بذلك فقط ضغطة زر و ينتهي البرنامج كلياً من داخل الجهاز ... وبهذا ستكون قد ساعدت شركات البرامج كي تتمكن من ازالة برامجها بسرعة ودون الحاجة الى اعادة تشغيل !! ...

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

الشــــــــــــــــــــــموليــــــــــــة و الإنـــــتــــــاجيـــــــــــة

فالشمولية او التوافقية التي اقصدها هي ان الفيجوال بيسك لغة لكل مكان فأنت تجدها في برمجة التطبيقات المكتبية ( البرامج العادية ) كما تجدها وبقوة في برامج قواعد البيانات ( لا انسى ان اقول ان احد الاخوة الذين اثق بهم سئل احد مبرمجي شركة مايكروسوفت عن اقوى لغاتها التي تدعم قواعد البيانات و التي يمكن الاعتماد على بناء برامج فيها فقال ببساطة - الفيجوال بيسك ! ... للمعلومية : هذا الكلام قبل اكثر من سنتين تقريباً ) و اما اذا اردت ان تبرمج اشياء سريعة دون وجود الفيجوال بيسك على الجهاز فيمكنك حينها الاعتماد على الـ VBScript وفيها اكتب شفرتك بواسطة المفكرة ثم احفظها بامتداد vbs وليس txt و ينتهي كل شيء ... و اذا مللت تكرار تأدية بعض الاعمال الروتينية في اياً من برامج الاوفيس Access ,Excel ,Word, PowerPoint.... فسوف تستعين في هذة الحالة ايضاً بالفيجوال بيسك الخاصة بالاوفيس والمسمى VBA اختصاراً لـ Visual Basic for Applications ... لا ينتهي انصهار الفيجوال بيسك بجميع التقنيات و التوجهات عند حد فلو كنت مصمم و يب فقد تستعين بالـ VBScript لتأدية العمليات الروتينية في طرف الزبون Client-Side كما انك لن تحرم البرمجة في جهة المزود او الخادم Server-Side عن طريق التقنية الرائعة ASP او ASP.NET و التي اصبحت المنافس القوي جداً للـ PHP وهي اللغة التي كتب بها هذا المنتدى ... واذا كان المصطلح ASP.NET اختصاراً لـ Active Server Pages جديداً عليك فلا تقلق انه مجرد تسمية لتقنية جديدة تتم برمجتها بالفيجوال بيسك او السي شارب ان اردت ! ... يعني يبقى اتقانك لهذة اللغة منطلق وقاعدة قوية للخوض في جميع الامور من حولك فلست مقيداً بجوانب دون اخرى ...

دعني اضرب بعض الامثلة لميزات الفيجوال بيسك و ضرورة استفادتك من جميع اصداراتها لو قلت لك مثلاً اني اريد ان تساعدني في تصميم طريقة يمكنني بواسطها تصغير جميع النوافذ المفتوحة حالياً في النظام ؟

اذا كنت مبرمج فيجوال سي ++ او فيجوال بيسك فسرعان ما سيخطر عليك استخدام دالة الـ API المسماة EnumWindows كي تقوم بمعرف جميع النوافذ المفتوحة ثم تقوم بالبحث عن النوافذ الرئيسية فقط منها ثم تستخدم الدالة ShowWindow مع الثابت SW_MINIMIZE كي تقوم بتصغير النوافذ واحدة بعد اخرى ... طبعاً الامر ليس معقداً و لكن اود ان الفت انتباهك الى انك غير مضطر الى كل ذلك فقط ثلاثة سطور بالـ VBScript تغنيك عن وجع الرأس !!!

اكتب الشفرة التالية بالمفكرة ثم احفظها بامتداد vbs :

كود:

Dim O
Set O = CreateObject("Shell.Application")
O.MinimizeAll

انقر نقرتين على الملف بعد حفظه وسوف يعمل بإذن الله تعالى ... طبعاً يمكنك ايضاً استخدام الكود السابق من داخل الفيجوال بيسك ايضاً ... كما انوه انك اذا لم تكن تعرف لغة برمجة ملفات الباتش وتريد ان تجعل البرنامج يحذف نفسه .. يمكنك الاعتماد هنا على الـ VBScript ايضاً ...

مثال آخر عند استخدامي المتكرر للبرنامج الورد MSWord وجدت انه قلما توجد صفحة جديدة اكتبها فيه خالية من عبارة " بسم الله الرحمن الرحيم" ... وفكرت في انه سيكون من المفيد لو جعلت هذة العبارة تكتب مباشرة مع كل مستند جديد بحيث تظهر في الوسط و بتنسيق مناسب ... ما ستحتاجة هنا هو بضعة سطور تكتبها في محرر الفيجوال بيسك لتطبيقات الاوفيس VBA كالتالي :

كود:

Private Sub Document_New()
With Selection
.TypeText "بسم الله الرحمن الرحيم"
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.MoveLeft wdCharacter, 23, wdExtend
.Font.Bold = wdToggle
.Font.BoldBi = wdToggle
.Font.Underline = wdUnderlineSingle
.GoToNext wdGoToLine
End With
End Sub

مثال آخر يمكن بسطور قليلة باستخدام الدوت نت عمل برنامج خدمة لوينذوز Windows Service تقوم بمراقبة عمليات الحذف و التعديل و الاضافة لأي ملف داخل جهازك الشخصي و بالتالي ستكون لديك فكرة عن كل الملفات المزروعة في جهازك او المحذوفة مع معرفة الزمن الذي تمت فيه العملية ( للفائدة يمكنك مثلاً مراقبة الملفات التنفيذية التي يمكن ان تزرع في جهازك دون علمك بسبب استخدام الانترنت ) بالنسبة لي برنامج بسيط مسئول عن مراقبة هكذا امور داخل جهازي ... باستخدم نوع جديد من البرامج ( Windows Services ) التي يمكنك إنشائها في الفيجوال دوت نت !

في الواقع ان ما يمكنك القيام به بالفيجوال بيسك هي اشياء كثيرة متنوعة بغض النظر عن الاصدار الذي تفضله وكنصيحة لا تطلب دائماً ان تكون محترف في امر ما حتى تتمكن من الانتقال لأنك بعد مدة قصيرة ستجد ان الناس قد ان انطلقوا من حولك اما انت محترف و لكن !!!!!!

خذ من كل شيء ما يهمك و يفيدك ولا تتعب نفسك بالاستماع الى اراء الناس حتى انا !! .... فلست اكثر خبرة منك عزيزي وكن واثقاً اني اقل من أن اتمكن من توجيهك لهذا فإني اشدد على ان كلامي هذا مجرد اراء لا تغني ولا تسمن من جوع ... خذ منها ما وافق ميولك و دع ما دون ذلك ...

اما بالنسبة للانتقال او لعدم الانتقال الى الدوت نت فاني اقول يجب ان تفهم الوضع جيداً ... ان لكل لغة ميزات و عيوب مهما كانت قوتها حتى السي ++ على الرغم من قوتها فهي تفتقد الى السهولة و بالتالي فهي اقل انتاجية من الفيجوال بيسك و معنى اقل انتاجية اي انك لن تستطيع بناء برامجك بالسرعة التي ستبنيها بها باستخدام الفيجوال بيسك ... سيقول البعض ما الفائدة ! انا اريد ان اتعلم لغة قوية ... اقول له صدقني اخي ان لغات البرمجة و تطورها هو عالم سريع يحتاج الى مواكبة مستمرة واقول دائماً ان تمتلك مسدساً تجيد الرماية به خيراً لك من ان تملك مدفعاً لا تعرف طريقة استخدامه ... و كثيراً هم الذين يفاخرون باتقانهم لغات برمجة قوية ولكن الانتاجية تكون حينها ضعيفة جداً ... اضرب مثلاً منذ ايام عانيت من دخولي المتكرر لبريدي الالكتروني وذلك انه كان يأخذ مني بضع دقائق حتى اتمكن من الولوج اليه وتفحصه خاصة عند انتظاري لرسائل مهمة ... الحل لهذة المشكلة كان باستخدام الفجيوال بيسك ويتلخص في برنامج بسيط يقوم بتفحص البريد دون اي تدخل مني وبمجرد دخولي على الانترنت ثم يعلمني بوجود اي رسائل جديدة ... تجد صورته هنا ...

ان انتاجية الفيجوال بيسك تسمح لك ببناء برنامج مشابه دون عناء يذكر ربما الشيء الوحيد الذي سيلزمك لبناء برنامج مماثل للسابق هو فهم بروتوكول البريد كي تتمكن من جعل برنامجك يتواصل مع مزود خدمة البريد الذي تتعامل معه و البروتوكول المختص بتفحص البريد يسمى POP اختصاراً لـ Post Office Protocol ..

ما ارمي اليه هو ان تجرب بناء برنامج مماثل بلغة السي مثلاً ... طبعاً لن يكون الامر صعباً ولكنه بالتأكيد لن يكون بسهولة وسرعة انتاجية الفيجوال بيسك ...

وهنا يطرأ سؤال الى البال هل تعلم الفيجوال بيسك يغنيني عن باقي اللغات ؟

في الواقع لم اقتنع ابداً حتى الان بان تعلم لغة و احدة يكفي ! فعلى الرغم من المميزات الرائعة للفيجوال بيسك بكل اصداراته فسوف تجد اوقات تحتاج فيها الى سرعة اكبر لتادية بعض الوظائف البطيئة المعالجة وهنا ستحاج الى دعم لغات اخرى ... خذ مثلاً منذ فترة كنت اجرب بعض العمليات على لوغارتيمات الضغط الشهيرة وعلى وجه الخصوص لوغارتيم Huffman ( هو احد لوغارتيمات الضغط المستخدمة في برامج الضغط مثل الـ WinZip ) .. بحيث اسمح لبرنامجي بضغط ملف معين موجود في القرص الصلب .. وبعد الانتهاء من البرنامج بواسطة الفيجوال بيسك 6.0 احببت ان اسرع العملية قليلاً .. فقمت بتصميم دوال الضغط من جديد بواسطة الفيجوال بيسك دوت نت .... ولكن التحسين لم يكن كبيراً فقررت الاعتماد على السي ++ ... و لأن تحويل البرنامج الى السي ++ سيكون مرهق لهذا قررت الاستفادة من مزج اللغات عن طريق تصميم مكتبة بسيطة ( ملف DLL ) تحتوي على دالتي البسيطة التي تقوم بالضغط ولكن بشفرة السي ++ ... ثم بعد ذلك استدعاء هذة الدالة من داخل برنامجي بشكل طبيعي و بالتالي فأن الناتج هو برنامج فيجوال بيسك يستفيد من ملف DLL من السي ++ لزيادة السرعة ... ما ارمي اليه هو ان مزجك لأي لغة تعلمها او تعلم شيء يسير عنها ( كما هو الحال في البرنامج السابق فليست خبرتي في الفجيوال سي++ إلا خبرة بسيطة جداً جداً لاتعدو بضع اوامر ادخال واخراج و الصيغة الاساسية للغة ) سيفيدك كثيراً ...

و اخيراً اختم بالتنويه الى ان الفيجوال بيسك دوت نت هي ايضاً تحتوي على الكثير و الكثير من العيوب الى جانب ميزاتها الرائعة ... وذلك ان البرامج تأخد حجم اكبر من الذاكرة بسبب انها تتم ترجمهتا في وقت التنفيذ وهو اهم العيوب التي اراها في الاصدارة الجديدة إذ ان مايكروسوفت سعت خلف جعل برامج الدوت نت استقلالية عن بيئة التشغيل بحيث يعمل على اي منصة مثل برامج الجافا وهذة هي ( الميزة المغرية في الجافا ) ... و لكن هذا سبب مشاكل جانبية كبيرة اولها الحجم الكبير في الذاكرة و ثانيها ضعف درجة حماية الشفرة نظراً لانه لا تتم ترجمة البرنامج الى لغة الآلة مباشرة ولكن الى لغة وسيطة اسمها MSIL اختصاراً لـ Microsoft Intermidate Language و بالتالي يسهل على المترجم الفوري JIT اختصاراً لـ JustInTime Compiler من ترجمة البرامج اعتماداً على نظام التشغيل الذي تعمل عليه مباشرة ... اما بالنسبة لي فانا افضل ان تكون برامجي محمية وصغيرة الحجم حتى و ان اضطررت الى اعادة كتابتها للتوافق مع انظمة اخرى غير الوينذوز !!

هذا بالنسبة للعيوب وهي بالطبع ليست كلها .. و لكن اللغة لا تزال وليدة وهي في بدايتها وتتطور بشكل ملفت للنظر وهنا يجدر التنوية الى ان لغة الفيجوال بيسك دوت نت ليست امتداداً للفيجوال بيسك كما يظن البعض فعلى الرغم انها تحمل الصيغة اللغوية للفيجوال بيسك ( Syntax ) غير انك ستكون بحاجة الى تغيير طريقة تفكيرك كي تكون مبرمج فيجوال بيسك دوت نت ... و ذلك كي تستفيد من برمجة الـ OOP الساحرة اختصاراً لـ Object Oriented Programming .. واسغلال الوراثة بشكل جيد ....

و لو لم يكن في الدوت نت غير الـ OOP و تقنية الـ ASP.NET لكانت كافية جداً بالنسبة لي كي اميل اليها ... اه صحيح لا انسى الـ Web Services فهي اكثر من رائعة ..

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

كود:

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
KeyAscii = 0
End If
End Sub

هذة شفرة بسيطة يمكن فيها تقييد المستخدم بالارقام فقط عند تعامله مع مربع النص المسمى Text1 .. ولكن !!

تخيل معي ان برنامج يحتوي على عدة فورمات و فيها العشرات من مربعات النص التي تحتاج الى نفس العملية ! ... في هذة الحالة انت ستكون بحاجة الى ان تكتب الشفرة في جميع مربعات النص المطلوبة وهي عملية مرهقة إن لم تكن ايضاً سبباً في زيادة الكود ( لاحظ ان المثال بيسط و قد تكون هناك حالات اسوء من هذة بكثير ) ...

سوف يقترح علي البعض انتهاج اسلوب آخر وهو بناء عنصر تحكم جديد UserControl و بالتالي ActiveX Control نقوم بجعله يحتوي عللا مربع نص عادي مضافة اليه شفرة التقييد بالارقام فقط ... وهو اقتراح جيد بالفعل غير انه سيكون متعب جداً خاصة اذا اردت ان يحتوي عنصرك الجديد على جميع خصائص مربع النص العادي بالاضافة الى جعله يقبل الارقام فقط ...

ولكن مع الـ Visual Basic. NET الامر يختلف فالوراثه هي الحل .. يعني يمكن تأدية نفس العمل السابق بالشكل التالي :

كود:

Private Sub TextBox1_KeyPress( ... ) Handles TextBox1.KeyPress
If e.KeyChar < "0" Or e.KeyChar > "9" Then
e.Handled = True
End If
End Sub

الشفرة السابقة مماثلة للطريقة الـ VB6 ولكن بصيغة الـ Visual Basic .NET ... ولكنك اذا اردت الاستفادة من الوراثة ... فتعال معي نتسلى قليلاً مع هذه اللغة ...

اولاً يمكنك ان تبني نسخة مماثلة من مربعات النص العادية بواسطة الشفرة التالية :

كود:

Class myTextBox
Inherits System.Windows.Forms.TextBox
End Class

الشفرة السابقة على قصرها فقد انشئت مربع نص جديد يرث جميع خصائصة و اوامرة من الـ TextBox العادي وكل ذلك نظراً للعبارة الجديدة علينا كمبرمجين VB6 وهي Inherits وتعني < يرث > و اما باقي السطر فهو المسار الطبيعي لمربع النص العادي وهو امر ستعتاد عليه قريباً بمجرد كتابتك لرامجك الاولى في الدوت نت ...

بعد ان انشئنا نسخة جديدة خاصة بنا من الـ TextBox العادية تختلف في الاسم فقط myTextBox نحن بحاجة الى جعلها لا تسمح بادخال الارقام و بالتالي يكون شكل اداتنا الجديدة :

كود:

Class myTextBox
Inherits System.Windows.Forms.TextBox
Private Sub myTextBox_KeyPress( ... ) Handles TextBox1.KeyPress
If e.KeyChar < "0" Or e.KeyChar > "9" Then
e.Handled = True
End If
End Sub

End Class

و الان احب ان ابشرك بان العملية قد انتهت ! و اصبح لديك مربع نص جديد يمكنك استخدامه بدلاً عن مربع النص العادي فقط اللصقه حيث تريد و بالاسم الذي تريد ...

وهكذا الحال مع باقي الادوات و الاوامر فاذا اردت تطوير اي شيء من الاشياء الافتراضية في الفيجوال دوت نت فقط قم بوراثتة ثم ضيف او عدل اياً من الاوامر التي تريدها وهذا هو احد اهم مبادىء الـ OOP ..

اما بالنسبة الى الـ ASP فهي ايضاً واحدة من الروائع الجديدة في الدوت نت وهي تقنية خاصة تكتبها باستخدام الـ Visual Basic .NET و قليلاً من الـ HTML لتصميم مواقع ديناميكية رائعة تتعامل مع قواعد البيانات بشكل سهل و مباشر ... وقريباً بإذن الله سبحانه و تعالى انتهي من تصميم موقع بسيط باستخدامها ساجعله اذا اراد الملك الحق موجه لمبرمجي الفيجوال بيسك بكل اصداراته و خاصة الاصدار الجديد DOT NET .... ولكني اعاني الان من تراكم المواد الدراسية نظراً لقرب الامتحانات ( في اليوم السادس من عيد الاضحى المبارك ) اعانني الله واياكم على ما هو خير ...

قد يفهم الكثيرين كلامي السابق على انه رغبة مني في الدخول في منزاعات ومناقشات حول اللغة الافضل و يعلم الله اني لا اريد ذلك ابداً وكم اتمنى ان يتكرم الجميع بالدعاء الصالح لبعضنا البعض فمن يرأى ما ارى فاليتوكل على الله و من لم يرى ما ارى فاليتوكل على الله ... و من كان الله هو حسيبه ما خاب و ما خسر ...

واتمنى ان تكون هذة آخر مشاركاتي في الموضوع ... اتمنى للجميع برمجة سعيدة ...

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

اذا كنت تريد الاجابة على سؤالك فلا تتردد في قرأة المقالة كاملة..

اني ابتليت باربع ما سـلطوا ***** الا لشدة شقوتي و عنائي

ابليس والدنيا ونفسي والهوى **** كيف السبيل وكلهم اعدائي

شكوت الى وكيع سوء حفظي ***** فارشدني الى ترك المعاصي

و اخـبرنـي بـان الـعلم نـور ****** و نور الله لا يهدى لعاصي

#9

لماذا اتعلم لغه جديده طالما ان اللغة التي اتقنها لم تقصر معي في شيئ بل العكس تماما مازالت في تطور رائع.

طالما ان البرامج التي استخدمها موجودة بشكل جاهز و اخص بها برامج الرسوم و المؤثرات و غيرها,لماذا اسعى وراء صنع مثلها او ان اقلدها عن طريق لغة برمجه جديدة او قديمه.

اذا اراد الله بعبد خيراً فقهه في دينه

((إياكم والغلو في الدين فإنما هلك من كان قبلكم بالغلو في الدين )).

( إن هذا الدين يسر ولن يشاد هذا الدين إلا غلبه فأوغلوا فيه برفق )

( هلك المتنطعون ، هلك المتنطعون ، هلك المتنطعون )

<span style='font-size:14pt;line-height:100%'>طريقة سريعة لحفظ كتاب الله العزيز</span>

<span style='font-size:14pt;line-height:100%'>تعرف على عباقرة الكذب</span>

#10

أخي عمرو

اعتقد مصطلح لغة جديدة مش مضبوطة لأن لغة البيسك واحدة ولكن امكانيات اللغة ودعمها من قبل الشركة المنتجة هي التي تختلف من اصدار لإصدار

وحتى لا يؤخذ الموضوع على غير محلة

اعتقد أن الجميع أو الكثرة سيتحولون الى الدوت نت طبعا بدون ما نترك 6 وكأنك تريد تعلة لغة جديدة مثل الدلفي مثلا او بوربيلدر ولكن السؤال ( وهو الغرض الرئيسي من طرح الموضوع )

ما دور المنتدى ( الفيجوال بيسك 6 ) في هذا هل نجلس حتى نفاجأ بحذف المنتدى أو ضمه الى الدوت نت ولا نعد افرادنا من الان خطوة خطوة تحت هذا السقف الذي تعودنا عليه

هذا رأي

والله أعلم

#11

السلام عليكم

اقتباس
لن اترك VB6 واتحول نهائيا الى VB.NET على الاقل قبل سنة فكل ما احتاجه حتى الان يفي الغرض به ب VB6 فلماذا اضيع الوقت من التعلم عليها وانا قد اضعت فعلا الكثير من الوقت على VB6 لتعلمها وقد حان وقت جني ما اضعته من وقت عليها

اين استخدم

استخدمها فعلا في VB6

استخدمها في ASP Server Side

استخدمها في DHTML Client Side

استخدمها في EVB لابرمج لجهاز البوكت بي سي Pocket PC

استخدمها في تطبقات اوفييس عن طريق VBA

فهل يمكن عمل كل هذا بنفس السهولة مع C++ 

:D

gaza3-3.jpg

هذا الموضوع مغلق.

مواضيع مشابهة