21 Kasım 2006 Salı

ASP ile Sunucu Taraflı Programlama

Merhaba Webkolog takipçileri!

Bugün web geliştirme önemli duraklardan biri olan ASP (Active Server Pages) teknolojisine göz atıyoruz. ASP, özellikle dinamik web siteleri oluşturmak için yaygın olarak kullanılan, Microsoft tarafından geliştirilmiş sunucu taraflı bir betik ortamıdır. ASP sayfaları genellikle VBScript ile yazılıyor. ASP'nin temel programlama mantığını anlamak, sunucu taraflı çalışmanın nasıl başladığına dair önemli bir bakış açısı sunuyor. Gelin, ASP'nin (ve dolayısıyla VBScript'in) temel yapı taşlarını birlikte inceleyelim: veri tipleri, operatörler, değişkenler, deyimler, diziler ve döngüler!


Veri Tipleri: Bilgiyi Saklamanın Yolları

ASP'de (ve VBScript'te) temel olarak her şey bir Variant veri tipidir. Ancak Variant, içerdiği değere göre farklı alt tiplere bürünür. İşte en yaygın kullanılan alt veri tipleri:

  • Byte: 1 baytlık işaretsiz tamsayı. 0 ile 255 arasında değer alabilir. Küçük pozitif sayılar için idealdir.
  • Integer: 2 baytlık işaretli tamsayı. -32.768 ile 32.767 arasında değer alabilir. Genellikle sayılar için varsayılan seçimdir.
  • Long: 4 baytlık işaretli tamsayı. -2.147.483.648 ile 2.147.483.647 arasında değer alabilir. Daha büyük tamsayılar için kullanılır.
  • Double: 8 baytlık ondalık sayı tipi. Çok geniş bir aralıkta ondalıklı sayıları temsil edebilir. Bilimsel ve finansal hesaplamalarda karşımıza çıkar.
  • String: Karakter dizilerini saklar. Karakter sınırı verilmezse 2 milyar karaktere kadar atama yapılabilir. String değerler her zaman çift tırnak ("") içinde belirtilir.
  • Date: 8 bayt yer kaplar. 1/1/100 ile 31/12/9999 arasındaki tarih ve 0:00:00 ile 23:59:59 arasındaki saat atamaları yapılabilir. Tarih değerleri hash işaretleri (##) arasında da belirtilebilir.
    
    <%
    Dim Dogum_tarihi
    Dogum_tarihi = #21/03/1986#
    Response.Write Dogum_tarihi
    %>
    
  • Boolean: 2 baytlık bir veri tipi olmasına rağmen sadece True (Doğru) veya False (Yanlış) değerleri alabilir. Karar verme mekanizmalarında sıkça kullanılır. Atanan sayı 0 ise False, değilse True kabul edilir.


Değişkenler: Bilgiyi Sakladığımız Kutular

Değişkenler, programlama yaparken verileri geçici olarak sakladığımız isimlendirilmiş hafıza alanlarıdır. ASP'de (ve VBScript'te) değişkenleri kullanmadan önce tanımlamak iyi bir programlama pratiğidir, ancak zorunlu değildir (eğer sayfanızın başında Option Explicit kullanmıyorsanız). Değişken tanımlamak için genellikle Dim anahtar kelimesi kullanılır.



<%
Dim kullaniciAdi
Dim yas, sehir
Dim fiyat
Dim aktifMi
kullaniciAdi = "Webkolog"
yas = 38
sehir = "İstanbul"
fiyat = 49.99
aktifMi = True

Response.Write "Kullanıcı Adı: " & kullaniciAdi & "&lt;br&gt;"
Response.Write "Yaş: " & yas & "&lt;br&gt;"
Response.Write "Fiyat: " & fiyat & "&lt;br&gt;"


Operatörler: Değişkenlerle İşlem Yapma Gücü

