التغييرات الخمسة الأولى من VB 6 إلى VB.NET

click fraud protection

01

من 08

التغييرات الخمسة الأولى بين VB 6 و VB.NET

أهم خمسة تغييرات

كان Visual Basic 1.0 زلزالًا كبيرًا طوال البرمجة. قبل VB1 ، كان عليك استخدام C أو C ++ أو بعض بيئة التطوير الرهيبة الأخرى لإنشاء تطبيقات Windows. أمضى المبرمجون أسابيع حرفيا فقط في رسم النوافذ على الشاشات التي تحتوي على تعليمات برمجية صعبة التفصيل وصعبة التصحيح. (الشيء نفسه الذي يمكنك القيام به عن طريق سحب نموذج من شريط الأدوات في بضع ثوانٍ). كان VB1 ناجحًا وبدأ فورًا في استخدامه عدد من المبرمجين.

ولكن لتحقيق السحر ، قدمت Microsoft بعض التنازلات الرئيسية في الهندسة المعمارية. على وجه الخصوص ، نظرًا لأن VB1 أنشأ النماذج وعناصر التحكم ، لم يسمحوا للمبرمج بالوصول إلى التعليمات البرمجية التي قامت بذلك. إما أن تسمح لـ VB بإنشاء كل شيء ، أو أنك تستخدم C ++.

حافظ VB 2 إلى 6 على نفس البنية. أجرت Microsoft بعض التحديثات الذكية جدًا التي أعطت المبرمجين المزيد من التحكم ، ولكن في التحليل النهائي لم يتمكن المبرمجون من دمج شفرتهم مع كود VB. كان صندوقًا أسود - وليس بطريقة OOP جيدة أيضًا. طريقة أخرى لقول هذا هي أن المبرمج لم يكن لديه حق الوصول إلى "كائنات" VB الداخلية وطريقة أخرى لقول ذلك كان أن VB6 لم يكن بالكامل "موجهًا نحو الكائن".

instagram viewer

02

من 08

VB 6 - الوقوع وراء منحنى التكنولوجيا

في هذه الأثناء ، بدأت Java و Python والعديد من لغات البرمجة الأخرى التي كانت موجهة للكائنات في الظهور. تم تجاوز Visual Basic - وقت كبير! هذا موقف لا تتحمله Microsoft... وقرروا حل المشكلة نهائياً. الحل هو .NET.

ولكن للقيام بالأشياء التي كان يتعين على .NET القيام بها ، قررت Microsoft أن عليهم "كسر التوافق". أي أن برامج Visual Basic كانت (مع استثناءات طفيفة جدًا) "متوافقة للأعلى" من VB1 حتى VB6. برنامج مكتوب في هذا الإصدار الأول من VB سيستمر في الترجمة والتشغيل في الإصدار التالي. ولكن مع VB.NET ، وجدت Microsoft أنها لا تستطيع جعل اللغة OOP بالكامل والحفاظ على التوافق بشكل تصاعدي.

بمجرد اتخاذ هذا القرار الأساسي ، فتحت بوابات الفيضانات على مدى عشر سنوات من التغييرات المتراكمة في "قائمة الرغبات" ودخلت جميعها في VB.NET الجديد. كما يقولون في بريطانيا ، "في مقابل بنس واحد ، في مقابل جنيه."

دون مزيد من التأخير ، إليك قائمتي الشخصية لأهم التغييرات الخمسة من VB6 إلى VB.NET بترتيب عكسي.

Wellllll... تأخير واحد فقط. نظرًا لأننا نتغير من VB6 ، حيث تم الإعلان عن المصفوفة باسم Dim myArray (5) لديها 6 العناصر ، لدينا ستة منها. انها مناسبة فقط ...

(لفة طبل من فضلك ...)

03

من 08

الجائزة (5) - التغييرات في بناء الجملة مثل C

"جائزة (5)" لدينا المركز السادس تمنح الجائزة إلى اختيار C C: التغييرات في بناء الجملة مثل C!

يمكنك الآن ترميز a + = 1 بدلاً من a = a + 1 ، مما يوفر THREE WHOLE KEYSTROKES!

مبرمجو العالم ، ابتهجوا! تم رفع VB إلى مستوى C ، وسيقترب جيل جديد تمامًا يحاول تعلم VB قليلاً من الارتباك الجماعي الذي يواجه طلاب C ++.

لكن انتظر! هناك المزيد!

يتميز VB.NET الآن بـ "منطق الدائرة القصيرة" التي أدخلت أخطاء دقيقة في كود C ++ لسنوات لتوفير نانو ثانية من وقت المعالج. يقوم منطق الدائرة القصيرة فقط بتقييم الشروط المتعددة في بيان منطقي إذا لزم الأمر. فمثلا:

