|
|
| ..::Asp Nedir ve Temel Dersler::.. | |
| | Yazar | Mesaj |
---|
AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:10 pm | |
| ASP nedir? · ASP'nin açılımı Active Server Pages şeklindedir. Aktif Sunucu Sayfaları olarak türkçeleştirmek mümkündür. · ASP bir programdır ve IIS içinde çalışır. · IIS'in açılımı Internet Information Services'dır. Internet Bilgi Sunucusu olarak türkçeleştirilebilir.
ASP'nin özellikleri · ASP bir Microsoft teknolojisidir. · IIS ile Windows 2000 üzerinde tavsiye edilen çalışma ortamıdır. · ChiliASP ve InstantASP Windows işletimi sistemi haricinde ASP çalıştırmak için kullanılabilir. Ama önerilmez.
ASP Dosyası nedir? · ASP dosyası düz metin, HTML, XML, ve komutlar içerir. · ASP dosyası server üzerinde çalıştırılır. · ASP dosyasının uzantısı ".asp"'dir.
ASP ile HTML arasında ne fark vardır? · Tarayıcı bir HTML dosyası talep ettiğinde server hiç bir işlem yapmadan dosyayı istemciye gönderir. · Tarayıcı bir ASP dosyası talep ettiğinde, ISS bu talebi ASP derleyicine aktarır. ASP derleyicisi dosyayı satır satır okur ve ASP kodlarını çalıştırır. Sonuç olarak işlenmiş ASP dosyası istemciye HTML formatında aktarılır.
ASP ile neler yapabilirsiniz? · Web sitesinin içeriği üzerinde dinamik olarak düzenleme, değiştirme, ekleme veya silme işleri yapabilirsiniz. · Kullanıcı taleplerine cevap verebilir, HTML formlardan gelen bilgileri değerlendirebilirsiniz. · Veritabanına erişir ve bilgileri tarayıcınız üzerinden alırsınız. · Sayfalarınızı kullanıcılara göre özelleştirebilirsiniz ve daha kullanışlı hale getirebilirsiniz. · ASP, CGI ve PERL'e göre daha basit ve hızlıdır. · ASP kodlarınız tarayıcı tarafında görülmez ve bu size güvenlik sağlar. · ASP kodu işlendikten sonra tarayıcıya gönderildiği için her tarayıcı ile ASP dosyaları görüntülebilir. · ASP programları ile siteniz üzerindeki trafiği azaltabilirsiniz | |
| | | AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:10 pm | |
| Bilgisayarınız Windows 95, 98, NT4 WorkStation veya NT4 Server ile çalışıyorsa, sisteminize bir Web Server programını siz kurmak zorundasınız. Windows 2000 Professional veya Windows 2000 Server ise Kişisel Web Server programını kendiliğinden kurar. Windows 98'e bir kişisel Web Server kurmaya geçmeden önce bilgisayarımıza bir kimlik vermemiz gerekir: Bilgisayarım/Denetim Masası/Ağ'ı tıkla¤¤¤¤¤ açacağınız diyalog kutusunda ikinci sekme olan Tanımlama'yı açın ve "Bilgisayar adı" kutusuna istediğiniz adı yazın. Bilgisayarın ağ ortamında olması gerekmez. Windows 98'e Kişisel Web Server kurmak için iki yol izleyebilirsiniz. Windows 98 CD-ROM'unda Add-ons klasöründeki PWS dizininde Kur.exe'yi tıklayın veya Windows NT Option Pack CD-ROM'unda Default.htm'i açın. Bilgisayarınızın Windows 98 ile çalıştığını algılayacak olan program size Personal (kişisel) Web Server (PWS) kurmayı önerecektir. Kişisel Web Server'ı kurarken her iki durumda da ikinci diyalog kutusunda Minimum/En az veya Typical/Tipik seçeneğini değil, Custom/Özel'i seçin ve açılacak yeni diyalog kutusunda Microsoft Data Access Components (MS Veri Erişim Bileşenleri) satırına işaret ko¤¤¤¤¤, Alt Bileşenleri Göster düğmesini tıklayın. Açılacak seçme kutusunda ise ADO Documentation satırına işaret koyun. Bu belgelerden daha sonra veri-yönlendirmeli Web Uygulaması yaparken yararlanacağız.
Kişisel Web Server kurulduktan sonra bilgisayarı yeniden başlatmak gerekir. | |
| | | AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:11 pm | |
| Windows NT4.0 Workstation veya Server'a IIS4.0 kurmak için Option Pack CD-ROM'undaki default.htm'i çalıştırmanız ve açılacak Browser penceresinde IIS'i kurma seçeneğini tıklamanız yeter. Burada da ADO Documentation'ı sabit diskinize aktarabilmek için gerekli seçeneği işaretleyin. Windows 98'e Kişisel Web Server kurulduğunda Masaüstü'nde Yayımla (Publish) adlı bir simge belirecektir. NT sistemlerinde ise Başlat menüsünde Programlar bölümüne IIS Manager satırı eklenir. Bu yollardan biriyle PWS veya IIS'i çalıştırın. Kişisel Web Server'da Personel Web Server Manager (Yönetici) kutusu açıldığında soldaki araç çubuğunda Yönetici'nin çeşitli bölümlerine gitmeniz için gereken gezinme simgelerini göreceksiniz. Şimdi, açılan ana pencerede iki unsura dikkat edin: Resmi Orginal boyutlarda Görüntülemek için Buraya Tıklayınız.. (622x436.)
1.Kişisel Web Server'ınızın adı. Bilgisayarınızın adı buraya Server adı olarak yazılmış olmalı. Biraz sonra, Internet'e koymadan önce sınayacağımız ASP sayfalarını çağırırken, Browser'ın adres kutusuna burada gördüğümüz adı yazacağız. 2.Kişisel Web Server'ın bilgisayarımızda sabit diskteki gerçek adresi. Bu, sizin Kişisel Web Server'ınızın kök (root) dizinidir. Bu genellikle C:\inetpub\wwwroot klasörüdür. Kişisel Web sitesi yaparsanız, sitenin gerektirdiği bütün dizinleriniz ve dosyalarınız burada gördüğünüz dizinin içinde olmalıdır. Yapacağımız ASP dosyalarını işte bu dizinin içine koyacağız. Bunları bir kenara not ettikten sonra, soldaki araç çubuğunda Gelişmiş simgesini tıklayın; ortadaki pencerede sanal dizinlerinizi görüyorsunuz. Bunlardan Home'u seçin ve sağdaki "Özellikleri düzenle" düğmesini tıklayın.
Ana dizinin okuma, yürütme ve makro erişim haklarının işaretli olmasına dikkat edin. İlerde kendinize Kişisel Web Server'ınızın kök dizininde yeni bir dizin oluşturursanız (örneğin "resimler" gibi) ve içine sitenizle ilgili dosyalar koyarsanız, Gelişmiş penceresinde Ekle düğmesini tıkla¤¤¤¤¤ bu gerçek dizini de sitenin sanal dizinlerinden biri haline getirmeniz gerekir. Gerçek dizinin adı XYZ bile olsa, sanal dizin haline getirirken istediğiniz sanal adı verebilirsiniz. Ama unutmayın, Browser'ın adres hanesine gerçek dizin adını değil sanal dizin adını yazmanız gerekir. Bu işlemleri IIS'te değişik araçlar ve diyalog kutularıyla, fakat temel ilkeler itibariyle aynı şekilde yapabilirsiniz. NT4 sistemlerine IIS'i kurmadan önce, Service Pack 3'ü uygulayın; Internet Explorer 5'i kurun. Elinizde varsa Service Pack 4, 5 veya 6'yı en son uygulayın. Bu noktada, ASP sayfalarınızı sınayacağınız bilgisayarda Microsoft Internet Explorer programının kurulu bulunmasının şart olmadığını hatırlatalım. ASP sayfalarınızı Netscape ile de sınayabilirsin | |
| | | AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:12 pm | |
| Bir Örnek Yapalım
Şimdi ilk ASP sayfamızı yapalım ve bununla kişisel Web Server programının çalışıp çalışmadığını sınayalım. Buraya kadar anlamış olduğunuz gibi ASP sayfası da HTML gibi düz yazı dosyasıdır; dolayısıyla beğendiğiniz bir düz yazı programı ile ASP yazabilirsiniz. Şimdi açın en beğendiğiniz düz yazı programını ve başlayın yazmaya. Eğer kelime-işlemci kolayınıza gidiyorsa, dosyayı ASCII veya ANSI biçiminde kaydetmeyi unutmayın (10'ncu satırın sonunda nokta olduğuna dikkat edin): Kod: <HTML><HEAD><TITLE>ASP ILE ILK SAYFA</TITLE><META http-equiv="content-type" content="text/html; charset=ISO-8859-9"><META http-equiv="Content-Type" content="text/html; charset=windows-1254"></HEAD><BODY><H1><CENTER>Merhaba Dünya!</H1><H2>Bugün:<% Response.Write(Date) %>.</CENTER</H2></BODY></HTML>
Bu dosyayı merhaba.asp adıyla kaydedin ve kendi bilgisayarınızda kişisel Web Server'da veya ISS'te sınayacaksanız, bu programları çalıştırın. Browser'ınızın URL hanesine, kişisel Server'ınızın adıyla birlikte dosyanın adını yazın; ve ilk ASP programınız dünyaya Merhaba desin. | |
| | | AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:12 pm | |
| Internet'te ASP
ASP teknolojisi ile oluşturduğunuz sayfaları, yani içinde ASP teknolojisinin gerektirdiği kodlar bulunan HTML dosyalarını, .asp uzatmasıyla kaydederiz. Bu dosyalar talep edildiğinde, Web Server programı, eğer ASP teknolojisini tanıyorsa, talep edilenin ASP sayfası olduğunu dosya adının uzatmasından anlar; ve bu sayfayı ziyaretçiye yollamadan önce kendisi işleme tabi tutar. ASP sayfamızdaki kodlar büyük bir ihtimalle bir takım dinamik işler yapacak, örneğin hesaplamalar, araştırmalar, veri tabanından veri çekme, dosya sisteminden dosya isteme gibi görevlerini yerine getirecek, ve ortaya çıkacak olan HTML dosyasını ziyaretçiye gönderecektir. Diyelim ki bu kitapçıktaki örnekleri yaptınız ve ücretsiz Site yeri edinmiş olduğunuz Hosting firmasının bilgisayarındaki sitenize yerleştirdiniz. Sonra Browser'ınızın URL hanesine bu ASP dosyasının adını yazdınız ve sayfayı talep ettiniz. Karşınıza, ya ASP sayfasının içindeki kodları görüntüleyen veya sadece sayfanın HTML unsurlarına yer veren bir sayfa geldi! Bu Server'ınızın ASP anlamadığını gösterir. ASP sayfalarınızı ASP-uyumlu Web sunucularında çalıştırabilirsiniz. Sitenizde ASP sayfaları bulunacaksa ve ücretli evsahibi firmalardan site alanı edinecekseniz, sunucunun ASP-uyumlu olmasına dikkat edin. | |
| | | AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:13 pm | |
| Şimdi, ilk ASP'mizi çalıştırdığımıza göre, biraz teknikten söz edebiliriz. HTML'in ziyaretçinin bilgisayarında çalıştığını biliyorsunuz; istemci Browser, sizin URL hanesine adını yazdığınız HTML dosyasını yine adresteki sunucu Web Server'dan ister. Web Server da bu dosyayı bulur ve içinde kayıtlı resim ve diğer unsurlarla birlikte istek sahibine gönderir. Fakat kimi zaman Server'a bize sadece bir dosyayı göndermesini değil, fakat bu dosyanın içinde kayıtlı komutlar varsa onları icra etmesini de bildirebiliriz. Bunu yapmanın bir yolu CGI programlarıdır. Bir diğer yolu ise ASP'dir. Web Server, kendisinden bir ASP belgesi talep edildiğinde, kendi kendine "Dur bakalım! ASP istendiği zaman hemen alıp göndermek yok, önce bunu ASP.DLL progr¤¤¤¤¤ gönderelim.. Ondan sonra işimize devam ederiz!" der.
ASP.DLL, kendisine bir .asp dosyasının geldiğini görünce, hemen ASP'lerin Anayasası olan global.asa'nin çalışıp çalışmadığına bakar. global.asa, tıpkı diğer ASP dosyaları gibi bir düz yazı dosyasıdır ve ASP programlarının çalışma koşullarını düzenleyen kuralları içerir. (Bu dosyayı sırası gelince ele alacağız.) Yukarıdaki örnekte gördüğümüz gibi ASP dosyası hem HTML kodları içerir, hem de içinde bir Script diliyle yazılmış kodlar vardır. ASP'ye "program" özelliği kazandıran bu Script dili ile yazılmış kodlardır. ASP.DLL, önce gelen .asp dosyasında hangi Script dilinin kullanıldığına bakar ve bunun için gerekli ortamı oluşturur; yani bu Script dilini yorumlayacak programı çalıştırır; bu program Script'i yorumlar ve icra edilecek komutları icra eder; ASP.DLL, icra edilen komutlar, işletim sisteminin yardımını istiyorsa (örneğin bir veritabanından veri çekmek gibi, veya dosya sistemine bir dosya açtırmak, yazdırmak, sildirmek gibi) bu yardımın edinilmesini de sağlar. Bütün bu işlerin sonunda sizin yazdığınız HTML kodlarına ek yapmak (örneğin bir tablonun içini, çekilen verilerle doldurmak veya dosya sisteminden edinilen bir dosyanın içeriğini sayfaya aktarmak gibi) gerekiyorsa bu ekleri ASP.DLL yapar. ASP.DLL, kendisine sevk edilen dosyayı satır satır okur ve önce dosyadaki ASP kodlarının gerektirdiği HTML değerlerini bulur; yani önce ASP icra edilir, gereği yerine getirilir. Sonra HTML bölümleri ile birleştirilip sonuçta sunucuya saf ve temiz bir HTML sayfası gönderilir. Bu sayfanın içinde bir satır bile ASP kodu bulunmaz. Eğer sayfanıza ziyaretçinin Browser'ında çalışması amacıyla Javascript veya VBScript kodları koydu iseniz, elbette bu kodlar HTML'in parçası olarak ziyaretçiye gidecektir. Fakat giden sayfada artık ASP'ye ilişkin hiç bir şey kalmamış olacaktır. Biliyorsunuz, mevcut sürümleri itibariyle Browser programları içinde Netscape VBScript dilini anlamaz. ASP sayfalarımızda istediğimiz Script dilini kullanabiliriz; VBScript de kullanabiliriz. Netscape'in VBScript anlamamasıyla, ASP sayfalarımızda VBScript kullanmamızın bir ilgisi yoktur; çünkü ASP sayfasının ortaya çıkartacağı HTML kodunda ASP dolasıyla VBScript bulunmayacaktır; dolayısıyla ASP sayfalarınız, Netscape tarafından da anlaşılıp, görüntülenebilecektir. Tabiî ortaya çıkacak HTML sayfasının Netscape tarafından arzu ettiğiniz gibi görüntülenebilmesi için Netscape'in anlayabildiği dinamik HTML unsurlarına yer verme zorunluğunuz hâlâ devam ediyor. ASP tekniğinin nasıl çalıştığını anladığımıza göre şimdi biraz terminoloji serpiştirelim ki, Webmaster meslektaşlarınızla biraraya geldiğinizde, gerçekten ASP ile mesela Javascript arasındaki farkı bildiğiniz belli olsun. ASP bir Server-Side Script teknolojisidir. Internet'te istemci ile sunucu arasındaki çizginin sunucu tarafına Server-Side (Sunucu Tarafı), istemci tarafına da Client-Side (evet, doğru tahmin ettiniz: İstemci Tarafı) denir. Server-Side'da çalışan Script programları da "Server-Side Script" (Sunucu Tarafı Script'i) adını alır. Dolayısıyla şöyle bir sayfa yaparsanız (merhaba.htm), bu sayfada Client-Side Script teknolojisi kullanmış olursunuz: Kod: <HTML><HEAD><TITLE>JavaScript ile Tarih</TITLE><meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"><meta http-equiv="Content-Type" content="text/html; charset=windows-1254"></HEAD><BODY BGCOLOR=WHITE><H1>Merhaba Dünya</H1><H2>Bugün:</H2><H3><SCRIPT LANGUAGE=JAVASCRIPT><!--tarih = new Date();document.write(tarih);//--></SCRIPT>.</H3></BODY></HTML>
HTML sayfanıza <SCRIPT>..</SCRIPT> etiketleri arasına yerleştireceğiniz bu kodun çalışması için Server'ın hiçbir şey yapması gerekmez; kodu Browser çalıştıracak ve günün tarihini size (Türkçeleştirmediğiniz için İngilizce olarak) bildirecektir. Şimdi, bir de Server tarafında çalışan Script içeren sayfaya örnek verelim (merhaba2.asp). Bu kodu yazarken kapanan Script etiketinden sonra nokta olduğuna dikkat edin: Kod: <HTML><HEAD><TITLE>VBScript ile Tarih</TITLE><meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"><meta http-equiv="Content-Type" content="text/html; charset=windows-1254"></HEAD><BODY BGCOLOR=WHITE><H1>Merhaba Dünya</H1><H2>Bugün:</H2><H3><SCRIPT LANGUAGE=VBScript RUNAT=SERVER>Response.write(Date)</SCRIPT>.</H3></BODY></HTML>
Bu sayfada kullandığınız Script'i VBScript ile yazdığınızı farkettiniz. Yani? Bu HTML sayfası, Netscape'de görüntülenemez! Hayıır. Görüntülenir, çünkü Script'i Netscape değil, Server çalıştıracak. Bunu <SCRIPT> etiketinin içindeki "RUNAT" özelliği ile belirtiyoruz. ("Run," çalıştır; "at" ise "içinde, üzerinde" anl¤¤¤¤¤ gelir. "RUNAT" "...de çalıştır" gibi bir anlama sahiptir.) Burada RUNAT'in karşısına yazdığımız SERVER ifadesi ile, Script'in Browser'a gönderilmeden önce Server'da çalıştırılmasını sağlıyoruz; Server'a "Bu Script'i Server'da Çalıştır!" demiş oluyoruz.
Netscape bu sayfayı görüntüleyecektir; ama galiba bir terslik var. merhaba.asp ile merhaba2.asp'nin ekran görüntülerini ve kodlarını karşılaştırırsanız, birinde noktanın olması gereken yerde olduğu halde diğerinde noktanın yanlış yerde olduğunu görüyoruz. Oysa iki kodu da karşılaştırırsanız, ikisinde de nokta işareti, kodun bittiği yerde yer alıyor. Yukarıda ASP'nin icrasında HTML sayfa Server'a verilmeden önce ASP.DLL tarafından içindeki ASP kodlarının icra edildiğini söylemiştik. Nitekim, burada gördüğünüz gibi, ASP.DLL, HTML sayfayı içinde Server'ın çalıştırması gereken bölümle birlikte Server'a gönderdi; Server kendisine gelen dosyada kendi icra etmesi gereken (RUNAT=SERVER özelliği verilmiş olan Script'i) bölümü icra etti ve sonucu Browser'a aktardı. Yani, Server'ın çalıştırdığı Script'in sonucu sayfaya ASP'den sonra eklendi. Dolayısıyla, nokta, yanlış yerde kaldı. Bundan çıkartacağımız sonuç şu olacak: ASP sayfalarımıza, Browser, Server ve ASP.DLL tarafından çalıştırılacak kodları yerleştirirken, sırasına dikkat edeceğiz ve hangi sırada icra edilmelerini istiyorsak, o sırada koyacağız. Server ile ASP.DLL'in ilişkisi sadece Script dilini çalıştırmaktan ibaret değildir. ASP, istemciden gelen HTTP İstemi (Request) ve HTTP'ye giden Karşılık (Response) unsurlarından tutun, ActiveX Data Objects (ADO, AcvtiveX Veri Nesneleri) aracılığıyla, işletim sisteminin sunacağı veritabanına erişim imkanını ve işletim sisteminin sunduğu dosya yönetimine kadar bir çok imkanı kullanır. Bu "imkanlar" ASP'nin eline geçtiği anda "nesne" (Object) sayılırlar. Şimdi bu nesnelere biraz yakından bakabiliriz. | |
| | | AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:13 pm | |
| ODBC İşliyor Mu?
Kolları sıvayıp, ASP'ye kodu yazmaya başlamadan önce yapmamız gereken bir iş daha var: ASP sayfaları geliştirme ortamımızda, ODBC (Open Database Connectivity, Açık Veritabanı Bağlantısı) olması gerekir. Windows 98, 95 (OSR2) veya NT4.0 işletim sisteminizde Denetim Masası'nda ODBC, ODBC32 veya "ODBC Veri Kaynakları (32 Bit)" adlı bir simge görüyor olmalısınız. Bunu açın, Sistem DSN sekmesini ve açılan pencerede göreceğiniz Ekle düğmesini tıklayın. Buradaki Access, dBase, Excel, FoxPro, Paradox sürücüleri 4.00.3711.08 veya daha büyük mü? Değilse, Microsoft'un sitesinden (http://www.microsoft.com/data/download.htm) Microsoft Data Access Components (sürüm 2.1.1.3711.11 GA, 6.2 MB) güncelleme dosyasını indirin ve sisteminizi güncelleştirin. Windows 2000 kurulu sistemlerde bunu yapmaya gerek yok. Böylece sisteminiz, ilerde yazacağımız veri-yönlendirmeli Web uygulamaları için hazır hale gelmiş olacaktır. | |
| | | AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:14 pm | |
| ASP'nin Unsurları
ASP tasarımcısı olarak, biz gerçekte ASP'nin Nesneleri ile birşeyler yaparız; başka bir deyişle ASP kodlarımız bu nesnelere yöneliktir, onları kullanma ve onlardan bir sonuç alma veya onlara bir sonuç aktarma amacına yöneliktir. ASP'nin Nesneleri altı grupta toplanır: Application/Uygulama: Bir ASP sitesi, gerçekte bir Uygulama Programı olarak görülür. Bu, HTML/CGI geleneğine aşina tasarımcı için yeni bir kavram. ASP'yi icad edenler; bir ziyaretçi bir ASP sayfasından girerek, bir sitede surfing'e başladığında, onu bir programı işleten bilgisayar kullanıcısı olarak görüyorlar. Böylece, sitemiz, her ziyaretçinin karşısına çıktığında "bir program çalışmış" gibi sayılıyor. Bu yaklaşımın Web tasarımcısı olarak bize kazandırdığı imkanları ele alacağız. Session/Oturum: Bir ziyaretçi sitemize geldiğinde, hangi sayfamızı talep ederse etsin, bu bağlantı ASP açısından bir oturum sayılır. Her oturumun belirli bir süre devam eden özellikleri, değişkenleri ve değerleri vardır. Site tasarımında oturum özelliklerinden geniş ölçüde yararlanacağız. Request/Talep: Browser'dan Server'a ulaşan bütün bilgiler, Request (Talep) nesnesinin ögeleridir. Bu nesneyi kullanarak, istemciden gelen her türlü HTTP bilgisini kullanırız. Response/Karşılık: Server'dan ziyaretçinin bilgisayarına gönderdiğimiz bütün bilgiler, çerezler (cookie) ve başlıklar (Header) Response (Karşılık) nesnesinin ögeleridir. Bu nesneyi kullanarak ziyaretçiye göndermek istediklerimizi göndeririz. Server/Sunucu: ASP, Web Server programını bir nesne olarak ele alır ve onun bize sağladığı araçları ve imkanları kullanmamızı sağlar. ObjectContext/Nesne Bağlamı: Microsoft'un Transaction Server (MTS) programının sunduğu hizmetlere erişmemizi sağlar. MTS, ASP sayfaları içinden, uygulama programlarından yararlanmamızı sağlar. ASP uzmanlığınızı ileri düzeylere ulaştırdığınız zaman MTS ve ObjectContext nesnesinden yararlanabilirsiniz | |
| | | AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:14 pm | |
| ASP'nin Dili
ASP, bir teknolojidir. Kendi başına bir yazım kuralı yoktur. ASP tekniğini kullanabilmek için, ASP sayfasının talep edilmesi halinde ziyaretçiye gönderilmeden önce ASP.DLL'ye teslim edilmesi bu teknolojinin kullanılabilmesi için hemen hemen tek şarttır. Bunu, dosya uzantısını .asp yaparak sağlarız. ASP.DLL ise, dünyada mevcut bütün Script dilleri ile verilecek komutları kabul edebilir. Sadece ASP.DLL'e sayfadaki kodların hangi dilde olduğunu söylemeniz gerekir. Bunu, ASP sayfasının birinci satırında yaparız. Örneğin ASP'ye VBScript dilini kullanmasını belirtmek için bu satırı şöyle yazarız: Kod: <% @Language=VBScript %>
ASP sayfalarında genellikle VBScript, JavaScript ve JScript kullanılır. Ancak örneğin Perl dilinden türetilen PerlScript, PHP'den türetilen PHPScript de giderek ilgi çeken ASP dilleri arasına giriyor. Bir ASP sayfası içinde farklı Script dilleri kullanılabilir. Biz bu kitapçıkta örneklerimizi VBScript diliyle yazacağız. | |
| | | AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:14 pm | |
| ASP'nin Nesneleri
Masa, nesnedir. Notebook bilgisayarınız da nesnedir! Arkadaşınız da bir nesnedir. Tabiî bunu onun yüzüne karşı söylemeseniz, iyi olur. Her nesnenin özellikleri vardır. Masa serttir. Su, içine konulduğu nesnenin biçimi alır. ASP tekniğinde de amacımız nesnelerin özelliklerini kullanarak, ya bu özellikleri belirlemek, ya da değiştirmektir. Nesne Yönelimli Programlama (Object Oriented Programming, OOP) kavramını daha önce çok duymuş olmalısınız. Bir önceki bölümde fonksiyonlarla, Sub'larla, değişkenlerle tanıştık. Diyelim ki öğretmensiniz (ah, nerede o günler!) ve ASP programınızda her öğrencinin notunu veritabanına işleyen, veritabanından notları alarak geçeni-kalanı belirleyen veya öğrencilerle ilgili daha yapılması gereken bir çok işi yapan fonksiyonlarınız ve Sub'larınız var; bunların kullandığı bir çok değişkeniniz var: demek ki sizin ASP programınızda "öğrenci" diye bir nesneniz var. Ve siz bu nesneye yönelimli program yapmışsınız! Her "program nesnesi" iki unsura sahiptir: Özellik (Property, Attribute): Bir nesnenin özellikleri, onun değişkenleridir. "Öğrenci" nesnesinin "Öğrencinin Adı," "Notları," "Adresi" gibi değişkenleri, yani özellikleri vardır. Metod (Method): Bir nesnenin işlemesi, çalışması için, kısaca kendisinden bekleneni yerine getirebilmesi için çalışma yöntemlerine ihtiyacı vardır. Dolayısıyla bir ASP nesnesinin fonksiyonları, onun metodlarıdır. Fakat ASP'de nesneler sadece sizin öbekler halinde toplayacağınız fonksiyonlar ve değişkenlerden ibaret değildir. Bir kere, ASP programında kullandığınız Script dilinin getirdiği nesneler vardır. ASP sayfasını Javascript ile yazarsanız başka, VBScript ile yazarsanız başka dil nesnelerine sahip olursunuz; ancak her ikisinde de ortak olan "Scripting" nesneleri vardır. Bunlara birazdan ayrıntılı ele alacağız. Sonra Web Server'ın size hazır sunduğu nesneler vardır. Bunları daha sonraki bölümde göreceğiz. Ve tabiî, Browser'ın bir HTML sayfasının bölümlerini nesne sa¤¤¤¤¤ oluşturduğu nesneler vardır. Bunlara da diğer nesneleri ele alırken sırası geldikçe değineceğiz. (Tabiî bir de ASP programınızı Javascript ile yazarsanız, VBScript'ten farklı olarak kendisi nesne-yönelimli bir dil olan Javascript'in oluşturmanıza imkan vereceği nesneler vardır. Fakat bu nesneler, bu kitapçığın kapsamı dışında kalıyor.) Nesneler nasıl oluşmuş olursa olsunlar, daima size bir değer verirler: Kod: Nesne.Özellik = Değer
Bir nesnenin bir özelliğinin değeri, bizim için bir değişken değeri gibi önem taşır: Kod: If Nesne.Özellik > Değer Then ...
Nesnelerin özelliklerinin değerlerini değişkenlere atayabiliriz; ancak bunu yaparken Nesne'nin bir metoduna (fonksiyonu) göndermede bulunmamız ve gerekiyorsa bu fonksiyona kullanması için veri göndermeliyiz (bir fonksiyona kullanması için gönderilen değere argüman/argument denir): Kod: Degisken = Nesne.Metod(argüman1, argüman2...)
Daha sonra bu değişkeni istediğimiz yerde kullanırız. Bu kadar teoriden sonra bir örnek nesne oluşturursak, belki işin içinden daha kolay çıkabiliriz. Nesneler, diğer yararlarının yanı sıra, birbiri ile ilgili Sub'larımızı, fonksiyonlarımızı ve değişkenlerimizi birarada tutmamızı sağlar. Şimdi VBScript ile bir nesne oluşturabiliriz: Kod: <%Class OgrenciPublic Adi, Soyadi, NoFunction AdiSoyadiAdiSoyadi = Adi & " " & SoyadiEnd FunctionEnd Class %>
Bir dakika! Nesne (object) adını verdik fakat Class (sınıf) oluşturduk! Bu grubun Object..End Object olması gerekmiyor mu? Belki haklısınız; ama bir "sınıf" ancak VBScript tarafından kullanılmaya başlanırsa Nesne olur. Dolayısıyla biz "sınıf" yazarız; VBScript onu Nesne haline getirir. Peki, nesneyi oluşturduk; şimdi bunu nasıl kullanacağız. Çok kolay; önce bu nesneden yeni bir olgu (instance) oluşturacağız; sonra.. Ama önce bunu nasıl yapacağımızı yazalım: Kod: <%Dim Ogr1Set Ogr1 = New OgrenciOgr1.Adi = "Necip" Ogr1.Soyadi = "Fazıl"Ogr1.No = "181"Response.Write Ogr1.AdiSoyadi%>
Her nesne, New (yeni) komutu ile yeni bir değişkene bütün özelliklerini verir. Burada Ogr1 değişkeni, yukarıda oluşturduğumuz Ogrenci nesnesinin bütün özelliklerini kazanmış oluyor. Ogrenci nesnesinin ".Adi", ".Soyadi" ve ".No" özellikleri olması gerekir; nitekim Ogr1'e bu özelliklerini burada veriyoruz. Ogrenci nesnesinin bir de metodu (fonksiyonu) var; Ogr1 bunu da kazanabilir mi? Tabiî; hem kazanır, hem de bunu ziyaretçinin Browser penceresine yazdırabilir. Nesne kavramını kavramak zordur. Fakat yukarıdaki örnekte görüldüğü gibi, ASP sayfalarınızda nesne oluşturarak çalışmaya alıştığınız zaman bunun sağladığı kolaylıktan kolayca vazgeçmeyeceksiniz. | |
| | | AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:15 pm | |
| Hata (Err) Nesnesi
Hangi dille olursa olsun program yazarken hata yapmak kaçınılmaz bir kuraldır. Dolayısıyla kullandığınız programlama dili hatalarınızı kolayca yakalamanıza imkan vermelidir. ASP programlarınızda yazım yanlışlığı, olmayan değişkene gönderme gibi Script hatası olmaması gerekir. Bu tür hatalar, program Web'e gönderilmeden mutlaka ayıklanmalıdır. Fakat programcı olarak öngöremeyeceğiniz, ve çoğu Web ziyaretçisinden veya ziyaretçinin bilgisayarından kaynaklanan hata durumları olabilir. VBScript, şu standart komutla beklenmedik hata durumlarında programın yoluna devam etmesini sağlayabilir: Kod: <% On Error Resume Next %>
Bu komutla VBScript'e, hata halinde bir sonraki satırdan yoluna devam edecektir. Fakat oluşan hata, programın daha sonra vermesi beklenen sonucu vermesini önleyebilir. VBScript, Err (Hata) Nesnesi'nin bir çok özelliğinden özellikle hata sayısı (Number), tanımı (Description) ve kaynak (Source) özellikleri ile size hatanın ne olduğunu ve nereden kaynaklandığını söyleyebilir. Bu özellikleri kullanarak, programlarınızda, en azından geliştirme aşamasında, örneğin, Kod: If Err:Number = xx Then
şeklinde bir ifade ile hatanın türüne göre programın kazasız yürümesini sağlayabilirsiniz. Burada xx yerine 108 ayrı hata numarası yapabilirsiniz. Hata numaraları, Microsoft'un VBScript sitesinden edinilebilir. | |
| | | AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:15 pm | |
| Dosya Sistemi Nesnesi
Dosya Sistemi Nesnesi (FileSystemObject), ASP programının, Web Sunucusunun sabit disk sisteminde, sürücüleri, klasörleri ve dosyaları yönetmekte kullanacağımız temel araçtır. Burada, ne denli güçlü bir araçtan söz ettiğimizi hemen görebilmek için şu kodu yazalım ve dosya_yaz.asp adıyla kaydedelim: Kod: <% Option Explicit %><HTML><HEAD><TITLE>ASP ILE DOSYA YAZMA</TITLE><META http-equiv="content-type" content="text/html; charset=ISO-8859-9"><META http-equiv="Content-Type" content="text/html; charset=windows-1254"></HEAD><BODY><%Dim YaziFSO, yazSet YaziFSO = CreateObject("Scripting.FileSystemObject")Set yaz = YaziFSO.CreateTextFile("c:\yazi_deneme.txt",True)y az.WriteLine("Bu bir denemedir.")yaz.Close%><H2><CENTER>Bu Web sayfası sabit diske yazı yazdırır!!<BR>Şimdi C: sürücüsünde yazi_deneme.txt adlı bir dosya olması gerekir!<BR>Lütfen bakar mısınız?</H2></CENTER></BODY></HTML>
Kodumuzun Dim satırında iki değişken belirlediğimizi görüyorsunuz. Fakat bu iki değişkeni sistem nesnesi olan Scripting'in yeni bir olgusu olarak kullanacağımız için daha önce standart değişkenlere değer atadığımız gibi değil, fakat Set komutundan yararlanıyoruz, ve YaziFSO değişkeninde bir "Scripting.FileSystemObject" nesnesi oluşturulmasını sağlıyoruz. (ASP uzmanları arasında gelenek, nesne değeri tutan değişkenlere, ilgili nesnenin baş harflerini eklemektir. Böylece bir değişkenin adına bakarak, işlevini anlamak mümkün olur.) "yaz" değişkeni YaziFSO'da yeni bir olgusunu oluşturduğumuz FileSystemObject'in CreateTextFile (Düzyazı dosyası oluştur) metodunu kullanıyoruz; bu metod oluşturulacak dosyanın adını ve eğer bu dosya varsa üzerine yazılmasına izin veren True (doğru) veya buna izin vermeyen False (yanlış) kelimesini argüman olarak alır. "yaz" değişkeni şimdi kendisi bir metod kullanabilecek şekilde, FileSystemObject'in bir örneğidir; nitekim WriteLine metodu ile biraz önce oluşturulan dosyaya, argüman olarak verdiğimiz metni yazdırmaktadır. Bu kodu çalıştırdıktan sonra, sabit diskinize bakarsanız, düzyazı dosyasını göreceksiniz:
Bugüne kadar Web tekniği olarak Browser'da bir sayfayı görüntüleyebileceğimizi sanıyor idiysek, sistem nesneleri kullanarak çok daha farklı şeyler yapabileceğimizi görmüş olduk. Şimdi FileSystemObject'i daha yakından tanıyabiliriz. Bu nesne bize sabit diske erişme ve onun kaynaklarını kullanma imkanı verir. Bütün nesneler gibi kullanılabilmesi için önce bir değişkenin bünyesinde oluşturulması gerekir: Kod: <%Dim DosyaSistemiSet DosyaSistemi = CreateObject("Scripting.FileSystemObject")%>
Dosya Sistemi Nesnesi'nin 20'den fazla metodu vardır; fakat bunlardan önemlileri şöyle sıralanabilir: CopyFile (dosya kopyala), MoveFile (Dosya taşı), CopyFolder (klasör kopyala), MoveFolder (klasör taşı), CreateFolder (klasör oluştur), DeleteFile (dosya sil), DeleteFolder (klasör sil). Şimdi bunlardan birinin nasıl kullanılabileceğine bir örnek verelim: Kod: <%Dim DosyaSistemiSet DosyaSistemi = CreateObject("Scripting.FileSystemObject")DosyaSis temi.DeleteFile "c:\belgelerim\test.*"%>
Bu program ile "Belgelerim" klasöründeki "test" isimli bütün dosyaları silmiş olursunuz. (Bu programı çalıştırmadan önce bir kaç kez düşünmeniz, sanırım iyi olur; çünkü ASP yoluyla sildiğiniz dosyalar, Geri Dönüşüm Kutusu'na gitmez!) Daha az zararlı bir diğer örnek ise şöyle olabilir: Kod: <%Dim DosyaSistemiSet DosyaSistemi = CreateObject("Scripting.FileSystemObject")DosyaSis temi.CopyFile "c:\belgelerim\*.*", "c:\yedekler\"%>
Bu program "Belgelerim" dizinindeki bütün dosyaları "Yedekler" dizinine kopyalar. FileSystemObject'in sadece bir özelliği (Property) vardır: Drives (sürücüler). Fakat bu özellik, bir değil bir çok elemandan oluşan bir dizi-değişken gibi Kolleksiyon (Collection) sayılır. Neden? Çünkü bir Web Server'da birden çok sürücü bulunur. Her sürücü, bu kolleksiyonun üyesidir (FileSystem.Drives) ve her birinin sürücü harfi (.DriveLetter), disk adı (.VolumeName), byte olarak boş alanı (.FreeSpace) özellikleri vardır. suruculer.asp adıyla kaydedeceğiniz şu program, denediğiniz sistemin disk-disket-CD-ROM durumunu size listeleyecektir. Kod: <% Option Explicit %><HTML><HEAD><TITLE>ASP ILE SÜRÜCÜ KOLLEKSİYONU</TITLE><META http-equiv="content-type" content="text/html; charset=ISO-8859-9"><META http-equiv="Content-Type" content="text/html; charset=windows-1254"></HEAD><BODY><%Dim DosyaSistemi, Surucu, SuruculerSet DosyaSistemi = CreateObject("Scripting.FileSystemObject")Set Suruculer = DosyaSistemi.DrivesFor Each Surucu In Suruculer%><b>Sürücü:</b> <%=Surucu.DriveLetter%><br><% If Surucu.IsReady = True Then%><b>Disk Adı:</b> <%=Surucu.VolumeName%><br><b>Boş alan:</b> <%=Surucu.FreeSpace%><br><% Else %><i>Sürücü hazır değil!</i><br><% End IfNext %></BODY></HTML>
Burada özelliklerini ve metodlarını DosyaSistemi adlı değişkene atadığımız Dosya suistemi Nesnesi'nin sürücüler kolleksiyonunun dizi-değişken gibi olduğunu söylemiştik. For..Next akış kontrolü ile bu kolleksiyonun bütün üyelerinin sırayla sürücü harfi, ve hazırsa disk adı ve boş alanı bilgilerini alıyoruz. Drives kolleksiyonunun diğer özellikleri arasında toplam yüzey genişliği (TotalSize), sürücü türü (DriveType; 0=bilinmiyor; 1=çıkartılabilir; 2=sabit; 3=ağ; 4=CD-ROM; 5= RAM-Drive), ve dosya sistemi (FileSystem; FAT, NTFS, CDFS), kök dizin (RootFolder) vardır. Bu program bir PWS'da çalıştığında, şu sonucu alıyoruz:
VBScript açısından, her sürücüde klasörler (Folders) ve onların içinde alt-klasör (Subfolders) ve dosya (Files) kolleksiyonları bulunur. (Her klasörün içinde içinde bir alt-klasör nesnesi bulunduğu için ASP ile sonsuza kadar bütün klasörlere gönderme yapabilirsiniz. Klasör nesnesinin bazı özellikleri şunlardır: Adı (Name), oluşturulma (DateCreated), erişim (DateLastAccessed), değiştirme (DateLastModified) tarihleri, içindeki dosyalar ve alt-klasörlerdeki dosyalarla birlikte boyutu (Size), bulunduğu sürücü (Drive), içinde bulunduğu klasör (ParentFolder), alt-klasörler (SubFolders), kök dizin olup olmadığı (IsRoot). Klasör nesnesinin kopyala (Copy), sil (Delete) ve Taşı (Move) metodları vardır. Dosya (File) nesnesinin de ad, oluşturma, erişim, değiştirme, boyut, sürücü ve içinde bulunduğu sürücü özellikleri, ve kopyala, sil, taşı metodları vardır. PWS'ınızın bulunduğu sistemde, söz gelisi C: sürücüsünün kök dizinindeki bütün dosyaların listesini size veren bir kod şöyle yazılabilir (dosyalar.asp): Kod: <% Option Explicit %><HTML><HEAD><TITLE>ASP ILE KLASOR - DOSYA KOLLEKSİYONU</TITLE><META http-equiv="content-type" content="text/html; charset=ISO-8859-9"><META http-equiv="Content-Type" content="text/html; charset=windows-1254"></HEAD><BODY><%Dim DosyaSistemi, Surucu, Dosya, KokDizin, KokDosyalar, DosyaNesnesiDim SurucuHarfiSurucuHarfi = "C:"Set DosyaSistemi = CreateObject("Scripting.FileSystemObject")Set Surucu = DosyaSistemi.GetDrive(SurucuHarfi)Set KokDizin = Surucu.RootFolderSet KokDosyalar = KokDizin.FilesFor Each DosyaNesnesi In KokDosyalar%><%=DosyaNesnesi.Name%><br><% Next %></BODY></HTML>
Burada SurucuHarfi değişkenin değerini değistirerek, arzu ettiğiniz disk/disket veya CD-ROMa ulaşabilirsiniz. GetDrive metodu dikkatinizi çekmiş olmalı; bu metodla, VBScript, fiilen disk/disket sistemine erişir. | |
| | | AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:15 pm | |
| Metin (TextStream) Nesnesi
Dosya sistemi nesnesi bize disk sistemine, klasörlere ve dosyalara erişme imkanı verir ama yeni dosyaları oluşturmak veya mevcutlara ek yapmak için yeterli özellik ve metoddan yoksundur. Bunu TextSream nesnesi sağlar. Bilgisayar işletim sistemlerinin anası, Unix'e aşina iseniz, klavyeden sabit diske kadar bir bilgisayara girdi akımı bulunduğunu, bunlardan birinin de metinler olduğunu hatırlayacaksınız (Aşina değilseniz, şimdi oldunuz!). Bir işletim sistemi, metin dosyalarını okurken, yazarken bir metin akışı olur; TextStream nesnesinin adı da bunu anlatıyor: Metin Akımı. Web Server ve dolayısıyla ASP açısından sabit diske bir metin yazarken, veya sabit diskten bir metin okurken, bir metin akışı nesnesi oluşur. Bu nesnenin özellikleri ve metodlarını kullanarak, örneğin ziyaretçilerin sitemize bırakacakları form bilgilerini Web Server'ın sabit diskine yazdırabiliriz. Veya mevcut metinleri okuyabilir ve bunların içeriğini ziyaretçimize göndereceğimiz HTML sayfanın etiketlerinin içeriği olarak kullanabiliriz. Metin dosyası okumak ve yazmak disk sistemini ilgilendiren bir eylem olduğu için yine Scripting nesnelerinden FileSystemObject nesnesinden yararlanacağız; fakat bu kez değişik metodlar kullanacağız. | |
| | | AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:16 pm | |
| Metin Dosyası Oluşturma (CreateTextFile)
Aslında biraz önce, ASP nesnelerinin neler yapabileceğine örnek olarak yazıp dosya_yaz.asp adıyla kaydettiğimiz program, bir metin dosyasını yazdırma işlemiydi. Oradaki kodlara yeniden göz atarsanız, CreateTextFile (metin dosyası oluştur) metodunu yardıma çağırıyor ve bu metoda argüman olarak yeni metin dosyasının yolunu ve adını veriyorduk. Bu metod TextStream nesnesinindir; ve otomatik olarak bu nesnenin diğer metodlarını kullanmamızı sağlar. kullandığımız metodlar ise WriteLine (satır yaz: bir String'i sonuna yeni satır karakteri ko¤¤¤¤¤ dosyaya yazar) ve Close (kapat: açılan metin dosyasını kapatır). TextStream'in burada kullandığımız ikisinin dışında iki metodu daha vardır: Write (yaz): Bir String'i dosyaya yazdırır; satır sonuna yeni batır karakteri (Return kodu) koymaz. WriteBlankLines (boş satır yaz): Bir metin dosyasına argüman olarak vereceğiniz sayıda boş satır yazdırır. | |
| | | AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:16 pm | |
| Sunucu (Server) Nesneleri
Buraya kadar ele aldığımız nesneler bir anlamda bizim sadece tek tek sayfalarda yararlanacağımız araçları sağlıyor. Oysa ASP'yi diğer CGI teknolojilerinden ayıran başlıca özelliklerden biri tek tek Web sayfalarını sanki bir bilgisayar programının çeşitli pencereleri, diyalog kutuları, mesaj kutuları, girdi kutuları gibi, birarada bir "uygulama programı" olarak bağlayabilmesidir. Başka bir deyişle bize, ziyaretçinin sitemize bağlandığı ve ana sayfamızı açtığı andan itibaren sitemizin bir program bütünlüğünde çalışmasını sağlayacak araçlar gerekir. Bunu ancak Web Server'ın yardımıyla yapabiliriz. ASP sayfalarımızda kullanacağımız ikinci grup nesne, Sunucu Nesneleri'dir. Bu grupta tabiî önce Sunucu'nun kendisi yer alır; sonra ziyaretçi ile kurduğumuz ilişki gelir. Ziyaretçi ile ilişkimizi iki yönlü trafiğe benzetebilirsiniz: ondan bize gelen talepler, bizim ona karşılıklarımız. Ziyaretçiden bize gelen trafiğe neden "Talep" diyoruz? Ziyaretçi, Browser'ının URL hanesine yazdığı her adresle, veya formlardaki bir düğmeyi veya sayfalarımızdaki herhangi bir köprüyü tıklamakla, Server'a "Bana şunu göndersene!" demiş olur. Bu taleptir. Ziyaretçi taleplerinin tümü Talep Nesnesi (Request Object) olarak bir arada ele alınabilir. Server'ın bu taleplere verdiği karşılıklar, yani ziyaretçinin Browser'ına gönderdiği sayfalar, resimler, sesler, videolar ise karşılıktır ve ASP açısından Karşılık Nesnesi'ni (Response Object) oluşturur. Bu bölümde bu nesneleri daha yakından tanıyacağız. | |
| | | AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:16 pm | |
| Server Nesnesi
Web Server, ASP için bir nesnedir, ASP'nin bir çok işini bu nesnenin özellikleri ve metodları halleder. Server nesnesinin bir özelliği (ScriptTimeout) ve dört metodu (CreateObject, HTMLEncode, URLEncode, MapPath) vardır. Web Server çalıştığı bilgisayarın sizin siteniz adına yönetiminden sorumludur; dolayısıyla bu kadar az özellik ve metodu var diye bu nesneden çok yararlanmayacağımızı sanmayın. ActiveX ve COM bileşenlerini çalıştırmak Server'ın görevidir. ScriptTimeout Özelliği: Diyelim ki bir ASP Script'i ya bizim, ya ziyaretçinin, ya da Server'ın bir hatası üzünden sonsuz döngüye girdi! Döngünün durması için gerekli şart asla yerine gelmiyor ve Script bir türlü yapacağı işi yapıp, sonlandırmıyor. Bu durumlarda ziyaretçinin ve tabiî Server'ın sonsuza kadar beklemesi mümkün değil! Programın bir şekilde durdurulması gerekir. Bunu hemen hemen bütün Web server programlarının Script Timeout (Script süre sınırı) diyalog kutusuna bir değer girilerek yapılır. Öreğin MS-Internet Information Server için varsayılan Script Timeout süresi 90 saniyedir. Yani ISS, herhangi bir Script'in çalışıp-durmasını 90 saniye bekler; bu sürenin sonunda Script'in çalışması tamamlanmazsa ziyaretçiye arzu ettiği sayfanın veya unsurun bulunamadığını bildirir. Bu süreyi (Server'ın varsayılan değerinin altında) kısaltmak değilse bile uzatmak elimizdedir. Bunu ScriptTimeout özelliğini kullanarak yaparız. ASP sayfasının herhangi bir yerine örneğin şu kodu koymak yeter: Kod: <% Server.ScriptTimeout = 100 %>
Bu örneğe göre Server'ın varsayılan Script Timeout süresi 90 saniye ise 100 saniyeye çıkmış olur. Böyle bir şeyi neden yapmak isteyebiliriz? Script'iniz çok karmaşık veya başka bir Server'daki veritabanından veri çekiyor, olabilir. Gerçi bu anlamda 90 saniye bilgisayar milleti için bir asır anl¤¤¤¤¤ gelir, ama yine de durdurulmasaydı işini başarıyla tamamlayacak bir Script, bu sürenin kısalığı yüzünden Server tarafından durdurulabilir. ASP sayfalarınız çok karmaşıksa ve sürekli Timeout hatası veriyorsa, hata aramadan önce bu süreyi uzatabilirsiniz. CreateObject Metodu: İlk ASP kodunu yazdığımız andan beri bu metodu kullandığımızı görüyorsunuz. CreateObject (nesne oluştur) olmasa idi, dört mevsim birbirini izleyebilir, Dünya Güneş'in etrafında dönebilir miydi? Hiç sanmam. Fakat lütfen o CreateObject ile bu CreateObject'i birbirine karıştırmayın. Yukarıda kullandıklarımız Scripting nesnesinin bir metodu idi; bu Server nesnesine aittir. Diyelim ki sayfanızda reklam amaçlı banner grafiklerini belirli zaman aralığı ile veya ziyaretçiye gönderdiğiniz Cookie (çerez) bilgilerine göre değiştirmek istiyorsunuz. Bunun için diyelim ki MS-Web Server Programının AdRotator bileşininden yararlanacaksınız; şöyle bir kod işinizi görebilir: Kod: <% Set Reklam = Server.CreateObject ("MSWS.AdRotator")%><%= Reklam.GetAdvertisement("/reklamlar/buyukbanka.txt")%>
Burada GetAdvertisement, Server'ın AdRotator bileşininin bir metodudur. Server'ın CreateObject metodundan, veritabanına ulaşırken de yararlanacağız. MapPath (Yolu belirle) Metodu: Web Server açısından "kök dizin" (root directory) Server'ın bulunduğu bilgisayarın sabit diskinde, herhangi bir klasör olabilir. Örneğin IIS için bu varsayılan değer olarak "C:\inetbup\wwwroot" klasörüdür. Özellikle ASP ile "program niteliğinde siteler" yapmaya başladığımızda, sitenin ilgili bütün dosyalarının bulunduğu bir dizin için yol belirlemek isteyebiliriz. Bunu Server nesnesinin MapPath (Yolu belirle) metodu ile yapabiliriz: Kod: WebDizini = Server.MapPath("/benim_site")
Bu komutla WebDizini değişkenin değeri muhtemelen şöyle olacaktır: "C:\inetbup\wwwroot\benim_site\" Fakat bu metodun sadece böyle duragan biçimde kullanılması gerekmez; bazen sayfalarımızda ziyaretçi ile etkileşmenin sonucu olarak varsayılan Web dizinimizi değiştirmek isteyebiliriz. Sözgelimi biri Türkçe, diğeri İngilizce iki sitemiz varsa, ve ana sayfamızda ziyaretçi Türkçe'yi seçtiyse, o noktadan itibaren Web uygulamamız için Web kök-dizini, "/turkish/" olacak ve mesela resimlerimiz için verdiğimiz "/resimler/" dizini kök dizinde değil, "/turkish/resimler/" klasöründe aranacaktır. Web yolunu dinamik olarak, yani ziyaretçinin tercihine bağlı şekilde değiştirebilmek için, önce ziyaretçiden gelecek bilgileri nasıl kullanacağımıza, yani Request (talep) nesnesine değinmemiz gerekir. HTMLEncode, URLEncode: İçinde HTML açısından kod parçası veya özel işaret sayılan karakterler bulunan metinleri sayfamıza içerik olarak göndereceğimiz zaman Server'ın işaretleri aynen metin gibi göndermesini sağlamak için, örneğin: Kod: Server.HTMLEncode("Değisken1 < Değisken2")
yazarsak, ASP bu metni HTML kodu olarak yorumlamaz, metin olarak algılar. Internet'te bazen özellikle sayfa adresleri belirtilirken bazı değerlerin "URL Kodu" dediğimiz şekilde kodlanmış olarak gönderilmesi gerekir. Bu kodlama türünde boşlukların yerine + işareti konmuş olması şarttır. Bu tür bilgiler göndereceğimiz zaman: Kod: Server.URLEncode("kelime 1 kelime2 kelime3")
şeklindeki bir kod Bunu hemen şu şekle sokacaktır: kelime1+kelime2+kelime3 | |
| | | AxiSheyTan aktif üye
Mesaj Sayısı : 56 Yaş : 33 Ruh haLi : Kayıt tarihi : 19/08/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:17 pm | |
| ServerVariables (Server Değişkenleri)
Request nesnesinin bir diğer kolleksiyonu, bizim kendi Web Server'ımızın o anda çalışmakta olan ASP sayfası için oluşturduğu ortamın değişkenleridir. Bunların arasındaziyaretçinin Browser'ına ilişkin bilgiler de vardır. Önce þu kısa ASP sayfasını çalıştırarak kendi Server'ımızın şu andaki değişkenlerini görelim; sonra bunları ayrıntılı ele alalım (SerDeg.asp): Kod: <HTML><HEAD><TITLE>HTTP ServerDegişkenleri Kolleksiyonu</TITLE><meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"><meta http-equiv="Content-Type" content="text/html; charset=windows-1254"></HEAD><BODY BGCOLOR=white><CENTER><H2>HTTP Server Değişkenleri Kolleksiyonu</H2></CENTER><TABLE BORDER=1><TR><TD><B>Değişkenin adı</B></TD> <TD><B>Değeri</B></TD></TR><% For Each key in Request.ServerVariables %><TR><TD><% = key %></TD><TD><%If Request.ServerVariables(key) = "" ThenResponse.Write " " Else Response.Write Request.ServerVariables(key)End IfResponse.Write "</TD>"%></TR><% Next %></TABLE><p>Sizin Host'unuzun adı:<B> <%=Request.ServerVariables("HTTP_HOST")%></B></BODY></HTML>
Değişkenin adı Değeri ALL_HTTP:HTTP Header içinde yer alan bütün değişkenler ve değerleri. Header adlarının önünde "HTTP_" öneki vardır.
ALL_RAW HTTP:Header içinde yer alan bütün değişkenler ve değerleri. Header adları ve değerleri istemci Browser'ın verdiği şekilde gösterilir.
APPL_MD_PATH:Web Server'ın ISAPI.DLL dosyası için varsaydığı kök dizin
APPL_PHYSICAL_PATH:Web Server'ın varsaydığı kök dizinin gerçek yolu
AUTH_PASSWORD:Kullanıcı Web Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan parola
AUTH_TYPE:Kullanıcı Web Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan yetkilendirme yöntemi
AUTH_USER:Kullanıcı Web Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanıcı adı
CERT_COOKIE:Kullanıcı siteye bağlanmak için yetkilendirme sertifikası kullanıyorsa kendisine verilen kimlik (ID)
CERT_FLAGS:Sertifikanın varlığını gösteren bit değeri
CERT_ISSUER:Sertifika varsa veren kurum
CERT_KEYSIZE:Secure Socket Layers kullanılıyorsa, bağlantı için anahtar değeri
CERT_SECRETKEYSIZE:Özel anahtar değeri
CERT_¤¤¤¤¤¤NUMBER:Sertifika seri no.
CERT_SERVER_ISSUER:Sertifikayı veren merci
CERT_SERVER_SUBJECT:Server Sertifikasının "konu" alanı değeri
CERT_SUBJECT:İstemci Sertifikasının konu alanı değeri
CONTENT_LENGTH:İstemcinin gönderdiği bilgi yumağının boyutu
CONTENT_TYPE:Ziyaretçiden gelen bilgilerin GET veya POST metoduna göre edindiği tür
GATEWAY_INTERFACE:Web Server'ın ziyaretçi ile etkileşim arayüzünün adı ve sürümü. Genellikle: CGI/1.1
HTTPS:Ziyaretçi ile bağlantı güvenli ise ON, değilse OFF
HTTPS_KEYSIZE:Secure Sockets Layer için bağlantı anahtar sayısı
HTTPS_SECRETKEYSIZE:Özel Server sertifikasının gizli anahtar sayısı
HTTPS_SERVER_ISSUER:Özel Server sertifikasının veren merci
HTTPS_SERVER_SUBJECT:Özel Server sertifikasının konusu
INSTANCE_ID:Web Server'ın aynı anda kaç kere çalışmakta olduğu
INSTANCE_META_PATH:Şu anda çalışmakta olan Web Server'ın Meta yolu
LOCAL_ADDR:İstemcinin IP numarası
LOGON_USER:İstemci Windows NT sisteminde ise oturum açma adı
PATH_INFO:Çalışmakta olan ASP'nin göreli yolu ve adı
PATH_TRANSLATED:Çalışmakta olan ASP'nin gerçek yolu ve adı
QUERY_STRING:İstemcinin gönderdiği bilgi kümesi
REMOTE_ADDR:İstemcinin Host'unun (ISS'inin) IP'si
REMOTE_HOST:İstemcinin Host'unun (ISS'inin) adı
REMOTE_USER:İstemcinin gerçek adı
REQUEST_METHOD:İstemciden bilgi isteme yöntemi (GET veya POST)
SCRIPT_NAME:Çalışmakta olan ASP'nin adı
SERVER_NAME:Sunucu'nun adı
SERVER_PORT:Sunucuya bağlantının geldiği TCP kapı numarası
SERVER_PORT_SECURE:TCP kapısı güvenli ise 1, değilse 0
SERVER_PROTOCOL:Server'ın çalıştırdığı HTTP'nin sürümü
SERVER_SOFTWARE:Server programının adı ve sürümü
URL:Şu anda geçerli URL | |
| | | WhampiéR Admin
Mesaj Sayısı : 1106 Yaş : 33 Nerden : Menekshe^min kaLbinden... Ruh haLi : Kayıt tarihi : 29/07/08
| Konu: Geri: ..::Asp Nedir ve Temel Dersler::.. Salı Ağus. 19, 2008 1:43 pm | |
| | |
| | | | ..::Asp Nedir ve Temel Dersler::.. | |
|
Similar topics | |
|
| Bu forumun müsaadesi var: | Bu forumdaki mesajlara cevap veremezsiniz
| |
| |
| |
|