Sunucu Taraflı Geliştirme Ortamı – ASP

Dinamik içerik sunmak için kullanıcının tercih ettiği Web tarayıcı ile sınırlı değilsiniz, sunucu taraflı bir teknoloji olan ASP ile Web tarayıcısından bağımsız değişken sayfalar hazırlayabilirsiniz.

Temel HTML kodlarının kullanımının anlatılmasını uzun süre önce tamamladık, bir kaç ay ard ard yayınladığımız kullanışlı JavaScript programcıkları ile de sayfalarınızın işlevini arttırmayı amaçladık. Siz Web Okulu okuyucularının ufkunu genişletmek, yeni teknolojilerden haberdar olmanızı ve kullanabilmenizi sağlamak için bu sayıdan itibaren öğrenmesi zevkli ve gelecek vaadeden teknolojilere değineceğiz. Anlatmaya başlayacağımız ilk teknoloji ASP. İki sayıdan az olmayan ASP yazımızı zevkle okuyacağınızı ve uygulayacağınızı umuyoruz.

ASP ile ilgili Web adresleri
İşte ASP konusunda size en çok yardımı dokunacak Web siteleri. Bu sitelerde teknoloji ile ilgili dökümanların yanısıra ücretsiz bileşenler, püf noktaları ve kodlar bulacaksınız.

http://www.microsoft.com/iis
http://www.activeserverpages.com/
http://www.asphole.com/
http://www.15seconds.com
http://www.aspsite.com/
http://www.vallin.com/pub/1/asp1.asp
http://www.aspdeveloper.net/

ASP NEDİR ?
Sunucu taraflı bir teknoloji olan ASP, (Active Server Pages/Aktif Sunucu Sayfaları) kullanıcı tarafına etkileşimli, dinamik Web sayfaları göndermek için kullanılır. ASP, Web programcılarına HTML, scripting ve kullanıcıdan bağımsız veritabanı uygulamalarını özgürce kullanma fırsatı verir. ASP programlama ortamının özgür olmasının sebebi tüm derleme işleminin sunucu tarafında bitmesi ve kullanıcının sadece sonuçta oluşan HTML sayfalarını görmesidir.

Çok geniş bir kullanım alanı olan ASP, scripting diye tabir edilen VBScript, JavaScript gibi her türlü ham kodu kullanabilir, sunduğu kolay anlaşılır doğal dili ile orta derece HTML bilen kimseler tarafından bile kolayca kavranabilir. Bir scripting dili olsa bile ASP, sunucu tarafında uygulama çalıştırmanıza da izin verir. Web sunucunuza bağlanan kullanıcı sizin tarafınızda neler olup bittiğini bilmezken kendisine gelen HTML formatındaki sonuca baktığında yazdığınız ASP kodlarını değil, Internet sunucusunun onun için hazırladığı HTML kodlarını görür.

ASP’nin Netscape Navigator / Internet Explorer /Opera gibi Web tarayıcılarından bağımsız olmasının yanısıra en büyük avantajlarından biri kullandığınız teknolojilerin, scriptlerin saklı kalmasıdır. Normal şartlarda, dinamik içerik hazırlamak için HTML sayfasında emek dökerek kullandığınız scriptler diğerleri tarafından “beğenilip” kolayca tekrar kullanılabilirken ASP için böyle bir şey söz konusu değildir. Uyanık kullanıcılar ASP sayfasını tıpkı başka bir dosya gibi bilgisayarlarına kaydetmek istediklerinde ise Web sunucunuz bunu anlayacak ve yine sayfanın hazırlanmış halini kullanıcıya sunacaktır.