Dim R As Boolean
R = Function1 () و Function2 ()

في VB6 ، يتم تقييم كلتا الوظيفتين سواء كانوا بحاجة إليها أم لا. مع VB.NET ، إذا كان Function1 () خطأ ، فسيتم تجاهل الدالة2 () حيث لا يمكن أن تكون "R" True. ولكن ، ماذا لو تم تغيير متغير عام في Function2 () - فقط بالصدفة (سيقول المبرمجون C ++ ، "من خلال البرمجة السيئة ".) لماذا ينتج عن التعليمات البرمجية إجابة خاطئة في بعض الأحيان عندما يتم ترجمتها إلى VB.NET؟ قد يكون هذا!

إلى عن على محاولةبجد ، سوف VB.NET قبض على القليل من الحظ و أخيرا الحصول على اعتراف بمعالجة الخطأ "استثنائية".

كان لـ VB6 آخر معطل GoTo: "On Error GoTo". حتى أنني يجب أن أعترف بأن معالجة الاستثناء المهيكلة على غرار C ++ "Try-Catch-وأخيرا" هي تحسن كبير ، وليس مجرد نصف تحسن كبير.

ماذا تقول "On Error GoTo" لا يزال في VB.NET؟ حسنا... نحاول ألا نتحدث عن ذلك كثيرًا.

04

من 08

المركز الخامس - تغييرات القيادة المتنوعة

المركز الخامس الاختيار جائزة مجموعة: تغييرات القيادة المتنوعة! يجب عليهم مشاركة هذه الجائزة وهناك غازيليون منهم. توفر Microsoft مدخرات لمدة عشر سنوات وقد توقفوا حقًا.

لم يعد VB.NET يدعم وظائف VarPtr و ObjPtr و StrPtr التي استردت عنوان الذاكرة للمتغيرات. ولا يدعم VB6 LSet الذي تم استخدامه لتحويل نوع مستخدم محدد إلى آخر. (يجب عدم الخلط بينه وبين VB6 LSet الذي يفعل شيئًا مختلفًا تمامًا - انظر أدناه.)

نقدم أيضًا عرضًا رائعًا لـ Let و Is Missing و DefBool و DefByte و DefLng و DefCur و DefSng و DefDbl و DefDec و DefDate و DefStr و DefObj و DefVar و (المفضلة الشخصية!) GoSub.

لقد تحولت الدائرة إلى GDI + DrawEllipse. وينطبق الشيء نفسه على Line to DrawLine. في الحساب لدينا الآن Atan بدلاً من Atn ، يدخل Sign لـ Sgn ، و Sqrt يناسب اللعبة الكبيرة بدلاً من Sqr.

في معالجة السلسلة ، على الرغم من أنها لا تزال متاحة إذا كنت تشير إلى توافق Microsoft مساحة الاسم ، لدينا PadRight لـ LSB الخاص بـ VB6 (مرة أخرى ، مختلف تمامًا عن LSB الخاص بـ VB6 ، بالطبع) و PadLeft ل RSet. (هناك ضربات المفاتيح الثلاثة التي حفظناها باستخدام "+ ="!)

وبالطبع ، بما أننا OOP الآن ، فلا تقلق إذا لم يتم استيفاء Property Set و Property Let و Property Get في VB.NET ، فأنت تراهن!

أخيرا ، تصحيح. تصبح الطباعة إما Debug. اكتب أو تصحيح. اكتب خط. المهووسون فقط يطبعون كل شيء على أي حال.

هذا لا يلمس حتى جميع الأوامر الجديدة في VB.NET ، لكن علينا أن نوقف هذا الهراء في مكان ما.

05

من 08

المركز الرابع - تغييرات في استدعاءات الإجراءات

في المركز الرابع، نملك التغييرات على استدعاءات الإجراءات!

هذه هي جائزة "الخير والنقاء والفضيلة السليمة" وتمثل الكثير من الحملات الصعبة التي يقوم بها فصيل "لا يوجد كود مهمل".

في VB6 ، إذا كان متغير معلمة الإجراء نوعًا جوهريًا ، فإنه ByRef ، إلا إذا قمت بتشفيره ByVal بشكل صريح ، ولكن إذا لم يتم ترميز ByRef أو ByVal ولم يكن متغيرًا جوهريًا ، ByVal... تلقيت ذلك؟

في VB.NET ، يكون ByVal ما لم يتم ترميز ByRef.

بالمناسبة ، يمنع الافتراضي ByVal VB.NET التغييرات في متغيرات المعلمات في الإجراءات من أن يتم نشرها عن غير قصد إلى رمز الاستدعاء - وهو جزء رئيسي من البرمجة OOP الجيدة.

تقوم Microsoft أيضًا "بزيادة التحميل" على VB.NET مع تغيير في متطلبات الأقواس في استدعاءات الإجراءات.

