الاختلافات بين vb و vb.net

achraf.mouni

  • Hero Member
  • *****
    • مشاركة: 2439
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
في: آب 21, 2009, 10:15:57 صباحاً
السلام عليكم

لعل الكثير من مبرمجي 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 إلا أنك يجب أن لا تتوقع مني أن أعرض لك كل التغيرات لأن هذا يحتاج إلى كتاب كامل
 
أولا لاحظ الكود التالي:
 
كود PHP:
   Dim str As String 
str 
"Ma chaine de caracteres" 
str UCase(str
MsgBox str  
   
الكود ب vb6 لاحظ شبيهه بالدوت نت
 
كود PHP:
   Dim str As String 
str 
"Ma chaine de caracteres" 
str str.ToUpper() 
MessageBox.Show(str  
   
لاحظ أنك عندما تكتب str. تظهر لك قائمة intelissence مما يغنيك عن دراسة كافة طرق الفئة string
 
المثال الثاني .: الدوال
لاحظ الكود ب vb6
 
كود PHP:
  Private Function x(str As String) As String 
MaFonction 
LCase(str
End Sub  
   
لقد ظهرت كلمة محجوزة جديدة هي return
ترجع هذه الكلمة القيم المحصل عليها بالدالة
لاحظ الكود
 
كود PHP:
  Private Function x(ByVal str As String) As String 
Return str.ToLower() 
End Function  

   
ملحوظة : برامترات الدالة في vb6 كانت ترسل بالمرجع أما في الدوت نت فهي ترسل بالقيمة
يمكنك إرسالها بالمرجع عبر الكلمة المحجوزة byref
لاحظ الإختلافات عن vb6 في الكود الأول
لاحظ الكود الأول ب vb.net
 
كود PHP:
  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 NothingThen 
         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(13
Me.ClientSize = New System.Drawing.Size(292 266
Me.Name "Form1" 
Me.Text "Form1" 
End Sub 
 
End 
Class  

   
بينما في vb6
 
كود PHP:
   Option Explicit      
أكبر الإختلافات هي في oop
 
لاحظ الكود التالي ب vb6
 
كود PHP:
  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 
   
لا حظ الكود بالدوت نت
 
كود PHP:
   الوراثة 
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 سواء أردت أم كرهت حيث لم يعد بإمكانك تحديد البداية.


hiba20

  • Newbie
  • *
    • مشاركة: 48
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #1 في: آب 21, 2009, 08:55:29 مسائاً
السلام عليكم ورحمة الله تعالى و بركاته
بارك الله فيك اخي  و كل عام وانت بخير


mrkarimos08

  • Hero Member
  • *****
    • مشاركة: 1826
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #2 في: آب 23, 2009, 03:17:25 مسائاً
بارك الله فيك على المجهود