Asp Dersleri - Asp ye
giriş
Önsöz
"Merhaba: Ben bilgisayar
hastası-Kroninukus computerium-üniversiteyi yeni bitirmiş bir gencim. Byte
dergisiyle verilen "Internet Tasarım Rehberi" kitapçığını okuyarak HTML'i
öğrenmeye çalışıyorum ve bu konuda çok istekliyim. Bundan iki ay kadar önce bir
shareware program kullanarak bir site hazırladım. Fakat bu programı kullanmak
için hiç bir HTML etiketini öğrenmek gerekmiyordu. Oysa ben kendi çabalarımla bu
işi halletmeyi ve hatta daha da ileri götürmeyi düşünüyorum. Sizden ricam bana
nereye gitmem gerektiğini bildirmeniz, ve bunun için gerekli bilgi ve belgeleri
sağlamanız, bizlere yardım etmenizdir. Gayretleriniz için çok teşekkür ediyor,
çalışmalarınızda başarılar diliyorum."
Merhaba: çok değil, bir buçuk yıl
önce yazdığınız bu mektuba, o günden beri sürekli karşılık verdim. Önce Byte,
ardından PC World ve şimdi de PC Life dergisinin eki kitapçıklarla, bu arzunuzu
yerine getirdik. Size bir harita sunduk; bu haritaya göre ilerlediniz. HTML'den
sonra site yeri edinme yollarıyla işe başladık. Ardından HTML'in durağan
kalıbını yırtmak için JavaScript öğrendik. Sonra, sitemizi ziyaret edenlerle
etkileşmeli sayfalar yapmak, onlardan Form yoluyla bilgiler almak, konuk
defterleri yapmak için CGI imkanlarını kullanmak amacıyla Perl'e sıra geldi.
Şimdi yolun sonundayız. ASP tekniği ile sitelerimizi veritabanına dayalı hale
getireceğiz; Server nesnelerini kullanarak gerçek dinamizme kavuşturacağız. Bunu
yaparken Visual Basic Scripting Edition (veya kısa adıyla VBScript) ile
tanışacağız.
Gerçi bu ve gelecek ay sunacağımız
ASP Uygulamaları kitapçığıyla, birlikte yürümek üzere çizdiğimiz eğitim
döneminin sonuna gelmiş oluyoruz; ama sizin önünüzde uzun bir yol var. Bu yol,
Internet denen yeni iletişim aracını kullanarak, toplumumuza yeni bir soluk
kazandırma yoludur. Bu yolda yalnız ilerleyeceksiniz. Bilgisayarınızın ekranının
aydınlattığı yolda, klavye ile baş başasınız. Kalbiniz ve onu dolduran Bilişim
Teknolojisi aşkı size rehber olacak. Daha öğreneceğiniz çok şey var hayatta.
Hergün yeni teknolojilerin çıktığı bir alan seçtiğinizin farkındasınız. Sakın
kafanız karışmasın: Siz ustasınız; teknoloji, adı üstünde, araçtan ibaret.
Hergün yenisi ile karşılaştığınız teknolojiler sizi korkutmamalı. Sırasıyla
hepsini başaracaksınız. Öğrendikçe, çok değil bir ay önce sizi korkutan bir
dilin, bir tekniğin ne kadar basit olduğunu göreceksiniz. Asla "Ben bunların
hepsinin altından nasıl kalkarım?" demeyeceksiniz. Sırasıyla herşeyi
öğrenebilirsiniz. Daima şunu tekrar edin: "Öğrenen nasıl öğrendi ise, ben de
öğrenirim!" Bu yolda aklınız ve kalbiniz size rehber olacaktır. Yeter ki onlara
kulak verin.
ASP veya Active Server Pages (Etkin
Sunucu Sayfaları) tekniği, sayfalarınızı canlandıracak bir tekniktir. Bu teknik,
bir kaç sayfa sonra göreceksiniz ki, sil baştan bir bilgisayar programlama dili
öğrenmeye gerek olmadan uygulanabilir. Bu kitapçığı yazarken sizinle yolun
başından beri beraber olduğumuzu, yani HTML bildiğinizi varsayıyorum. Ayrıca
Web'in nasıl çalıştığını, Server (Sunucu) ve Client (İstemci) ilişkisinin nasıl
yürüdüğünü de biliyor olmalısınız.
ASP teknolojisinden yararlanmak
istediğinizde Web sitesine evsahipliği yapan bilgisayarda çalışmakta olan Web
Server'ın ASP teknolojisini tanıması ve sitenize bu hizmeti vermesi gerekir.
ASP, bir zamanlar sadece Microsoft'un NT ve daha sonra Windows 2000 işletim
sistemine dayanan MS-IIS (Internet Information Server) programında
işleyebilirdi. Fakat şimdi artık NT-tabanlı diğer Web Server programları gibi
Unix-tabanlı Web Server programları da ASP anlar ve işletir hale gelmiş
bulunuyor. Fakat ASP sayfalarınızı gerçek Internet ortamında ziyaretçilerinizin
hizmetine sunmadan önce, kendi bilgisayarınızda sınamanız gerekir. Bunun için
bilgisayarınızın işletim sistemi Windows 95/98 ise Kişisel Web Server (PWS), NT
4.0 ise IIS kurulmuş olmalıdır. Sisteminiz Windows 2000 ise, IIS 5.0
kendiliğinden kurulmuş demektir.
Şimdi biraz ASP'den söz edelim. Bu
kısaltmayı, "a..se..pe" veya "ey-es-pi" diye harf-harf okuyanlar olduğu gibi,
"eyspi" diye bir kelime halinde okuyanlar da vardır; ve bana sorarsanız, hepsi
de doğrudur. Internet programcıları, bütün görevi bir sabit diskteki HTML
dosyalarını alıp, ziyaretçinin Browser'ına göndermekten ibaret olan Web Server
programını yeniden tasarlamaya başladıklarında, Server'ın sadece durağan
sayfaları göndermesi yerine, ziyaretçiden de veri kabul etmesinin uygun
olacağını düşündüler. Bu amaçla Internet istemcisi ile sunucusunun buluştuğu
noktada, yani Common Gateway Interface (Ortak Geçit Arayüzü) katmanında Web
Server programının, istemci programdan (browser) kendisine bilgi ve komutlar
gönderilmesini sağladılar. Örneğin bir Form'daki bilgilerin alınıp, bir dosyaya
kaydedilmesi için vereceğimiz komut, sitemizin bulunduğu bilgisayarın işletim
sisteminde CGI katmanı tarafından icra ettirilir. Bu manada CGI, Web Server'ın
Internet ziyaretçisinin Browser'ın gelen bilgi ve komutları işlediği veya kendi
işletim sistemine aktardığı noktadır. Bu gelişmenin sonucu olarak ortaya CGI
programı dediğimiz şeyler çıktı. Perl, C/C++, Delphi, Visual Basic ile yazılan
bu programlar Web Server tarafından çalıştırılır, ve vereceği komutlar işletim
sistemine iletilir.
CGI programları ile çok şey
yapılabilir; fakat Web Server'a aynı anda birden fazla kişi erişir ve aynı CGI
programını çalıştırırsa, (yani aynı anda aynı formun "Gönder" düğmesini
tıklarlarsa), CGI programının birden fazla "kopyası" çalışmaya başlar. Aynı anda
aynı forma ulaşan kişi sayısı 4-5 ise bu belki sorun oluşturmaz; ama bu sayı
arttıkça Web Server da adeta yerlerde sürünmeye başlar! Özetle CGI programları
Web Server'ı yavaşlatır.
Microsoft programcıları biraz
geriden gelmekle birlikte Server işine el attıklarında, istemci ile sunucunun
etkileşmesini, bütün sistemi yavaşlatan "haricî" programlar yerine, işletim
sisteminin bir işlevi haline getirebileceklerini düşündüler. Bunun yolu ise
işletim sisteminin Uygulama Programı Arayüzü (API, Application Programming
Interface) denen unsurlarını kullanmaktı. Nitekim Microsoft, oturup bir dizi
Internet Server API (veya kısaca ISAPI) tasarladı. ISAPI, tıpkı CGI gibi, Web
Server programının bulunduğu bilgisayardaki diğer programlarla alışverişini
sağlar. Ne var ki ISAPI'den yararlanan programlar üreterek bunları Web Server'ın
emrine vermek oldukça pahalı bir yol. Başka bir deyişle, bir formda Gönder
düğmesinin çalışabilmesi için sözgelimi Excel ayarında bir program yazdırtmak
pek akıl kârı olmasa gerek.
Bu noktada çeşitli firmalar ISAPI
benzeri "yorumlayıcılar" geliştirerek, düz yazı bir Script yazmakla ve bu
Script'in içindeki komutları Server programına icra ettirmekle, Web
tasarımcısının hayatını çok kolaylaştırabileceklerini gördüler. Microsoft'un bu
noktadaki çözümü ASP oldu. Yani bir bakıma "Server'a Aktif Sayfalar sunma"
teknolojisi! NetObjects firması kendi Server Extension'larını geliştirdi.
Linux-Unix dünyasında bir başka grup PHP dilinden yararlanarak PHP Sayfaları
sistemini geliştirdi. Bunlardan sadece MS'un ASP teknolojisi birden fazla dil
ile Script kabul edebilen teknoloji olarak, diğerlerinden ayrıldı. Bu noktaya
birazdan geleceğiz; ama önce "ASP nasıl çalışır?" sorusunun üzerinde
duralım.
Ama önce biraz başa dönelim: Siz Web
ziyaretçisi olarak Browser'ınızın URL hanesine bir HTML sayfasının Internet
yolunu ve adını yazıp (örneğin, http://www.pclife.com.tr/index.htm) Git
düğmesini tıkladığınızda veya klavyede Enter/Return tuşuna bastığınız zaman ne
olur? Web Server, Internet'in bulutları arasından geçip kendisine gelen bu istem
üzerine, index.htm'i bulur ve yine aynı bulutların arasından sizin
blgisayarınıza kadar gönderir. ASP teknoloji ile üreteceğiniz sayfanın adının
uzatması ise .asp şeklinde olur. Siz bu kez URL hanesine bu dosyanın adını
(örneğin http://www.pclife.com.tr/index.asp) yazarsınız. Bu durumda Web Server,
bu sayfayı alıp, doğruca size göndermez: önce içindeki kodları icra eder. Sonra
bu kodları ayıklar ve geriye saf ve temiz HTML kalır. Ve bu sayfa, bizim
Browser'ımıza gönderilir.
Yukarıdaki son üç cümleyi lütfen
yeniden okur musunuz? Nelere dikkat ettiniz:
1. ASP sayfasının içinde kod
vardır.
2. ASP sayfasının kodları Web Server
tarafından icra edilir.
3. ASP sayfası, Browser'a salt HTML
olarak gelir.
Şimdi burada ASP ile Javascript'in
farkını görebiliyor musunuz? Javascript, HTML'in içine konuluyor; ama Server'da
değil, Browser'da çalışıyor. Peki CGI/Perl programı ile ASP'nin farkını
görebiliyor musunuz? HTML sayfasını Perl ile yazdığınız program üretiyor (print
"<HTML>\n"; kodunu hatırlıyor musunuz?); oysa ASP'de ziyaretçiye gidecek
HTML'i Server ve tasarımcı birlikte üretiyorsunuz. Bu bakımdan, Javascript
"istemci-tarafında" çalışırken, ASP, CGI programları gibi, "sunucu-tarafında"
çalışır. Bunun sonucu ise ASP ile yazacağınız sayfaların, ziyaretçinin
bilgisayarında kurulu Browser programı ne olursa olsun (Netscape Navigator,
Opera, Amaya, Internet Explorer), mutlaka görüntülenecek olmasıdır. ASP
sayfalarınıza koyacağınız VBScript kodları Server'da icra edileceği için,
ziyaretçinin Browser'ının örneğin VBScript'i tanımayan Netscape olması, sizi hiç
etkilemeyecek. Bununla birlikte ASP yoluyla üreteceğiniz sayfalarda yer alacak
dinamik HTML kodlarının, her Browser'da mutlaka arzu ettiğiniz gibi
yorumlanmayacağını unutmamalısınız.
Peki, ASP'nin içinde HTML ile kod
yan yanadır, dedik. Nedir bu kodlar? Hangi dille yazılır? ASP yoluyla Web
Server'a vereceğiniz komutları içeren bu kodlar, tabir yerinde ise, "arzu
ettiğiniz bir Script dili ile" yazılabilir. Bu VBScript olabilir; Javascript
veya Jscript olabilir; hatta, MS'un yeni teknolojisi olan Windows Scripting Host
ile uyumlu olmak koşuluyla, kendi Script dilinizi icad edip, bunu Web Server'a
öğretecek plug-in (ek program) geliştirebilirsiniz. İlk dönemlerinde ASP
kodlarını VBScript ile yazmak adeta şarttı. Giderek daha çok kaynakta ASP'nin
Javascript ile yazıldığını görüyorum. Fakat BT gibi sürekli gelişen ve yenilenen
bir alanda, Web tasarımcısın yeni bir dille tanışmasına imkan sağlamak için bu
kitapçıkta kodlarımızı VBScript ile yazacağız; dolayısıyla kitapçığın büyükçe
bir bölümü VBScript'e ayrılacak.
Şimdi kolları sıvayıp; işe
başlıyoruz. Bir dizinin sonu olan bu kitapçığı, Kroninukus computerium'a
adıyorum. Sadece BT alanında değil, tüm yaşamında yolun açık ve aydınlık olsun.
Bu eğitime birlikte başladığımızda "bilgisayar hastası" idin; eğer şimdi "usta
bir bilgisayar hastası" olmanı sağlayabildimse, ben görevimi yerine getirmiş
sayılırım. Bundan sonra sıra sende. Şimdi yardım edecek olan sensin. Bu yardımı
kimseden esirgeme. Kim olduğunu ve işlevini daima hatırla. Kalbinde duyduğun
çağrıya her zaman kulak ver.
Örnek Kodlar
İki kitapçıktan oluşan ASP
rehberinin bütün örnek kodları ve veritabanı dosyaları,
http://www.pclife.com.tr/......... adresinden edinilebilir. Ancak ASP öğrenirken
örnek kodları kendiniz yazmalısınız. Kodlamanın incelikleri ancak kodları siz
yazarsanız öğrenilebilir. Bu örneklerden sadece kendi yazdığınız kodlar hata
verdiği ve hatayı bulmaktan güçlük çektiğiniz zaman, karşılaştırma amacıyla
yararlanmalısınız.
Teşekkürler
Bu kitapçıktaki kodların değişik
ortamlarda sınanması için için bana yardımcı olan dilini ve yazımını denetleyen
dostlarım Mustafa Durcan, Osman Nuri Hömek ve Armağan Ergon'a teşekkür ederim.
Varolan hatalar elbette bana aittir. Sevgili arkadaşım Mustafa Durcan'ın bütün
dizinin gelişimine katkısını daima şükranla hatırlayacağım.