Merhaba Webkolog takipçileri,
Bugün ASP'de kod yazarken sıkça karşılaştığımız veya bilmemiz gereken bazı temel yapıları ele alacağız. Fonksiyonlar ve metotlar kodumuzu düzenlerken, Goto ve With yapıları belirli durumlarda bize kolaylık sağlar. REM ise olmazsa olmazımız, yani kod yorumlarıdır. Gelin, bu yapıları daha yakından inceleyelim.
---Fonksiyonlar (Function)
Fonksiyonlar, belirli bir görevi yerine getiren ve geriye bir değer döndüren kod bloklarıdır. Kod tekrarını önlemek, programınızı daha modüler ve okunabilir hale getirmek için vazgeçilmezdirler. Bir fonksiyon tanımladığınızda, onu birden fazla yerde çağırabilir ve aynı kodu tekrar tekrar yazmaktan kurtulursunuz. Fonksiyonlar genellikle bir veya daha fazla parametre alabilir ve bu parametreler üzerinde işlem yaparak bir sonuç döner.
<%
Function Topla(sayi1, sayi2)
Topla = sayi1 + sayi2 ' Fonksiyonun döndüreceği değer
End Function
Dim sonuc
sonuc = Topla(10, 5) ' Fonksiyonu çağırma
Response.Write "Toplam: " & sonuc ' Çıktı: Toplam: 15
%>
Yukarıdaki örnekte, Topla adında bir fonksiyon tanımladım. Bu fonksiyon iki sayı alır ve onların toplamını geriye döndürür. Fonksiyonun ismini kullanarak (bu örnekte Topla) geriye dönecek değeri belirtmemiz gerekiyor.
---Metotlar (Sub)
Metotlar veya VBScript'teki adıyla Sub yordamları, fonksiyonlara benzer şekilde belirli bir görevi yerine getiren kod bloklarıdır. Ancak fonksiyonlardan temel farkları, geriye bir değer döndürmemeleridir. Genellikle bir işlemi gerçekleştirmek veya bir yan etki yaratmak için kullanılırlar.
<%
Sub HosgeldinMesaji(kullaniciAdi)
Response.Write "Merhaba " & kullaniciAdi & ", Webkolog'a hoş geldiniz!"
End Sub
Call HosgeldinMesaji("Ayşe") ' Metodu çağırma
' Veya sadece HosgeldinMesaji "Ayşe" şeklinde de çağırabilirsiniz
%>
Burada HosgeldinMesaji adında bir Sub yordamı var. Bu yordam bir kullanıcı adı alır ve ekrana hoş geldin mesajı yazar. Geriye bir değer döndürmediği için sadece işlemi gerçekleştirir.
---Goto ve On Error Goto
Goto, program akışını bir kod etiketine (label) yönlendiren bir komuttur. Modern programlamada genellikle tavsiye edilmez çünkü kodun okunabilirliğini ve bakımını zorlaştırabilir. Ancak ASP'de özellikle hata yönetiminde On Error Goto ile sıkça kullanılır.
On Error Goto komutu, bir hata oluştuğunda program akışını belirtilen bir etikete yönlendirerek hata yönetimi yapmamızı sağlar. Bu sayede uygulamanız beklenmedik hatalar karşısında çökmez, bunun yerine belirlenen hata işleme bloğuna atlar.
<%
On Error GoTo HataYakala ' Hata oluşursa HataYakala etiketine git
Dim sayi1, sayi2, sonuc
sayi1 = 10
sayi2 = 0 ' Hata oluşacak (sıfıra bölme)
sonuc = sayi1 / sayi2
Response.Write "Sonuç: " & sonuc
GoTo ProgramBitti ' Hata oluşmazsa hata yakalama bloğunu atla
HataYakala:
Response.Write "Bir hata oluştu! Hata Açıklaması: " & Err.Description
Response.Write "
Hata Numarası: " & Err.Number
' Err nesnesi hakkında daha fazla bilgi: Webkolog'un hata yönetimi makalelerine bakabilirsiniz!
ProgramBitti:
Response.Write "
Program sonlandı."
%>
On Error Resume Next ise bir hata oluştuğunda hatayı görmezden gelerek bir sonraki satırdan çalışmaya devam etmesini sağlar. Genellikle kontrollü hatalarda kullanılır ama dikkatli kullanılmazsa hataların gözden kaçmasına neden olabilir.
<%
On Error Resume Next ' Hata olursa bir sonraki satıra geç
Dim x, y, z
x = 10
y = 0
z = x / y ' Burada hata oluşacak ama kod çalışmaya devam edecek
If Err.Number <> 0 Then ' Hata oluşup oluşmadığını kontrol edebiliriz
Response.Write "Hata oluştu ama devam edildi: " & Err.Description
Err.Clear ' Hatayı temizle
End If
Response.Write "
Devam eden kod."
%>
---
With Nesnesi
With deyimi, bir nesnenin birden fazla özelliğine veya metoduna ardışık olarak erişirken kod tekrarını azaltmak ve okunabilirliği artırmak için kullanılır. Özellikle uzun nesne isimleri veya birden fazla alt özelliği olan nesnelerle çalışırken çok kullanışlıdır.
<%
' Response nesnesini kullanarak With örneği
With Response
.Buffer = True
.Expires = 0
.ContentType = "text/html"
.Write "Merhaba Webkolog!"
.Write "
With deyimi ne kadar kullanışlı!"
End With
' ADODB.Connection nesnesiyle With örneği (veritabanı bağlantısında sıkça kullanılır)
' Set objConn = Server.CreateObject("ADODB.Connection")
' With objConn
' .ConnectionString = "Provider=SQLOLEDB;Data Source=server;Initial Catalog=database;User ID=user;Password=password"
' .Open
' .Execute "INSERT INTO MyTable (Column1) VALUES ('Value1')"
' .Close
' End With
' Set objConn = Nothing
%>
Yukarıdaki örnekte, Response nesnesinin farklı özelliklerine erişirken her seferinde Response. yazmak yerine With Response bloğunu kullandım. Bu, kodu daha kısa ve anlaşılır hale getirir.
---Açıklamalar (REM / ')
Açıklamalar, kodunuzun ne işe yaradığını, neden belirli bir şekilde yazıldığını veya önemli notları belirtmek için kullanılan, ancak program çalışırken derleyici tarafından yok sayılan metinlerdir. Kodunuzu kendiniz veya başkaları için daha anlaşılır hale getirmenin en temel yoludur. ASP'de (VBScript), yorum satırları REM anahtar kelimesiyle veya tek tırnak işareti (') ile başlar.
<%
' Bu tek tırnak ile yazılmış bir yorum satırıdır.
REM Bu da REM anahtar kelimesi ile yazılmış bir yorum satırıdır.
Dim userName ' Kullanıcının adını tutacak değişken
userName = Request.QueryString("name") ' URL'den 'name' parametresini alıyorum
' Eğer kullanıcı adı boşsa, varsayılan bir değer atayalım
If userName = "" Then
userName = "Misafir"
End If
Response.Write "Merhaba, " & userName & "!" ' Ekrana selamlama yazdır.
%>
Yorumlar, özellikle karmaşık veya uzun kod bloklarında, kodunuzu belgelemenin ve gelecekteki bakımı kolaylaştırmanın altın kuralıdır. Asla yorum yazmaktan çekinmeyin!
---Umarım bu makale, ASP'deki bu temel kod yapılarını anlamanıza yardımcı olmuştur. Kodlama yolculuğunuzda bu yapıları doğru ve etkin bir şekilde kullanarak daha güçlü ve yönetilebilir uygulamalar geliştirebilirsiniz.
Webkolog'u takipte kalın!
Hepinize bol kodlu ve keyifli öğrenme süreçleri dilerim!
0 yorum:
Yorum Gönder