ASP NASIL İŞLİYOR?
ASP arabiriminin işleyişi oldukça basit, sisteminize ASP eklentisini yüklediğinizde Internet Information Server’ınızın zaten sahip olduğu scripting özellikleri işlemeye başlıyor. İstemci tarafı sunucudan normal bir HTML sayfasını istediğinde, IIS bu dosyayı sabit diskten çağırarak istemci tarafındaki Web tarayıcıya yollar. İstemci tarafından yapılan istek bir ASP sayfasıysa IIS bunu sayfanın uzantısından anlayarak ASP eklentisini devreye sokar. ASP eklentisi sayfa içindeki scriptleri yine IIS’a çalıştırdıktan sonra oluşan HTML sayfasını istemci tarafındaki Web tarayıcısına yollar, bu arada “kuzu” durumunda olan kullanıcının sunucuda gerçekleşen işlemlerden haberi olmaz. ASP sisteminin dezavantajı Web sunucunuza daha fazla yük getirmesidir. Normal bir HTML sayfasının sabit diskten alınarak sunulması sunucuya fazla yük getirmezken ASP sayfalarının işlenmesi sunucunuzun değerli bellek ve işlemci kaynaklarından daha fazla yararlanacaktır. Yukarıdaki işlemleri anlatırken ASP’nin getirdiği en büyük avantajlardan biri olan veritabanı kullanımına hiç değinmedik, ASP, sunucu üzerinde yüklü ODBC veritabanlarını kullanabilir, şirketinize ait veritabanlarını Intranet’inize veya Internet’e açabilir.

