Asp ve Programcılık Temelleri

asp11Daha önce herhangi bir programlama dili deneyiminiz olmadıysa , HTML biliyorsanız fakat ASP nin ne olduğu hakkında hiçbir fikriniz yoksa yararlı olabilecek bir döküman.

GiriÅŸ

Asp, Php, C, C++, VB … Hangisi olursa olsun öğrenmeye çalışırken karşıma çıkan en büyük sorun anlatım sorunuydu.” Asp’ye giriÅŸ” tarzı makalelerde bile yeterince giriÅŸ seviyesinde bilgi verilmiyordu.ÖrneÄŸin daha deÄŸiÅŸkenin ne olduÄŸunu bilmediÄŸim halde yazıda “adında bir deÄŸiÅŸken tanımlıyoruz” tarzında okadar çok cümle vardıki bir süre sonra insan olmucak bu iÅŸ bile diyebiliyordu.

Asp’yle ilgili bir kitap aldığımda birkaç ÅŸeyi anlamama raÄŸmen Asp’nin ne iÅŸe yaradığını bile. anlayamamıştım.Bu yüzden bu yazıda gerçekten Asp’ye giriÅŸ yapıcaz.

 

Asp Öğrenmeden Önce Neye İhtiyacım Var?

Asp’yi öğrenmeye baÅŸlamadan önce gerekli birkaç ÅŸey var. Öncelikle Html’yi orta düzeyde bilmelisiniz.Çünkü Asp’yle sitemize resim bile ekleyemeyiz.Bunu Html ile yapıcaz.Html dışında temel olarak site yapmak için azda olsa Css (zorunlu deÄŸil) iÅŸimize oldukça yarayacaktır.Ayrıca server ve client mantığını temel olarak bilmeliyiz bunu basit olarak ileride anlatıcaz.

 

Neden Asp?

Böyle bir soru soruyorsanız Html’yi bildiÄŸinizi varsaymak zorundayım. Peki gerçekten neden Asp? Html ile önceden site yapmaya çalışmıssak farketmiÅŸizdir : Html gerçekten hiç pratik deÄŸil. Html yi kitap gibi düşünebiliriz. Her sayfası ayrı ayrı çizilmiÅŸ ve kitabı okuyan kiÅŸilerin sayfaları çevirmekten baÅŸka yapabilecekleri birÅŸey olmayan bir kitap.Asp ise siteye giren kiÅŸinin tamamen ihtiyaçlarına göre kendi kendini biçimlendiren bir sistem.

Örneğin Html ile bir site yaptınız. Üstte temel bir menü ve altta çeşitli yazılar var. 100 adet html sayfası var sitede ve menüde bir değişiklik yapmak zorunda kaldınız. Temel olarak 100 sayfayıda açıp değişitirmelisiniz.Tabiiki frame veya başka teknolojilerle bu sorunu aşabilirsiniz fakat aşamayacağınız başka sorunlar var.Üyelik sistemi gibi.Bu yüzden Asp (tercihe göre php yada başka bir dil) öğrenmek çok mantıklı olacaktır.

 

Server , Client?

Server temel olarak sitemizi internet üzerinde 24 saat yayınlayan açık bir bilgisayardır. Asp de ise bizim için önemli kısmı yazdığımız kodların server da derlenip yani gözle görülebilir hale getirilip siteye giren kiÅŸiye “tamamen Html” ÅŸeklinde göndermesidir.Yani Asp kodlarını sitenin kaynağına baktığımızda göremeyiz.Kısaca  client ise sitemize giren kiÅŸinin Pc sidir. Yani Html kodunun grafiklere çevrilip kullanıcıya browser yardımı ile gösterildiÄŸi yer.

 

Asp’nin Temelleri ve Html Arasındaki Farklar

Daha öncede belirttik Html’yi kitap olarak düşünelim. Sayfaları çevirmek için kullandığımız ÅŸeyler ise linkler. Yani linke tıklayınca herhangi bir sayfaya göndermek zorundayız sitemize giren kiÅŸiyi. Fakat Asp de böyle deÄŸil. 