Operatörler, değişkenler veya değerler üzerinde matematiksel, mantıksal veya karşılaştırmalı işlemler yapmamızı sağlar. İşte ASP'de kullanılan başlıca operatörler:

  • Atama Operatörü:
    • = (Atama): Bir değeri bir değişkene atar.
      X = 5
  • Aritmetik Operatörler:
    • + (Toplama):
      Response.Write 20 + 5 ' Çıktı: 25
    • - (Çıkarma):
      Response.Write 10 - 5 ' Çıktı: 5
    • * (Çarpma):
      Response.Write 3 * 5 ' Çıktı: 15
    • / (Bölme):
      Response.Write 9 / 2 ' Çıktı: 4.5
    • </code> (Tam Bölme): Sonucu tamsayı olarak verir (ondalıklı kısmı atar).
      Response.Write 9 \ 2 ' Çıktı: 4
    • ^ (Üst Alma): Bir sayının kuvvetini alır.
      Response.Write 4 ^ 2 ' Çıktı: 16
    • Mod (Modüler Aritmetik): Bir bölme işleminden kalanı verir.
      Response.Write 5 Mod 2 ' Çıktı: 1
  • String Birleştirme Operatörü:
    • & (Birleştirme): İki veya daha fazla stringi yan yana birleştirir.
      Response.Write "Kadı" & "köy" ' Çıktı: Kadıköy
  • Mantıksal (Logical) Operatörler:

    Boolean değerler üzerinde işlem yaparlar ve genellikle koşullu ifadelerde kullanılırlar.

    • And (Ve): Her iki koşul da doğruysa True döner.
      Response.Write (True And False) ' Çıktı: False
    • Or (Veya): Koşullardan en az biri doğruysa True döner.
      Response.Write (True Or False) ' Çıktı: True
    • Not (Değil): Bir koşulun tersini alır.
      Response.Write (Not True) ' Çıktı: False
    • Xor (Özel Veya): İki koşuldan sadece biri doğruysa True döner.
      Response.Write (True Xor False) ' Çıktı: True
  • Karşılaştırma Operatörleri:

    İki değeri karşılaştırır ve sonuç olarak True veya False döndürür.

    • = (Eşittir)
    • <> (Eşit Değildir)
    • < (Küçüktür)
    • > (Büyüktür)
    • <= (Küçük Eşittir)
    • >= (Büyük Eşittir)


Deyimler: Akışı Kontrol Etmek