ASP’Yİ NASIL KULLANMAYA BAŞLAYACAĞIM?
Web sitenizin dilediğiniz bölümlerini ASP’ye göre düzenlemeden önce bir takım şeyler yapmanız gerekiyor. Windows NT kullananlar öncelikle sistemlerine tamamen ücretsiz olan Microsoft Internet Information Server (IIS) 3 veya 4’ü kurmalılar. IIS’ı kurduktan sonra Microsoft’un sitesinden (http://www.microsoft.com/iis) güncel bir sürümünü edebileceğiniz ASP eklentisini yüklemelisiniz. Internet Information Server yapısı gereği bir Web uygulamasının kendisi üzerinde çalıştırılabilmesi için uygulamanın çalıştırıldığı klasöre bu izninin verilmiş olmasını ister. Bu yüzden ASP’lerin konulacağı klasörlere “execute” hakkı verin, IIS execute hakkı verilmiş bir klasörün alt klasörlerine de otomatik olarak bu hakkı tanır.

Web sayfalarını sunmak için Windows 95 işletim sistemi altında çalışan Personal Web Server’ı tercih edenler de ASP’yi hemen kullanmaya başlamakta pek zorlanmayacaklar. ASP eklentisini yükleyip ilgili hakları verdikten sonra hemen, vereceğimiz başlangıç örneklerini deneyebilirler. Web sayfalarını Unix veya başka işletim sistemleri üzerinde tutan veya bir Web sunucusuna sahip olmaksızın sayfalarını sunmak için ücretsiz servislerden faydalanan okurların işi ise biraz daha zor.

Chilisoft (http://www.chilisoft.com/) adlı yazılım firması değişik işletim sistemleri için ASP eklentileri sunuyor, ayrıca bir Web sunucusuna sahip olmayanlar Internet’te ASP dosyalarını ücretsiz olarak sunan hosting firmalarından faydalanabilirler. Altavista Web tarayıcısında “ASP hosting” anahtar kelimeleriyle yapacağınız araştırma sizi bu firmalara ulaştıracaktır.

ASP NE İŞİME YARAYACAK?
Eskiden taş düşürtecek kadar zahmetli olan HTML formlarını değerlendirme işi ASP ile “çocuk oyuncağı” haline getirilmiş, önceleri bu işi yapmak için CGI (Common Gateway Interface) uygulamaları yazmış, hazır ve esnekliğe izin vermeyen tek platformlu form değerlendirme programları kullanmış olabilirsiniz, Web sitenizi ASP tabanlı bir hale getirdiğinizde tüm bunlardan kurtulmuş olacaksınız. ASP yetenekleriniz geliştikten sonra sunucu üzerinde yüklü ODBC veritabanlarını kullanan ActiveX uygulamaları yazmaya başlayabilirsiniz veritabanlarına bilgi yazabilir ve okuyabilirsiniz. VBScript, JavaScript, PERL veya REXX gibi bir scripting dili hakkında bilginiz varsa aynı zamanda ASP biliyorsunuz demektir çünkü ASP, IIS 4’ü veya dışardan yüklenebilen modülleri kullanarak bu dilleri anlayabilir. ASP aynı zamanda sunucu üzerinde çalışan Microsoft BackOffice ailesi uygulamalardan maksimum derecede faydalanır, bu işleve sahip önceden hazırlanmış ASP modülleri başka sayfalar içine gömülebilir.

ASP İLE PROGRAMLAMAYA BAŞLANGIÇ
Yukarıda ASP’ye kısa bir giriş yaptık, anlattıklarımızı pekiştirmek için dilerseniz iki tane örnek verelim. ASP sayfalarını kullanabilmek için yukarıda anlattığımız olayları gerçekleştirdiyseniz execute hakkı verdiğiniz bir klasörde aşağıda kodlarını verdiğimiz ASP sayfalarını hazırlayın.

http://sunucu_ismi/klasor/asp_ismi.asp

komutunu kullandığınızda Web tarayıcınız ASP kodlarının altında verdiğimiz HTML dökümlerini oluşturacaktır.
Sunucu üzerindeki ASP dosyasını çağırdığınızda boş bir sayfa geliyorsa Internet Information Server’ınız üzerine ASP eklentisi yüklü değildir. Kodlar çağrıldığında hata mesajı geliyorsa IIS’ınızın sürümü çok düşüktür veya ASP kodlarını doğru olarak girmemişsiniz demektir.

1.Örneğimiz

ASP KODLARI
<HTML>
<HEAD><TITLE>
Script yardımıyla değişik ebatlarda yazılar…
</TITLE></HEAD>
<BODY BGCOLOR=#FFFFFF>
<% for i = 3 to 7 %>
<FONT SIZE=<% = i %>>Biz biz idik biz idik otuziki kız idik.</FONT><BR>
<% next %>
<BR>
</BODY>
</HTML>

KULLANICI TARAFINDA GÖRÜLEN
<HTML>
<HEAD><TITLE>
Script yardımıyla değişik ebatlarda yazılar…
</TITLE></HEAD>
<BODY BGCOLOR=#FFFFFF>
<FONT SIZE=3>Biz biz idik biz idik otuziki kız idik.</FONT><BR>
<FONT SIZE=4>Biz biz idik biz idik otuziki kız idik.</FONT><BR>
<FONT SIZE=5>Biz biz idik biz idik otuziki kız idik.</FONT><BR>
<FONT SIZE=6>Biz biz idik biz idik otuziki kız idik.</FONT><BR>
<FONT SIZE=7>Biz biz idik biz idik otuziki kız idik.</FONT><BR>
<BR>
</BODY>
</HTML>

  1. Örneğimiz:

ASP KODLARI
<html>
<title>ASP ile rasgele püf noktası…</title>
<%
‘ Sayfada göstermek üzere 1’den 10’a kadar bir püf noktası seç.
Randomize
TipNumber = Int(Rnd*10)
‘ İçinde 10 adet püf noktası olan dosyayı aç
Set FileObject = Server.CreateObject(“Scripting.FileSystemObject”)
Set Instream = FileObject.OpenTextFile (Server.MapPath (“/deneme”) & “\puf.txt”, 1, FALSE, FALSE)
‘ Göstermek istediğim püf noktasına kadar olanları atla
For i = 1 to TipNumber -1
InStream.SkipLine()
Next
‘ Dosyadan alınan satırı PufNoktasi değişkenine ata.
PufNoktasi = Instream.ReadLine
%>
<FONT FACE=”Verdana” SIZE=4><B>
<%= PufNoktasi %></B></FONT>
</html>

KULLANICI TARAFINDA GÖRÜLENLER
<html>
<title>ASP ile rasgele püf noktası…</title>
<FONT FACE=”Verdana” SIZE=4><B>
Rasgele püf noktası * 5</B></FONT>
</html>

FORM İÇERİĞİNİ ASP’YE NASIL YOLLARIM?
HTML formları Web sitelerinde kullanıcıdan veri almak için kullanılan yegane yoldur. ASP teknolojisini en önemli görevlerinden biri de form verilerini saklamak, hatırlamak ve değerlendirmektir. İçeriğinde bir form olan ASP sayfaları tabii ki yapılabilir, ama HTML sayfalarındaki verilerin, bir yardımcı programa veya script’e ihtiyaç duyulmaksızın herhangi bir ASP dosyası tarafından değerlendirilebileceğini bilmek sanırım hoşunuza gidecektir.

ASP sayfalarının sunucunuzda çalışan veritabanı modülünü kullanarak veritabanlarına erişebileceğini ve buradaki verileri Web’e aktarabileceğini söylemiştik. Form içeriğine girilen verileri ASP sayfalarına yollamak oldukça basittir sadece ASP sayfasında bir değişkene form kontrollerinden birinin ismini atamak yeterli. Aşağıdaki örnekleri inceleyince parametre mantığını daha iyi anlayacaksınız.

GET ile hazırlanmış formlarda değişkenlerin toplam karakterinde bir sınırlama vardır. Bunun yanısıra geçtiğiniz parametreler Web tarayıcınızın URL kutusunda görülecektir. ASP Script’inin bu tip formlardaki verileri alabilmesi HTML kısmında ve script içinde aşağıdaki gibi kodlar kullanılması gerekir:

Formu oluşturmak için:

<form action=”deneme.asp” method=GET>
…. Diğer form üyeleri ….
<input type=submit><input type=reset>
</form>

ASP Script’inde okumak için:

<%degisken=request.querystring(“form_bolgesi”)%>
POST ile hazırlanmış formlarda ise karakter ve uzunluk sınırlaması GET kadar sınırlı değildir. Web tarayıcınız geçtiğiniz değişkenleri adres penceresinde göstermeyecektir. ASP Script’inin bu tip formlardaki verileri alabilmesi HTML kısmında ve script içinde aşağıdaki gibi kodlar kullanılması gerekir:
Formu oluşturmak için:
<form action=”deneme.asp” method=POST>
…. Diğer form üyeleri ….
<input type=submit><input type=reset>
</form>
ASP Script’inde okumak için:
<%degisken=request.form(“form_bolgesi”)%>

ASP ile başka ne gibi eklentiler kullanabilirim?

ASP İLE BİLEŞEN KULLANMA
Microsoft’un sunucu teknolojisi ASP için bir çok ikinci parti bileşen bulunuyor. ASP sayfaları ile uyum içerisinde çalışarak sonuç sayfalarının oluşturulması, Web sayfası sahiplerine işlenmiş bilgi aktarılması gibi işlere yarayan bileşenlerden en popüler olanları ASPMail ve RoboHTTP. Server Objects firmasının bu iki ürünü, sayfadaki formların içeriğinin kullanıcıya e-mail olarak kullanılması, misafir defteri oluşturulması ve bir çok değişik bilginin bir sayfada toplanması gibi işlemleri kolayca hallediyor. CGI Script yazmak veya NT sunucularına bir servis daha yükleyerek meşgul etmek istemeyenler http://www.serverobjects.com adresindeki Web sitesini ziyaret ederek daha geniş bilgi edinebilirler.

VERİTABANLARINI ASP İLE ZAHMETSİZ NASIL KULLANIRIM?
Kurumunuzun veritabanını ASP teknolojisini kullanarak Web sayfalarından ulaşılır ve değiştirilebilir hale dönüştürmek istiyorsunuz. Bunu yapmak için işi bilen bir kişinin saatlerce bilgisayarın başında oturup veritabanındaki field’leri girmesi, sorgulamaları programlaması gerekmiyor. Microsoft’un, Internet teknolojilerinin programlanmasını ve kullanımını kolaylaştıran ürünü Visual InterDev bir Access97 veritabanını alarak bunu kolayca Web’den erişilebilecek duruma getirebiliyor. Bu işi yapmak için kullanımı inanılmaz kolay sihirbazlar içeren program hakkında daha fazla bilgi için http://www.microsoft.com/vinterdev/ adresine bağlanın.

OTURUM NEDİR?
Internet Information Server’ın en vurucu özelliklerinden olan “oturum”dan ASP teknolojisi sonuna kadar faydalanır. Bir kullanıcının Web sitenize bağlandığı andan Web sitenizden ayrıldığı ana kadar olan zaman dilimine “oturum/ session” adı verilir. Bu süre içerisinde sunucunuzdaki ASP eklentisi kullanıcıyı takip eder ve yaptığı hareketleri, yolladığı tüm bilgileri kontrol eder. Örneğin bir kullanıcının alışveriş sepetine koyduğu tüm ürünler ASP eklentisi tarafından sunucunun belleğinde tutulur, kullanıcı siteden çıktığı anda bellektekiler eğer aksi belirtilmediyse oturum sonlandığı için silinir. Oturum takibi işini bir ISAPI (Internet Server Application Programming Interface) filtresi olan Cookie Munger ile yapabilirsiniz, bu arabirim aynı zamanda kullanıcıya yolladığı çerezler ile eğer silinmemişse sunucu üzerinde bulunan bir oturumun devamını da sağlayabilir.

Sunucuya oturumu hatırlatmak amacıyla kullanıcıya yollanan çerezlerin hiç bir zararı yoktur. Aynı zamanda yollanılan çerezlerin içinde sadece bir hatırlatma numarası olduğundan kullanıcının kendi bilgisayarında sunucuya ait olan bilgileri ele geçirmesi mümkün değildir, bu yüzden çerezler bir güvenlik açığı oluşturmaz.

Ücretsiz olan Cookie Munger hakkında daha çok bilgi için http://www.microsoft.com/workshop/server/toolbox/cookie.asp adresini kullanabilirsiniz.

Kod örnekleri:

WEB SUNUCUMA KİMLER BAĞLI?
Yukarıda IIS’ın kendisine bağlı her bir kullanıcıyı takip ettiğini söylemiştik. ASP Script ile Web sunucunuza bağlı olan kullanıcıları ve hangi sayfalarda bulunduklarını kolayca ortaya çıkarabilirsiniz. Aşağıdaki kodları NT4 – Service Pack 3 yüklü ve Internet Information Server 4’e sahip bir sunucunun “execute” hakkı verilmiş bir klasöründen çalıştırdığınızda size sunucunuzdaki kullanıcıların IP adreslerini ve şu anda bulundukları sayfaları söyleyecektir. Sayfayı her seferinde yenilemenize gerek yok, ASP sayfası bu işi kendisi hallediyor…

<!– #INCLUDE VIRTUAL=”/includes/tracker.asp” > –>
<%
MyServer=Request.ServerVariables(“SERVER_NAME”)
MyPath=Request.ServerVariables(“SCRIPT_NAME”)
MySelf=”HTTP://”&MyServer&MyPath
%>
<html>
<head>
<meta HTTP-EQUIV=”REFRESH” CONTENT=”20;<%=MySelf%>”>
</head>
<body BGCOLOR=”#FFFFFF”>
<%
Application.Lock
Set TempStats=Application(“stats”)
Application.Unlock
%>
<center>
<b>Toplam Kullanıcı:</b> <%=TempStats.Count %>
<table BORDER=”1″ CELLPADDING=”10″ bgcolor=”#6699cc”>
<tr><th>Kullanıcı</th><th>Bulunduğu sayfa</th></tr>
<%
TempItems=TempStats.Items
TempKeys=TempStats.Keys
For i=0 to UBOUND(TempKeys)
%>
<tr><td><%=Tempkeys(i)%></td><td><%=TempItems(i)%></td></tr>
<%
Next
%>
</table>
</center>
</body>
</html>

ZAMAN ETİKETİNİ FORMATLAMAK
Aşağıdaki ASP script’i o anki tarihi 5 ayrı formatta yazar. ASP scriptinin tarih formatlama özelliğini göstermek için verdiğimiz örnek basit bir döngü ve fonksiyon tanımlanmasından oluşuyor. Her tarihi yazdıktan sonra bir paragraf boşluk veren ve ardından bir çizgi çeken script’i çalıştırdıktan sonra en çok beğendiğinizi kullanmaya başlayabilirsiniz.

<html><head>
<title>Zamanı formatlamak</title>
</head><body bgcolor=”#FFFFFF”><html>
<%
response.write “<hr>”
for counter=0 to 4
currentdate=now()
response.write “Bu gün…” & “<br>”
response.write currentdate & “<P>”
select case counter
case 0
whichformat=”vbgeneraldate”
case 1
whichformat=”vblongdate”
case 2
whichformat=”vbshortdate”
case 3
whichformat=”vblongtime”
case 4
whichformat=”vbshorttime”
end select
response.write “FormatDate(now(),” & whichformat & “)=”
response.write Formatdatetime(currentdate,counter) & “<P><HR>”
next%>
</body></html>