Asp ile Html arasındaki temel fark birisinin server’da diÄŸerinin ise browserda yani siteye giren kiÅŸinin PC sinde çalışmasıdır. Peki bunun ne gereÄŸi olabilir? ÖrneÄŸin Asp ile bir site yaptık. Sitenin GiriÅŸinde dil soruluyor ve seçilen dil server a gidiyor. Server siteyi seçilen dile göre biçimlendirip tekrar kullanıcıya gönderiyor.Bunu Html ile yapamazmıyız? yaparız. Fakat şöyle düşünelim. Sitemize yeni bir dil eklemeye kalktığımızda 100lerce html sayfasını güncellemek zorunda kalabiliriz. Asp de ise bu durum farklı iÅŸliyor. Nasıl olduÄŸuna deÄŸincez.

 

Asp ve Veritabanları (Database)

Asp ile yapacağımız sitelerin neredeyse tamamında veritabanı kullanıcaz. Bu yüzden bir giriş yapalım dedik. Fakat tanımlaması zor olduğu için örnek göstermek daha mantıklı olacaktır.

 

KullanıcıAdı Şifre AdSoyad E-mail

——————————————————————————-

Ali05 Alii Ali Soylu ali@hotmail.com

Veli06 Velii Veli Soylu veli@hotmail.com

 

Yukarıda basit bir veritabanı örneği görüyoruz. Açıklamak gerekirse herhangi birşeyi gruplama olarak gösterebiliriz. Mesela bir bakkalımız var. En üstte Ad Soyad yanınada borç yazıp tam ortasından sayfanın altına kadar düz bir çizgi çekiyoruz ve borç yazdırmak isteyenlerin adını soyadını ve borcunu çizginin gerekli bölgesine koyuyoruz . Yeni kişiler borç yazdırdıkça listeye devam ediyoruz.Böylece ad soyadlar alt alta borçlar da yine alt alta duruyor ve aradığımızı rahatça bulmamızı sağlıyor. 

Sitelerdede durum böyle. Üstteki veritabanı örneÄŸi bir sitenin üye veritabanı olabilir. Peki bunu teknik anlamda nasıl yapabiliriz? İlk olarak bir veritabanı oluÅŸturup (tamamen baÅŸka bir konu) kullanıcı adı, ÅŸifre, ad soyad, email adlarında sütunlar yapıyoruz. Daha sonra sitemize bir form koyup aynı adlarda alanlar koyuyoruz. Alanları doldurduktan sonra gerekli tuÅŸla sitemiz veritabanımıza baÄŸlanıp veli06 adlı satırın altına yeni bir satır açıp doldurulan bilgileri yazıyor.Böylece sitemize üye olanları liste ÅŸeklinde tutabiliyoruz. Daha sonra sitemize koyacağımız bir “üye giriÅŸi” bölümüyle aynı ÅŸekilde veritabanına baÄŸlanıp üye giriÅŸi yaptırabiliriz. 

Örneğin üye girişi kısmına veli06 ve şifreyede velii yazdık. Giriş tamamlandığında ekranın en üstünde veritabanımızda o satıra denk gelen ad soyad değerini yazdırabiliriz. Bu durumda veli06 nın ad soyadı veritabanında gözüktüğü gibi veli soylu olacaktır.

Veritabanının en temel kullanılış şekli bu olabilir fakat birçok farklı iş yapabiliriz. İşte burda bizi 100lerce sayfayı güncellemekten kurtaran mantığıda anlatabiliriz.Sitemizin en üstüne bir kod yardımıyle veritabanından gerekli menü adlarını alıp yazdırabiliriz. 

 

Asp ve Kodlar

İlk önce anlamamız gereken şey asp ile ilgili en basit şey kodları öğrenmek olacaktır.Çünkü gerçekten gayet az sayıda kod mevcut (en azından genelde kullandıklarımız). Peki gerçekten karmaşık siteleri nasıl yapıyoruz? Yöntem bularak. Birkaç kodu gerekli şekilde kullandığımızda Asp ile yapabilceklerimizin bir sınırı yok.Kod örneklerinden önce mantıksal olarak birkaç asp programı yazalım.

