|
Ö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:
- ASP sayfasının içinde kod vardır.
- ASP sayfasının kodları Web Server tarafından icra edilir.
- 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/dergi/aspkodlar.zip 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
|