Deyimler (Statement'lar), programınızın belirli koşullara göre farklı yollar izlemesini veya belirli blokları çalıştırmasını sağlar. En yaygın kullanılan kontrol deyimleri şunlardır:

If...Then Deyimi

Belirli bir koşulun doğru olup olmadığını kontrol eder ve buna göre kod yürütür.

  • Basit If:
    
    <%
    Dim puan
    puan = 75
    If puan >= 70 Then Response.Write "Geçtiniz!"
    %>
    
  • If...Then...Else: Koşul doğruysa bir işlemi, yanlışsa başka bir işlemi yapar.
    
    <%
    Dim sicaklik
    sicaklik = 22
    If sicaklik > 25 Then
    Response.Write "Hava sıcak."
    Else
    Response.Write "Hava ılık."
    End If
    %>
    
  • If...Then...ElseIf: Birden fazla koşulu ardışık olarak kontrol eder.
    
    <%
    Dim notOrtalamasi
    notOrtalamasi = 85
    If notOrtalamasi >= 90 Then
    Response.Write "Notunuz: A"
    ElseIf notOrtalamasi >= 80 Then
    Response.Write "Notunuz: B"
    ElseIf notOrtalamasi >= 70 Then
    Response.Write "Notunuz: C"
    Else
    Response.Write "Notunuz: F"
    End If
    %>
    

Select Case Deyimi

Bir değişkenin veya ifadenin birden fazla olası değeri olduğunda, If...ElseIf zincirine daha okunabilir bir alternatif sunar.


<%
Dim haftaGunu
haftaGunu = 3 ' 1: Pazartesi, 7: Pazar
Select Case haftaGunu
    Case 1
        Response.Write "Bugün Pazartesi."
    Case 2
        Response.Write "Bugün Salı."
    Case 3
        Response.Write "Bugün Çarşamba."
    Case 4
        Response.Write "Bugün Perşembe."
    Case 5
        Response.Write "Bugün Cuma."
    Case 6, 7 ' Birden fazla değeri tek bir Case'de kontrol edebiliriz
        Response.Write "Bugün Hafta Sonu!"
    Case Else
        Response.Write "Geçersiz gün."
End Select


Diziler: Birden Fazla Değeri Tek Değişkende Saklamak

Diziler (Arrays), birden fazla değeri tek bir değişken adı altında, sıralı bir şekilde saklamamızı sağlar. Her bir değere bir indeks (sıra numarası) aracılığıyla erişilir. ASP'de diziler 0 tabanlıdır, yani ilk elemanın indeksi 0'dır.

  • Sabit Boyutlu Dizi Tanımlama:
    
    <%
    Dim ogrenciler(3) ' 4 elemanlı bir dizi (0, 1, 2, 3 indeksleri)
    ogrenciler(0) = "Ayşe"
    ogrenciler(1) = "Fatma"
    ogrenciler(2) = "Mehmet"
    ogrenciler(3) = "Ali"
    Response.Write "İkinci öğrenci: " & ogrenciler(1) & "&lt;br&gt;"
            Response.Write "Son öğrenci: " & ogrenciler(UBound(ogrenciler)) & "&lt;br&gt;" ' UBound: Dizinin en yüksek indeksini verir
        %&gt;
        </code></pre>
    </li>
    <li><b>Dinamik Boyutlu Dizi Tanımlama ve Yeniden Boyutlandırma:</b>
        <pre><code>
        &lt;%
            Dim sayilar() ' Boş bir dinamik dizi
            ReDim sayilar(2) ' Diziyi 3 elemanlı yapar (0, 1, 2)
            sayilar(0) = 10
            sayilar(1) = 20
            sayilar(2) = 30
    
            ReDim Preserve sayilar(4) ' Diziyi 5 elemanlı yapar, mevcut değerleri korur
            sayilar(3) = 40
            sayilar(4) = 50
    
            Response.Write "İlk sayı: " & sayilar(0) & "&lt;br&gt;"
            Response.Write "Son sayı: " & sayilar(4) & "&lt;br&gt;"
        %&gt;
        </code></pre>
        <p><code>ReDim Preserve</code> anahtar kelimesi, dizinin boyutunu değiştirirken mevcut verilerin kaybolmamasını sağlar.</p>
    </li>
    


Döngüler: Tekrarlayan İşlemler için

Döngüler, belirli bir kod bloğunu bir koşul doğru olduğu sürece veya belirli bir sayıda tekrarlamak için kullanılır. Bu, aynı işlemi defalarca yazmaktan bizi kurtarır.

For...Next Döngüsü

Belirli bir sayıda tekrar etmesi gereken işlemler için idealdir.


<%
For i = 1 To 5
Response.Write "Sayı: " & i & "<br>"
Next
' Çıktı:
' Sayı: 1
' Sayı: 2
' Sayı: 3
' Sayı: 4
' Sayı: 5
For j = 10 To 0 Step -2 ' Azalarak sayma
    Response.Write "Geri sayım: " & j & "&lt;br&gt;"
Next

For Each...Next Döngüsü

Bir dizi veya koleksiyonun her bir elemanı üzerinde işlem yapmak için kullanılır.


<%
Dim meyveler(2)
meyveler(0) = "Elma"
meyveler(1) = "Armut"
meyveler(2) = "Muz"
For Each meyve In meyveler
    Response.Write "Sevdiğim meyve: " & meyve & "&lt;br&gt;"
Next

While...Wend Döngüsü

Belirli bir koşul doğru olduğu sürece çalışır. Koşul en başta kontrol edilir.


<%
Dim sayac
sayac = 0
While sayac < 5
Response.Write "Sayac değeri: " & sayac & "<br>"
sayac = sayac + 1
Wend
%>

Do While...Loop Döngüsü

En az bir kez çalışması garantilidir, çünkü koşul ya döngünün başında ya da sonunda kontrol edilebilir.

  • Koşul başta kontrol ediliyor:
    
    <%
    Dim x
    x = 0
    Do While x < 3
    Response.Write "X değeri: " & x & "<br>"
    x = x + 1
    Loop
    %>
    
  • Koşul sonda kontrol ediliyor (Do...Loop While): Bu durumda döngü en az bir kere çalışır.
    
    <%
    Dim y
    y = 5
    Do
    Response.Write "Y değeri: " & y & "<br>"
    y = y + 1
    Loop While y < 3 ' Koşul yanlış olsa bile bir kez çalıştı
    %>
    


ASP ve VBScript'in bu temel programlama yapıları, dinamik web sayfaları oluşturmak için gerekli olan mantıksal akışı ve veri yönetimini sağlar. Günümüzde modern web geliştirme teknolojileri çok daha gelişmiş olsa da, bu temel kavramlar birçok programlama dilinde benzer şekillerde karşımıza çıkar. Bu yüzden, buradaki mantığı kavramak, gelecekteki öğrenme yolculuklarınız için sağlam bir zemin oluşturacaktır.

Umarım bu makale, ASP dünyasına keyifli bir giriş yapmanıza yardımcı olmuştur!

Webkolog'u takipte kalın!

Hepinize bol kodlu ve başarılı projeler dilerim!

0 yorum:

Yorum Gönder