لعل الكثير من مبرمجي vb6 سمعوا عن الدوت نت و من لم يسمع فإليك مميزات هذه التقنية الجديدة
يحتوي إطار العمل .net framework على العديد من class التي تساعد المبرمج
وهو نظام معقد و بحر ليس له بداية أو نهاية .
يمكن برمجة الدوت نت بالعديد من اللغات مثل vb.net و delphi .net و c sharp و iron pyton …
اللغات لها نفس القوة فمعايير clr تنطبق على جميع لغات الدوت نت
لأن الكل يترجم إلى msil
تمنحك الدوت نت إستقلالية عن منصات العمل فبإمكانك كتابة برامج ويندوز . برامج pocket pc .خدمات ويندوز . خدمات ويب . مواقع asp.net إلخ ...
كما أن الدوت نت يدعم العربية أحسن من vb6
هذا إضافة إلى الترجمة jit و دعم الدوت نت لمختلف التقنيات المعاصرة
هذا إضافة لعملية compile الأوتوماتيكية حيث يعرض لك vb.net رسائل الخطأ عند كتابة الكود -_-
عموما عليك الإنتقال إلى الدوت نت لأن win32 على حافة الإنقراض .
ستقول لماذا ؟ win32 لن تدعمه معالجات 64bit الجديدة و أظن أن windows vista هو أخر نظام مايكروسوفت يدعم win32
أما عن توقف دعم مايكروسوفت ل vb6 فهذه مشكلة أخرى
هذه مقدمة في عجالة لإستعراض كيفية الإنتقال من vb6 إلى vb.net
- الإختلافات بين vb و vb.net
أول شيء يجب أن تعرفه هو أن vb.net لغة قوية جدا أي أنها تدعم كل مميزات oop و هي مبنية بالكامل عليها لذا إنسى تسلط مبرمجي c++ و سخريتهم من مبرمجي vb
سأعرض بعض أمثلة الأكواد المتبدلة بين vb6 و vb.net إلا أنك يجب أن لا تتوقع مني أن أعرض لك كل التغيرات لأن هذا يحتاج إلى كتاب كامل
أولا لاحظ الكود التالي
Dim str As String str = "Ma chaine de caracteres" str = UCase(str) MsgBox str
الكود ب vb6 لاحظ شبيهه بالدوت نت
Dim str As String str = "Ma chaine de caracteres" str = str.ToUpper() MessageBox.Show(str)
لاحظ أنك عندما تكتب str. تظهر لك قائمة intelissence مما يغنيك عن دراسة كافة طرق الفئة string

المثال الثاني .: الدوال
لاحظ الكود ب vb6
Private Function x(str As String) As String MaFonction = LCase(str) End Sub
لقد ظهرت كلمة محجوزة جديدة هي return
ترجع هذه الكلمة القيم المحصل عليها بالدالة
لاحظ الكود
Private Function x(ByVal str As String) As String Return str.ToLower() End Function
ملحوظة : برامترات الدلة في vb6 كانت ترسل بالمرجع أما في الدوت نت فهي ترسل بالقيمة
يمكنك إرسالها بالمرجع عبر الكلمة المحجوزة byref
لاحظ الإختلافات عن vb6 في الكود الأولي
لاحظ الكود الأولي ب vb.net
Public Class Form1 Inherits System.Windows.Forms.Form Public Sub New() MyBase() InitializeComponent() End Sub Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub Private components As System.ComponentModel.IContainer<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(292, 266) Me.Name = "Form1" Me.Text = "Form1" End Sub End Class
بينما في vb6
Option Explicit
أكبر الإختلافات هي في oop
لاحظ الكود التالي ب vb6
Option Explicit Public tata As String Private m_toto As Integer إستعمال الخصائص' Friend Property Let toto(ByVal vData As Integer) m_toto = vData End Property Friend Property Get toto() As Integer toto = m_toto End Property إستعمال الدوال ' Public Function maFonction() As String Dim str As String ... maFonction = str End Function إستعمال الإجرائات ' Public Sub MaSub() ... End Sub
لا حظ الكود بالدوت نت
الوراثة' Inherits classbase Public tata As String Private m_toto As Integer مشيد' Public Sub New() ' ... End Sub مهدم' Public Sub Finalize() ' ... End Sub إستعمال الخصائص' Friend Property toto As Integer Get Return m_toto End Get Set(ByVal vData As Integer) m_toto = vData End Set End Property إستعمال الدوال ' Public Function maFonction() As String Dim str As String '... Return str End Function إستعمال الإجرائات ' Public Sub MaSub() '... End Sub End Class
كما تلا حظ vb.net لغة قوية في oop وليست ك vb6
يوجد إختلاف أخر عن vb6 حيث يبدأ ترقيم في الجداول ب 0 سواء أردت أم كرهت حيث لم يعد بإمكانك تحديد البداية
هذه هي إختلافات هذا اليوم و سأعرض إختلافات أخرى إن شاء الله في وقت لاحق
أنتظر ردودكم
;)