Sitemizde haber sistemi olsun. Bir form sayesinde yeni haberleri veritabanına yazdıralım. Daha sonra ana sayfada en son eklenen 5 haber yazsın.Son olarak bu haberlerin altında tüm haberleri göster adında bir tuşla haberlerin tamamına bakabilelim.

İlk önce veritabanında “Haberin baÅŸlığı, içeriÄŸi ve ID” adlı 3 alan oluÅŸturalım.ID adlı alan yeni haber eklendikçe artsın. Yani siteye ilk eklenen haberin ID si 1 , ikinci eklenen 2 ve toplamda 13 haber olduÄŸunu düşünürsek son haberin ID si 13 olsun. Åžimdi kodumuzu yazalım:

 

—————————————————————————-

Veritabanına bağlan

Satırları , ID si en büyük olandan ID si en küçük olana göre sırala ve hepsini okunabilir hale getir (RECORDSET altta değincez)

5 kez parantez içindeki işlemi yap

(

Ekrana , okunabilir hale gelen listedeki haberin başlığı değerini yazdır

Bir satır aşağıya in ve haberin içeriğini yazdır

OKUNABİLİR hale gelmiş sıralamada bir satır aşağıya in

)

Ekranda bir satır aşağıya in ve tüm haberleri göster tuşu yap

Tuşa tıklanırsa okunabilir hale gelen satırlar bitene kadar parantez içindeki işlemi yap

(

Ekrana , okunabilir hale gelen listedeki haberin başlığı değerini yazdır

Bir satır aşağıya in ve haberin içeriğini yazdır

OKUNABİLİR hale gelmiş sıralamada bir satır aşağıya in

)

Veritabanı bağlantısını kapat

—————————————————————————-

 

Şimdi kodumuzu açıklayalım. 

İlk satırda veritabanına bağlanıyoruz. Daha sonra siteye, ID si en büyük olan yani en son eklenen haberden ilk eklenen habere kadar sıralama yapıp hafızada tutmasını söylüyoruz.Bu durumda hafızada 13 ten 1 e kadar bütün haberlerin başlığı ve içeriği oluyor.Önemli olan nokta 13 ten başlayıp 12,11,10 diye devam etmesi.

Daha sonra son 5 haberin görüntülenmesini istediğimiz için 5 kez oluşan listedeki başlığı ve içeriği yazıyoruz. Burda ise önemli olan nokta ekrana 5 kez yazdırdığımız haberlerin veritabanındaki değerlerin değil okunabilir hale getirdiğimiz listeyi yazdırmamız. Bu liste şöyle birşey olcaktır:

 

ID başlık içerik

———————————–

13 a a

12 a a

……aradaki kısımlar

2 a a

1 a a

 

Burda ID yi büyükten küçüğe sıraladığımız listeyi görüyoruz. Neden direkt veritabanından okumuyoruz gibi bir soru aklınıza gelebilir. Bunun nedeni gerekli ÅŸartlara göre listeleri oluÅŸturmamız. ÖrneÄŸin veritabanındaki sadece 18 yaşından büyük kiÅŸileri sıralamak isteseydik “sadece yaşı 18den büyük olan deÄŸerleri alt alta sırala” yapıcaktık.Bu listeye RecordSet diyoruz yeri gelmiÅŸken belirtelim.

Kodumuza devam edelim. Altta oluÅŸturulan “tüm haberleri göster” tuÅŸuna tıklandığında “RecordSetimizde” ilk satırla (13 ID li haber) baÅŸlayıp haberin baÅŸlığını ve içeriÄŸini yazdırarak satırlar bitene kadar yazdırıyoruz.

Evet temel olarak mantık bu fakat bu tür iÅŸlemleri genelde rakamlarla yapıcağımız için “toplama ve çıkarmayla nasıl forum yapabilirimki?” . Bunu tamamen kendiniz bulcaksınız.

 

Kodlara GiriÅŸ

Temel seviyede Asp kodlarına girebilcek kadar bilgimiz var şimdi kodlara gözatalım.

 

Öncelikle Asp kodları <% ile başlayıp %> ile biter. Yani kodlarımız:

 

<%

Asp Kodları…

%>

 

Şeklinde gözükür. Küçük bir kod yazalım.

 

<%

