Web Formları ve Windows Formları geliştirmek için, .NET de bir çok programlama dili kullanabiliriz. Bunlardan VB.NET en yaygın olarak kullanılan dildir.
.NET ile birlikte, ASP.NET ile geliştirilen web uygulamaları artık herhangi bir scripting dili degil, dogrudan programlama dilinin kendisidir. Dolayısı ile etkin bir web uygulaması geliştirmek için ASP.NET''i iyi kullanabilmemizin yanısıra .NET'te tanımlı herhangi bir programlama diline hakim olmamız gereklidir. Yukarıda da belirttigim gibi bu programlama dillerinden en yaygın olarak kullanılanı VB.NET dir.
Halihazırda VB kullanan programcılar için VB.NET geçiş yapmak çok zor degildir. Çünkü bildirimler ve program geliştirme mantıgı VB''ye çok benzemektedir. Yani geriye uyumluluk söz konusudur. Ancak VB.NET ile birlikte bildirim veya ifadeler açısından oldukça farklı degişimler de söz konusu olmuştur.
Bu makalede bu VB6 ve VB.NET ifadeleri arasındaki temel degişim ve farklılıkları anlatmaya çalışacagım. VB ve VB.NET in çalışma alt yapısı tamamıyla farklıdır. Bu ayrı bir yazı konusudur. Ancak uygulama geliştiricler olarak bizi en çok ilgilendiren kısmı, uygulamayı geliştirirken uymamız gereken yazım kurallarıdır.
Şimdi, lafı uzatmadan VB6 ve VB.NET deki temel ifade degişikliklerine ve farklılıklarına bir bakalım.
Degişken Deklarasyonu degişikligi:
Öncelikle VB.NET de degişkenlerin deklare edilmesi zorunludur. Deklare edilmemiş herhangi bir degişkeni kullanmamız mümkün degildir. VB6 da bir degişken tanımlaması ve deger ataması minimum iki farklı satır gerektiriyordu:
Dim a As Integer
a=5
Ancak VB.NET de tek satırda hem degişken tanımlaması hem de deger ataması yapmak mümkündür:
Dim a As Integer = 5
Diger dikkate deger bir degişiklikte ise, VB.NET de aynı satır da birden fazla degişken tipini tanımlamak mümkün olmasıdır:
Dim a, b As Integer
Buradaki a ve b degişkenlerin her ikisininde degişken tipi, VB.NET de, Integer olarak kabul görür. Oysa VB6 da b Integer olabilir fakat a variant da olabilir.
Yeni Atama biçimleri
VB.NET degişken degeri atamalarında yeni biçimleri veya ifadeleri destekler. Örnegin VB6 ve VB.NET de bir degişken degerini şöyle atayabiliriz: a = a + 7
Farklı olarak VB.NET de bunu kısa bir yoldan yapmamız mümkün:
a +=7
Yukarıdaki iki ifade de VB.NET için aynı işi görür. Aynı şekilde şu ifadeleride kullanmak mümkün:
a = a / 7 yerine
a /= 7
a = a - 7 yerine
a -= 7
a = a * 7 yerine
a *= 7
a = a \ 7 yerine
a \= 7
a = a ^ 7 yerine
a ^= 7
Bu ifadeler C/C++ dilindeki ifadelere benziyor. Ancak ++ operatörünü VB.NET desteklenmez.
Dizi Degişkenler:
Diziler programlamada en çok hata yapılan konulardan biridir. Kafa karıştırıcı etkenlerin başında dizi boyutu ile eleman sayılarının farklılaşması vardır.
VB6''da dizi indeksi sıfırdan başlıyabilecegi gibi herhangi bir sayıdanda başlar. Ayrıca dizinin son elemanı, dizi indeksinde belirtilen degere eşittir, dolayısı ile eleman sayısı, dizi boyutunda belirtilenden, her zaman bir fazladır. Eger alt limit sıfırdan başlamamışsa dahada degişiktir:
Dim a(2) Integer
a(0)=1
a(1)=1
a(2)=1
Yukarıdaki örnekte dizi boyutu 2 olarak tanımlanmıştır, ancak herhangi bir şey belirtilmediginden alt indeks sıfır degeri alır. Buna göre dizideki son elemenın indeks degeri 2, fakat dizideki deger sayısı yani eleman sayısı 3 tür. Oysa VB.NET dizi tanımları basitleştirilmiş ve kesin kurallar konmuştur. Bunlardan bir tanesi; dizi indeksleri daima sıfır (0) ile başlar. Dizideki eleman sayısı dizi boyutunda belirtilen degerle aynıdır. Buna göre dizinin üst sınır indeksi daima belirtilen boyuttan bir eksik deger alır. Yukarıdaki örnegimize dönecek olursak VB.NET bu dizi tanımlaması aşagıdaki gibi yapılır:
Dim a(2) Integer
a(0)=1
a(1)=2
Yani dizi tanımlamasında parantez içindeki deger dizinin boyutunu belirtir ve dizi içindeki degişken sayısı bu boyuta eşittir. Ancak indeks degerleri, dizi sıfırdan başladıgı için bunun bir eksigidir.
VB6 da ;
Dim a (1 To 3) As Integer
şeklinde dizinin alt indeksinin sıfırdan farklı olabilecegini belirten bir ifade kullanabilirdik. Böylece dizi sıfırda degil 1 den başlardı. VB.NET böyle bir ifade kullanımı kesinlikle yoktur. Diziler her zaman sıfır (0) dan başlar.
VB.NET de tek bir satırda dizi degişken degeri atamak mümkündür, ancak bunun da temel bir yazım ifadesi vardır:
Dim renkler(3) As String = {"mavi" , "kırmızı", "sarı"}
Burada degerleri {} belirteçleri içinde kullanmalıyız. Böyle bir kullanımda dizinin boyutunu kullanma zorunlulugu yoktur:
Dim renkler() As String = {"mavi" , "kırmızı", "sarı"}
Belirtilmemesine ragmen, alınan degerlerden dolayı, dizi boyutu 3 tür ve alt sınır indeksi, yukarıda da belirttigim gibi daima sıfırdır. Bu örnege göre "sarı" degerini veren dizi ifadesi renkler(2) dir.