|
Sunucu
Taraflı Geliştirme Ortamı ASP
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.
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
Ç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=#000000>
<% 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=#000000>
<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>
2. Ö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>
(Bu yazı
http://rafet.hypermart.net adresinden alınmıştır, döküman
[email protected] tarafından oluşturulmuştur)
|