منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
ملاحظات هامة عند ترقية مشاريع VB6 إلى VB .net 2008 - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم مقالات VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=184)
+--- الموضوع : ملاحظات هامة عند ترقية مشاريع VB6 إلى VB .net 2008 (/showthread.php?tid=5119)



ملاحظات هامة عند ترقية مشاريع VB6 إلى VB .net 2008 - RaggiTech - 05-10-12

كاتب الموضوع : samerselo

على الرغم من أن عملية ترقية مشاريع VB6 إلى إصدار 2008 تتم بمعظمها بصورة آلية إلا أنه هناك بعض النقاط الواجب أخذها بعين الاعتبار للتحضير لعملية الترقية. وبمراعاة الملاحظات التي سترد هنا يمكنك تقليل أو إلغاء العديد من التعديلات التي ستضطر لعملها بعد انتهاء معالج الترقية وفي معظم الحالات تكون هذه التوصيات عبارة عن ممارسات برمجة جيدة وسيفيدك معرفة الطرائق والأغراض التي لا يوجد لها مكافئات في عملية الترقية. وبشكل عام فإن لم تتم عملية ترجمة وتشغيل المشروع بصورة جيدة ضمن بيئة VB6 فلا تتوقع أن تتم عملية الترقية بنجاح لهذا يقترح تنصيب VB6 على الجهاز الذي ستتم عليه عملية الترقية واختباره هناك أولا. إضافة إلى أن معالج الترقية إلى 2008 يقوم بالترقية من الإصدار 6 فقط فإن كانت لديك مشاريع على الإصدارات من 1 إلى 5 فيجب فتحها ضمن بيئة تطوير VB6 وترقيتها إلى الإصدار السادس قبل البدء بعملية الترقية للإصدار 2008 ولا تنس استخدام الخيار upgrade Microsoft ActiveX controls عند ترقية مشاريع الإصدارات القديمة للإصدار السادس.
يمتلك الإصدار 2008 رزمة من النوافذ وتحكماتها متوافقة بشكل كبير مع تلك الموجودة في الإصدار السادس ومع ذلك توجد بعض الاختلافات التي سنوردها:
• الإصدار 2008 لا يدعم التحكم Ole Container لذا يجب عليك تجنب استخدامه في المشاريع التي تنوي ترقيتها
• لا يوجد Shape Control في الإصدار 2008 حيث سيتم ترقية المربعات والمستطيلات إلى تحكمات Label بينما الدوائر والأشكال الاهليلجية لا يمكن ترقيتها لذا يجب عليك تجنب استخدامها
• لا يوجد Line Control في الإصدار 2008 حيث سيتم ترقية الخطوط الأفقية والشاقولية إلى تحكمات Label بينما الخطوط المائلة لن يتم ترقيتها لذا يجب عليك عدم استخدامها
• يمتلك الإصدار 2008 أوامر رسومية جديدة تستبدل الطرائق التالية لـ Form وهي Circle و Cls و PSet و Line و Point وبسبب أن الـ Object Module الجديدة مختلفة عن القديمة لذا لا يمكن ترقية هذه الطرائق
• من أجل التحكم Timer عند ضبط الخاصية Interval إلى الصفر فإن التحكم لا يتوقف عمله بل سيتم إعادة ضبط قيمة الخاصية إلى 1 واحد ولإيقاف عمل التحكم Timer يجب عليك ضبط الخاصية Enabled إلى False عوضا عن ضبط قيمة Interval إلى الصفر
• يمتلك الإصدار 2008 تحكمان خاصان بالقوائم هما MenuStrip و ContextMenuStrip بينما في الإصدار السادس هناك تحكم قوائم واحد يمكن استخدامه كـ Menu أو ContextMenu لذا سيتم ترقية جميع تحكمات القوائم إلى تحكم MenuStrip يمتلك عدة MenuItems من أجل كل تحكم قائمة وعند ترقية ContextMenu يجب عليك إعادة إنشائها وحذف التحكمات MenuStrip الزائدة
• لا يمتلك الإصدار 2008 دعما لـ Dynamic Data Exchange DDE
• على الرغم من أن الإصدار 2008 يمتلك دعما لوظيفة Drag And Drop إلا أنها تختلف بشكل كبير عن تلك الموجودة في الإصدار السادس لذا فإن وظائف السحب والإفلات لا يمكن ترقيتها
• يمتلك الإصدار 2008 دعما محسنا للغرض Clipboard من خلال My.Computer.Clipboard حيث يقدم دعما لوظائف وصيغ أكثر من تلك الموجودة في الإصدار السادس وبسبب الاختلافات الكبيرة فلا يمكن القيام بعملية ترقية الكود المستخدم لـ Clipboard بصورة آلية
• لا يدعم الإصدار 2008 الخاصية Name للنموذج والتحكمات في زمن التشغيل لذا يجب عليك الدوران من خلال Controls collection عند بحثك عن تحكم يمتلك اسما معينا. وهذه الوظيفة متوفرة في .net Framework من خلال الفئات System.Reflection
وفيما يتعلق بقواعد البيانات فإن الإصدار 2008 يمتلك نسخة محسنة من ADO هي ADO .net محسنة من أجل البيانات في التطبيقات الموزعة. وعلى الرغم من أنه يمكنك استخدام RDO و ADO في الإصدار 2008 مع بعض التعديلات البسيطة إلا أنه لا يدعم أدوات الربط مع قواعد البيانات الخاصة بـ DAO و RDO وأيضا Data Controls و لا حتى RDO User Connection. لذا ينصح أنه إذا كان برنامجك يستخدم تحكمات DAO و RDO بإما تركهم في الإصدار السادس أو ترقيتهم إلى تحكمات ADO قبل القيام بعملية الترقية للإصدار 2008 بما أن Windows Forms يدعم تحكمات ADO