Makale Özeti

Visual Basic 6.0dan Visual Basic.NET’e Geçiş makalesinin devamıdır.

Makale

Bahsettiğimiz Upgrade Wizard’ı kullanarak bir çevirim işlemi yapalım. Öncelikle basit bir Visual Basic 6 uygulaması yapalım. Bu uygulama veri tabanından değer okusun ve tablodaki ilk kaydı textbox’lara yerleştirsin. Kullanacağımız tablo yapısı;

Tablo Adı = Doviz

Alan Adı Değeri
Doviz_ID Int
Doviz_Adi VarChar
Visual Basic 6’da yapmış olduğumuz form dizaynı;



Butona basıldığı anda textbox’lara ilgili değerler dolacaktır. Döviz ID String Değeri dediğimiz alan ise Doviz_ID alanını String bir değişkene atayıp göstermek için kullanacağız. Bilgi Göster butonun click’ine yazağımız kod;
Private Sub btnBilgiGoster_Click()
    Dim conn As ADODB.Connection
    Set conn = New ADODB.Connection
    conn.CursorLocation = 3
    conn.Open "finans", "sa", ""

    Dim sSqlDovizList As String
    Dim rsDovizList As ADODB.Recordset
    Set rsDovizList = New ADODB.Recordset

    sSqlDovizList = "Select Doviz_ID, Doviz_Adi From Doviz"
    Set rsDovizList = conn.Execute(sSqlDovizList)
    If Not rsDovizList.EOF Then
        Dim iDoviz_ID As Integer
        Dim sDoviz_Adi As String
        Dim sDoviz_IDDegeri As String
        iDoviz_ID = rsDovizList("Doviz_ID")
        sDoviz_Adi = rsDovizList("Doviz_Adi")
        sDoviz_IDDegeri = rsDovizList("Doviz_ID")
        txtDoviz_ID.Text = iDoviz_ID
        txtDoviz_Adi.Text = sDoviz_Adi
        txtDoviz_IDDegeri.Text = sDoviz_IDDegeri
    End If

    rsDovizList.Close
    Set rsDovizList = Nothing

    conn.Close
    Set conn = Nothing
End Sub

Şimdi ise Visual Basic.NET ortamına geçip kodumuzu Visual Basic.NET’ upgrade edelim. Visual Studio.NET ortamında File menüsünden Open Project’i seçelim. Ardından biraz önce yazmış olduğumuz Visual Basic 6 projesini seçelim. Open butonuna bastığınız anda Upgrade Wizard otomatik olarak açılacaktır.



Burada Next dediğiniz anda ilk seçenek olarak projenizin tipini soracaktır. Yazdığımız uygulama bir exe dir.



Zaten kendi otomatik olarak algılayıp DLL seçeneğini seçilemez halde getirir. Next’e bastıkdan sonra Visual Basic.NET projesini nereye oluşturacağımı soracaktır.



Gerekli path’i verdikten sonra Upgrade Wizard çalışmaya başlar. İşlemi gerçekleştirdikten sonra Task List’de yapacaklarımızı gösterecektir.



Visual Basic.NET ortamında forma baktığımız zaman Visual Basic 6’daki formu aynen aldığını göreceksiniz.



Visual Basic 6 projemizde ADO’yu referans olarak gösterdiğimiz için bizden burada da tanımlamamızı istiyor. Project menüsünden Add Reference’ı seçip, COM tabından ADO’yu referans olarak göstermeliyiz. Zaten bunu yapmamızı Task List’de de belirtmişti. Kodu incelediğimizde bize Upgrade sırasında yaptıklarını ve yapamadıklarını belirttiğini göreceksiniz. Ayrıca Visual Basic.NET projesini oluşturduğunuz klasörde _UpgradeReport.htm olarak bir dosya ürettiğini görüyoruz. Bu dosyada upgrade sırasında olan işlemleri ve yapmamız gerekenleri bize rapor halinde sunmaktadır.



Click here for help with troubleshooting upgraded projects linkine tıkladığınız zaman ise yapmanız gerekenler için ayrıntılı bir yardım sayfasına yönlendirecektir.
Visual Basic.NET ortamında kodu nasıl bir çevirim yaptığını görelim;
Private Sub btnBilgiGoster_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles btnBilgiGoster.Click
    Dim ADODB As Object
    Dim conn As ADODB.Connection
    conn = New ADODB.Connection
    UPGRADE_WARNING: Couldnt resolve default property of object conn.CursorLocation. Click for more: ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1037"
    conn.CursorLocation = 3
    UPGRADE_WARNING: Couldnt resolve default property of object conn.Open. Click for more: ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1037"
    conn.Open("finans", "sa", "")

    Dim sSqlDovizList As String
    UPGRADE_ISSUE: ADODB.Recordset object was not upgraded. Click for more: ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup2068"
    Dim rsDovizList As ADODB.Recordset
    rsDovizList = New ADODB.Recordset

    sSqlDovizList = "Select Doviz_ID, Doviz_Adi From Doviz"
UPGRADE_WARNING: Couldnt resolve default property of object conn.Execute. Click for more: ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1037"
    rsDovizList = conn.Execute(sSqlDovizList)
UPGRADE_WARNING: Couldnt resolve default property of object rsDovizList.EOF. Click for more: ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1037"
    Dim iDoviz_ID As Short
    Dim sDoviz_Adi As String
    Dim sDoviz_IDDegeri As String
    If Not rsDovizList.EOF Then
        UPGRADE_WARNING: Couldnt resolve default property of object rsDovizList(). Click for more: ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1037"
        iDoviz_ID = rsDovizList("Doviz_ID")
        UPGRADE_WARNING: Couldnt resolve default property of object rsDovizList(). Click for more: ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1037"
        sDoviz_Adi = rsDovizList("Doviz_Adi")
        UPGRADE_WARNING: Couldnt resolve default property of object rsDovizList(). Click for more: ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1037"
        sDoviz_IDDegeri = sDovizList("Doviz_ID")
        txtDoviz_ID.Text = CStr(iDoviz_ID)
        txtDoviz_Adi.Text = sDoviz_Adi
        txtDoviz_IDDegeri.Text = sDoviz_IDDegeri     End If
    UPGRADE_WARNING: Couldnt resolve default property of object rsDovizList.Close. Click for more: ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1037"
    rsDovizList.Close()
    UPGRADE_NOTE: Object rsDovizList may not be destroyed until it is garbage collected. Click for more: ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1029"
    rsDovizList = Nothing
    UPGRADE_WARNING: Couldnt resolve default property of object conn.Close. Click for more: ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1037"
    conn.Close()
    UPGRADE_NOTE: Object conn may not be destroyed until it is garbage collected. Click for more: ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1029"
    conn = Nothing
    End Sub

Gördüğünüz gibi çeviremediği yerleri bize belirtiyor ve notlar düşüyor. Ayrıca bilgi öğrenebilmemiz için yardım dosyasına da link veriyor. Örneğin Visual Basic 6 kodumuzda iDoviz_ID değişkenimizi Integer olarak tanımlamıştık. Ancak kendisi Short tipinde değiştiriyor.
Aslında Upgrade Wizard sayesinde Visual Basic 6’dan Visual Basic.NET ortamına geçerken olan değişiklikleri de görüp kolayca adapte olabiliriz.
Yazı dizisi devam edecektir. Hep birlikte artık Visual Basic 6’yı bırakıp Visual Basic.NET’e geçeceğiz.

Yeliz Korkmaz
yelizkorkmaz@turk.net