في VB6 ، تكون الأقواس مطلوبة حول الوسيطات عند إجراء استدعاءات وظيفية ، ولكن ليس عند استدعاء روتين فرعي عند عدم استخدام عبارة Call ولكنها مطلوبة عند استخدام عبارة Call.

في VB.NET ، تكون الأقواس مطلوبة دائمًا حول قائمة وسيطات غير فارغة.

06

من 08

المركز الثالث - المصفوفات قائمة على 0 بدلاً من 1

الجائزة البرونزية - المركز الثالث، يذهب إلى المصفوفات تعتمد على 0 بدلاً من 1!

إنه تغيير واحد فقط في بناء الجملة ، ولكن هذا التغيير يحصل على حالة "ميدالية المنصة" لأنه تم التصويت عليه ، "من المرجح أن يفسد منطق برنامجك". تذكر ، المركز الثالث يكون "جائزة (2)" في قائمتنا. إذا كان لديك عدادات ومصفوفات في برنامج VB6 الخاص بك (وكم عدد لا يوجد) ، فإن هذا سوف يخبرك.

لمدة عشر سنوات ، كان الناس يتساءلون ، "ما الذي كانت تدخنه مايكروسوفت عندما فعلوها بهذه الطريقة؟" ولمدة عشر سنوات ، عمل المبرمجون نوعًا ما تجاهل عالميًا حقيقة وجود عنصر myArray (0) الذي احتل مساحة للتو ولم يعتاد عليه اى شى... باستثناء أولئك المبرمجين الذين استخدموا ذلك وكانت برامجهم تبدو ، أعني ، مجرد "غريب".

لأني = 1 إلى 5
MyArray (I - 1) = أيا كان
التالى

انا اعني، هل حقا! ...

07

من 08

المركز الثاني - نوع البيانات المتغير

الميدالية الفضية 2nd مكان يذهب لتكريم صديق قديم تم إسقاطه في دلو بت البرمجة مع مرور VB6! أنا لا أتكلم سوى نوع البيانات المتغير.

ربما لا توجد ميزة واحدة أخرى من Visual Basic "notNet" تمثل فلسفة "سريع ورخيص ومفتوح". هذه الصورة تلاحق VB حتى مقدمة VB.NET. أنا كبير بما يكفي لتذكر تقديم Visual Basic 3.0 من قبل Microsoft: "Oh Wow! انظر هنا! مع نوع البيانات المتغير الجديد المحسن ، لن تضطر إلى إعلان المتغيرات أو عدم تحديدها. يمكنك فقط التفكير في الأمر وتشفيره.

غيّرت Microsoft لحنها بسرعة كبيرة وأوصت بإعلان المتغيرات باستخدام نوع بيانات معين على الفور تقريبًا ، مما يترك الكثير منا يتساءل ، "إذا لم تتمكن من استخدام المتغيرات ، لماذا هل لديك؟ "

ولكن بينما نحن بصدد موضوع أنواع البيانات ، يجب أن أذكر أن الكثير من أنواع البيانات قد تغيرت بالإضافة إلى إسقاط البديل في الأسمنت الرطب. هناك نوع بيانات جديد Char ونوع بيانات طويل 64 بت. العلامة العشرية مختلفة. Short و Integer ليسا الطول نفسه بعد الآن.

وهناك نوع بيانات "كائن" جديد يمكن أن يكون اى شى. هل سمعت أحدهم يقول "ابن البديل"?

08

من 08

المركز الأول - تم توجيه VB.NET أخيرًا كائني التوجه

أخيرا! الميدالية الذهبية ، المركز الأول، أعلى جائزة يمكنني منحها ...

الداه تا!

VB.NET أخيرًا هو كائن موجه بالكامل!

الآن عندما تذهب إلى الشاطئ ، لن يبرمج مبرمجو C ++ الرمال في وجهك ويسرقون (صديقتك / صديقك - اختر واحدة). ويمكنك ما يزال ترميز ميزان تجريبي عام لـ Ledger Trial أثناء محاولتهم معرفة أي ملفات رأس يتم تضمينها.

لأول مرة ، يمكنك البرمجة على مقربة من الشريحة بقدر ما تحتاج إليه والوصول إلى جميع الأجزاء الداخلية للنظام التي يرغبها قلبك بدون الحاجة إلى اللجوء إلى تلك المكالمات السيئة Win32 API. لقد حصلت على الميراث ، الحمل الزائد للوظائف ، تعدد المهام غير المتزامن ، جمع القمامة ، و كل شىء هو كائن. الحياة يمكن أن تحصل على أي أفضل؟

هل سمعت أن شخصًا ما يقول أن C ++ لديه العديد من الميراث ولا يزال .NET غير موجود؟

حرق الزنديق!

instagram story viewer