response.write “Merhaba Dünya. Nekadar Klasik”

%>

 

Bu koddaki response.write ekrana yazı yazdırmak için kullanılır. Bu kodu kaydedip çalıştırdığımızda ekranda browserın default boyutunda tırnak içindeki yazılar yazdırılır.Peki bu yazıya nasıl renk yada boyut verebiliriz? Bunun için ayrı bir Asp kodu yoktur. Yapmamız gereken:

 

response.write “<font color=red>Merhaba!</font>”

 

budur.Yani Html kodu kullanmamız gerekir. Resim ekleme yada table oluÅŸturmak içinde yapmamız gereken tam olarak aynı ÅŸeydir.Bu yüzden Asp nin bu iÅŸleri yapmadığını bilmemiz önemli. Peki Neden sadece Html kullanmıyoruz? Çünkü herzaman sadece “Merhaba!” yazmak yeterli olmayacaktır.İlerdeki örneklerde bunu görücez.

 

DeÄŸiÅŸkenler

Uzun zaman ne olduğunu kavramaya çalıştığım değişkeni anlatmaya çalışcam. Bakalım okadar zormuymuş?

DeÄŸiÅŸken i genelde anlatırken bir kap olarak düşünmemiz söylenir. En mantıklısıda bu zaten. DeÄŸiÅŸkenler herhangi bir deÄŸeri alabilen kalıplardır. DeÄŸiÅŸkenlerin bir adı birde deÄŸeri olur. ÖrneÄŸin “YaÅŸ” adında bir deÄŸiÅŸken olsun. Bu deÄŸiÅŸkenin deÄŸeri 10 , 1000, 23141 yada “Bilgisayar” olabilir. Ne iÅŸe yaradığını örnekle anlatalım.

 

<%

dim ad

dim soyad

dim yas

ad=”ali”

soyad=”soylu”

yas=”15″

response.write ad

%>

 

Bu kodda farklı olan ÅŸey “dim”. dim deÄŸiÅŸken tanımlamak için kullanılan koddur. dim den sonra gelen yazı ise deÄŸiÅŸkenin adıdır. Üstte 3 adet deÄŸiÅŸken tanımlıyoruz. Altta ise deÄŸiÅŸkenlere “deÄŸer” atıyoruz. Artık “ad” adlı deÄŸiÅŸkenin deÄŸeri “ali” dir.  En altta gördüğümüz “response.write ad” ekrana “ad” deÄŸiÅŸkenini yani “ali” yi ekrana yazdıracaktır. Burdaki önemli olan nokta deÄŸiÅŸkenleri yazdırırken tırnak içine almamız gerektiÄŸidir.

EÄŸer ” response.write “ad” ” yazsaydık ekrana “ad” yazıcaktı.Peki ad deÄŸiÅŸkenini nasıl renklendirebiliriz? SöylediÄŸimiz gibi tırnak içine alarak olmaz. Bu durumda yapmamız gereken :

response.write “<font color=red>”&ad&”</font>”

yazmaktır. Buradaki farklı ÅŸey & sembolüdür. Bu sembol yazıları birleÅŸtirmekte kullanılır. Yani html kodlarını tırnak içinde yazıp “ad” deÄŸiÅŸkenini tırnaÄŸa almadan ekrana kırmızı ÅŸekilde ali yazdırabiliyoruz.Daha karmaşık bir kod yazmak gerekirse:

 

<%

dim link

link=”default.asp”

response.write “<a href=”&link&”>”&”Linkimiz”&”</a>”

%>

 

Burada Linkimiz tuÅŸuna tıklandığında “link” adlı deÄŸiÅŸkenin deÄŸerine gidilcektir.

 

Konuların sonunda sorduğumuz klasik soruya geldik değişkenlere neden ihtiyacımız var? Çünkü kullanıcıdan alcağımız değerler için değişkenlere ihtiyacımız var. Örneğin:

Ekrana 5 adet tuÅŸ yazdıralım. Bunların adları 5 farklı renk olsun. Sitemiz seçilen rengi “renk” adlı bir deÄŸiÅŸkene atasın. Daha sonra ÅŸunu yazalım:

 

response.write “<font color=”&renk&”>Merhaba!</font>”

 

Burada kullanıcının seçtiği renkte ekrana Merhaba yazdırabiliriz. İşte bu yüzden değişkenlere ihtiyacımız var. Çünkü değişkenleri değiştirmeyi genelde sitemize giren kişiler yapıcaktır.

Daha gerçekçi bir örnek vermek gerekirse üyelik sistemi olan bir sitede veritabanından alınan ad soyadı bir değişkene atayıp ekranda istediğimiz yerlere yazdırabiliriz.Yada bir hesap makinesinde 2 adet textbox koyduktan sonra buraya girilen değerleri 2 değişkene atayıp seçilen işleme göre gerekli şeyler yapılabilir. 

 

Asp ile Html nin Birlikte Kullanımı

100 lerce sayfayı tek işlemle düzenleyebilceğimizi söylemiştik. Şimdi bu konuya değincez.

Öncelikle Html ile 2ye bölünmüş bir tablo yapalım

 

<table bgcolor=”white” width=”700″>

<TR><TD>

 

</TD></TR>

 

<TR><TD>

 

</TD></TR>

</table>

 

Bu tablonun üst kısmında veritabanından bağlanarak ana menüyü oluşturcaz. Üstten tıklanan menülere görede altta gerekli içerik oluşcak. Öncelikle yapmamız gereken 

 

<table bgcolor=”white” width=”700″>

<TR><TD>

<%

%>

</TD></TR>

 

<TR><TD>

<%

%>

</TD></TR>

</table>

 

Åžeklinde gerekli yerlere Asp kodlarını yerleÅŸtirmek. Daha sonra üstte “mantık” olarak şöyle bir kod yazıcaz

 

Veritabanına bağlan

RecordSet oluÅŸtur

Satırlar bitmedikçe menünün adını ve tıklanınca gidilceği yeri belirt

 

Burdaki gidilcek yer tamamen farklı bir durum. Veritabanında menünün adı ve gidilceÄŸi yer gibi 2 alan yaptıktan sonra menülere tıklanınca yeni bir sayfa açılmayacak. Sadece hangi tuÅŸa basıldığını belirtecek bir kısım url de belircek. ÖrneÄŸin eÄŸer ana sayfa tuÅŸuna basılmışsa menünün veritabanındaki “gidilceÄŸi yer” kısmı “default.asp?islem=anasayfa” olcaktır. (tabiiki deÄŸiÅŸebilir). Bu noktadan sonra table ın alt kısmına ÅŸu tür bir kod yazıcaz:

 

Url deki islem= den sonra gelen deÄŸeri al “sayfa” adlı deÄŸiÅŸkene ata

Eğer sayfanın değeri anasayfa ise parantez içindekileri yap

(

Ana sayfaya girilince olacak ÅŸeyler

)

Eğer sayfanın değeri iletisim ise parantez içindekileri yap

(

İletişime girilince yapılacak şeyler

)

 

Son kısım biraz karmaşık gelmiş olabilir fakat anlamamız gereken nokta Asp ile her farklı yazı için farklı sayfalar oluşturmamız gerekmediğidir. Üstteki örnekte veritabanına yeni bir menü başlığı ekleyip gidilceği yeri seçtiğimizde tek bir asp dosyasında 1000lerce farklı sayfayı gösterebiliriz. 

 

SONUÇ

Asp sadece işleri kolaylaştırmak yada siteyi güncelleştirmeye yaramaz. Birçok farklı işlevi vardır. Ekrana sadece tarihi yazdırmak için bile Asp kullanabiliriz. Aklımıza gelebilcek herşeyi yapmak için html den fazlasına ihtiyacımız var ve şuan itibariyle Asp.NET dışında (ki tamamen farklı bir konu) Php ile birlikte en iyi alternatifimiz Asp dir. Bu yazıda sadece olayın mantığına değindim umarım anlaşılır olmuştur.Hatamız olduysa affola :) . Kolay gelsin !

Kategoriler: ASP, Web Programlama

Tags: , , ,

Yorumlar

Yorum Yok

Yorumunuzu Ekleyin

Yorum eklemek için giris yapmalısınız.