aasspp..nneett ddeerrss İİÇÇeerrİİĞĞİİasp nedir? sunucu taraflı bir teknoloji olan asp,...

42
A A S S P P . . N N E E T T D D E E R R S S İ İ Ç Ç E E R R İ İ Ğ Ğ İ İ ASP.NET DERS ĠÇERĠĞĠ ............................................................................................................... 1 HAFTA - 1 ......................................................................................................................................... 3 HTML Nedir? ................................................................................................................................... 3 HTML avantajları ........................................................................................................................ 3 HTML dezavantajları .................................................................................................................. 3 Microsoft .NET nedir?................................................................................................................... 3 ASP Nedir? ....................................................................................................................................... 4 ASP Nasıl ÇalıĢır?............................................................................................................................ 4 Avantajları Nelerdir? ................................................................................................................. 4 Dezavantajları .............................................................................................................................. 9 HAFTA - 2 ...................................................................................................................................... 10 Visual Studio 2008........................................................................................................................ 10 ASP.NET Kontrolleri..................................................................................................................... 12 Sayfalar Arası Veri Aktarımı ..................................................................................................... 13 View State .................................................................................................................................. 14 Control State ............................................................................................................................. 15 Hidden Fields ............................................................................................................................. 15 Cookies (Çerezler)..................................................................................................................... 16 HAFTA - 3 ...................................................................................................................................... 17 QueryStrings ............................................................................................................................. 17 Application/Uygulama............................................................................................................... 17 Session/Oturum ........................................................................................................................ 18 HAFTA - 4 ...................................................................................................................................... 19 ASP.NET Kavramlar ...................................................................................................................... 19 Request/Talep ............................................................................................................................ 19 Response/KarĢılık ...................................................................................................................... 21 Web User Control ......................................................................................................................... 22 HAFTA - 5 ...................................................................................................................................... 23 Master Page.................................................................................................................................... 23 Örnek Site Tasarımı ..................................................................................................................... 24

Upload: others

Post on 05-Sep-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

AAASSSPPP...NNNEEETTT DDDEEERRRSSS İİİÇÇÇEEERRRİİİĞĞĞİİİ ASP.NET DERS ĠÇERĠĞĠ ............................................................................................................... 1

HAFTA - 1 ......................................................................................................................................... 3

HTML Nedir? ................................................................................................................................... 3

HTML avantajları ........................................................................................................................ 3

HTML dezavantajları .................................................................................................................. 3

Microsoft .NET nedir? ................................................................................................................... 3

ASP Nedir? ....................................................................................................................................... 4

ASP Nasıl ÇalıĢır? ............................................................................................................................ 4

Avantajları Nelerdir? ................................................................................................................. 4

Dezavantajları .............................................................................................................................. 9

HAFTA - 2 ...................................................................................................................................... 10

Visual Studio 2008........................................................................................................................ 10

ASP.NET Kontrolleri..................................................................................................................... 12

Sayfalar Arası Veri Aktarımı ..................................................................................................... 13

View State .................................................................................................................................. 14

Control State ............................................................................................................................. 15

Hidden Fields ............................................................................................................................. 15

Cookies (Çerezler) ..................................................................................................................... 16

HAFTA - 3 ...................................................................................................................................... 17

QueryStrings ............................................................................................................................. 17

Application/Uygulama ............................................................................................................... 17

Session/Oturum ........................................................................................................................ 18

HAFTA - 4 ...................................................................................................................................... 19

ASP.NET Kavramlar ...................................................................................................................... 19

Request/Talep ............................................................................................................................ 19

Response/KarĢılık ...................................................................................................................... 21

Web User Control ......................................................................................................................... 22

HAFTA - 5 ...................................................................................................................................... 23

Master Page .................................................................................................................................... 23

Örnek Site Tasarımı ..................................................................................................................... 24

Page 2: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

HAFTA - 6 ...................................................................................................................................... 26

Yeni Üyelik Formu Tasarımı ........................................................................................................ 26

Validation Kontrolleri ................................................................................................................... 27

Required Field Validator .......................................................................................................... 27

Range Validator .......................................................................................................................... 27

Reguler Expression Validator ................................................................................................. 27

Compare Validator ..................................................................................................................... 27

Yeni Üyelik BaĢvurusu .................................................................................................................. 28

Üye GiriĢ Sistemi .......................................................................................................................... 28

HAFTA - 7 ...................................................................................................................................... 31

HAFTA - 8 ...................................................................................................................................... 40

HAFTA - 9 ...................................................................................................................................... 41

HAFTA - 10..................................................................................................................................... 42

Page 3: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

HHHAAAFFFTTTAAA --- 111 HTML çalışma prensibi, Avantajları, dezavantajları

Net framework nedir?

Asp nedir? Avantajları, dezavantajları

ASP (Active server pages / Aktif Sunucu Sayfaları)

ASP nasıl çalışır?

HTML Nedir?

Web sayfalarının büyük çoğunluğu HTML içeren metin tabanlı sayfalar olarak

hazırlanmaktadır. Bu sayfalar istemci tarafında çalıĢtığı için kaynak kodlar kullanıcı

tarafından görülmektedir.

İşlem basamakları

1. Web sunucu istekte bulunulan adresin dosya uzantısından dosyanın bir html

dosyası olduğunu algılar.

2. HTML dosya sabit diskten okunarak istemciye gönderilir.

3. Ġstemcideki web tarayıcı dosyayı yorumlar ve sonucu gösterir.

HTML avantajları

1. Tüm tarayıcılarda düzgün bir Ģekilde gösterilebilir.

2. Her istek hızlı gerçekleĢtirilir ve en az düzeyde kaynak kullanılır.

3. Öğrenmek kolaydır.

HTML dezavantajları

1. Çok etkileĢimli değildir.

2. Tasarımları düzenlenmesi ve kontrolü zordur.

3. Çok sayıda sayfa içeren siteler için kullanıĢlı değildir.

4. Hızlı değiĢen içerik ve kiĢiselleĢtirmeler için kullanıĢlı değildir.

Microsoft .NET nedir?

Microsoft .NET insanların, bilginin, sistemlerin ve cihazların iletiĢimini sağlayan bir

platformdur. Ġstemci ve sunucu uygulamaların yanı sıra geliĢtirme araçlarını da

kapsamaktadır. Bu oluĢum içerisinde aynı zamanda:

Web tabanlı uygulamaların, web servislerinin ve her türlü uygulamanın geliĢtirilip

çalıĢtırılabildiği bir platform olan .NET Framework de bulunmaktadır. .NET Framework

ile uygulamalar iletiĢim standartlarına (SOAP, XML, HTTP vb) uygun olarak

geliĢtirilebilmektedir.

Page 4: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Visual Studio .NET, entegre geliĢtirme ortamlarına (Integrated Development

Environment - IDE ) ve araçlara sahiptir. Bu araçlar sayesinde .NET Framework ile

uygulama geliĢtirme daha kolay hale gelmekte ve verimlilik maksimum düzeye ulaĢmaktadır

.NET Framework nedir?

Microsoft .NET Framework, uygulamaların ve web servislerinin inĢa edilebildiği (build),

yayımının yapılabildiği (deploy) ve çalıĢtırılabildiği (run) bir platformdur.

"Build - Deploy - Run" .NET Framework platformu için üç anahtar kelimedir. Verimliliği

yüksek, standartlara uygun ve çoklu dil desteği bulunan bir platformdur. Internet ölçekli

uygulamaların operasyonu ve yayımlanması için karĢımıza çıkan zorluklar .NET

Framework'ün sağladığı servisler sayesinde rahatlıkla aĢılabilmektedir. .NET Framework

iki temel bölümden oluĢmaktadır: Common Lanuguage Runtime, HiyerarĢik düzendeki sınıf

kütüphanesi.

.NET Framework:

20 den fazla programlama diline destek vermekte, uygulama geliĢtiricilerin iĢ mantığı

(business logic) içeren kod kısmına yoğunlaĢmalarını sağlamakta, güvenli, sağlam, yüksek

performanslı uygulamaların geliĢtirilebilmesini sağlamaktadır. Eskiye göre; geliĢtirme,

yayımlama ve yönetimin çok daha kolay olduğu bir platformdur.

ASP Nedir?

Sunucu taraflı bir teknoloji olan ASP, 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 Nasıl Çalışır?

Tarayıcıya açmasını istediğiniz dosyanın adresini yazıp çağırdığımızda (Sunucu)

kendisinden icra etmesini istediğiniz dosyayı arar bulur ve eğer bulursa, bu dosyayı hemen

"asp.dll" adlı bir programa iletir. asp.dll'de aldığı bu dosyayı hemen yorumlamaz. "Global.

asa" adlı dosyanın çalıĢıp çalıĢmadığını kontrol eder.

Asp.dll önce gelen dosyada hangi script dilinin kullanıldığına bakar. Ve buna göre

kendini hazırlar. Asp.dll sonra bu derlediği bilgileri, tamamen asp kodlarından ayrılmıĢ,

temiz bir halde browser'a gönderir. Bizde böylece sadece HTML kodlarını görürüz.

Avantajları Nelerdir?

ASP+, daha önce kullanılan Web geliĢtirme (ASP, JSP gibi) modellerine göre aĢağıda

listelenen birçok önemli avantajı sağlamaktadır:

Page 5: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

1) Geliştirilmiş Performans

ASP+ sayfaları, sunucu üzerinde çalıĢtırılan NGWS çalıĢtırıcısı kodlarıdır. Yorumlama

temeline göre çalıĢan daha öncekilerle (ASP gibi) karĢılaĢtırıldığında, erken bağdaĢtırma

(early binding), tam zamanında derleme (just-in-time compilation) ve doğal iyileme (native

optimization) ve tamponlama hizmetleri (caching services) gibi avantajlar sağlamaktadır.

Yukarıda anılan bu özellikler, geliĢtiriciler için daha kod yazmaya baĢlamadan önce sağlanan

çarpıcı performans iyileĢtirmeleridir.

2) Üstün Nitelikli Araç Desteği

ASP+ çatısı, geliĢtirme ortamıyla bütünleĢtirilmiĢ olan Visual Studio ile sunulan zengin

bir araç takımı ve tasarımcısı ile tamamlanmıĢtır. WYSIWYG düzenleme (editing), sürükle-

bırak tarzı sunucu denetimleri (server controls) ve otomatik dağıtım (deployment) bu güçlü

araçların sağlamıĢ olduğu özelliklerin yalnızca birkaç tanesinden bazılarıdır.

3) Güç ve Esneklik

ASP+, NGWS çalıĢtırıcısı üzerine temellendirildiğinden, bu platformun tüm esneklik ve

gücü Web uygulama geliĢtiricisi tarafından kullanılabilir durumdadır. NGWS çalıĢtırıcısının

Temel Sınıf Kütüphaneleri (Base Class libraries), iletim (messaging) ve veri eriĢim (data

access) çözümleri, benzeri olmayan bir biçimde Web"ten eriĢilebilir durumdadır. ASP+,

ayrıca dile bağımlı değildir, Ģöyle ki, geliĢtiriciler uygulamalarında en uygun olan dili seçerek

kodlama yapabilir. Hatta uygulamaların değiĢik bölümleri değiĢik dillerde yazılarak karma

programlama avantajlarından yararlanmak söz konusudur. Dahası, ASP+"a geçiĢ söz konusu

olduğunda, hali hazır kullanılmakta olan COM tabanlı uygulamalara yapılan yatırımlar NGWS

çalıĢtırıcısının karĢılıklı iĢleyebilirlik (interoperability) desteğiyle ile garanti altına

alınmaktadır.

4) Basitlik

ASP+, basit form bilgileri gönderiminden, kimlik doğrulama, kullanıcı tanıma, uygulama

dağıtımı ve site yapılandırmaya kadar tüm genel görevleri yapmayı son derece

basitleĢtirmektedir. Örneğin, ASP+ Sayfa Anaçatısı, uygulama mantığı, olay eldesi ve sunum

(veya görüntüleme) kodlarının tıpkı VB-benzeri form iĢleme modelinde olduğu gibi net

Ģekilde ayrılmasını sağlayarak daha kolay okunabilir ve yönetilebilir kullanıcı arayüzleri

oluĢturulmasını mümkün kılmaktadır. NGWS çalıĢtırıcısı ayrıca otomatik referans sayımı ve

çöp toplama gibi yönetilebilen kod servisleri ile de geliĢtirme iĢlemini basitleĢtirmektedir.

5) Yönetilebilirlik

ASP+, metin-tabanlı ve hiyerarĢik bir yapılandırma sistemi kullanır. Böylelikle sunucu

ortamı ve Web uygulamasına özel ayarların yapılması son derece basitleĢtirilmiĢtir. Çünkü

yapılandırma bilgisi düz metin olarak depolanır, yeni ayarlar yerel yönetim araçlarını

kullanmaksızın basit bir metin iĢlemci aracılığıyla yapılabilir. "Sıfır Yerel Yönetim" filozofisi

ASP+ uygulamalarının dağıtımını oldukça basitleĢtirir. Bir ASP+ uygulaması, çok basit bir

Page 6: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

biçimde gerekli dosyaların sunucuya kopyalanması Ģeklinde dağıtılır. Sunucuyu yeniden

baĢlatma veya derlenmiĢ kodun değiĢtirilmesi gibi iĢlemlere gerek yoktur.

6) Ölçeklenebilirlik ve Elde Edilebilirlik

ASP+, ölçeklenebilirlik düĢünülerek tasarlanmıĢtır. Bu nedenle, kümelenmiĢ ve çok-

iĢlemcili ortamlarda performansı iyileĢtirmek üzere özel olarak tasarlanmıĢ niteliklere

sahiptir. Dahası, iĢlemler ASP+, çalıĢtırıcı (runtime) tarafından yakından izlenir ve yönetilir.

Böylece yanlıĢ davranan bir iĢlem (leaks, deadlock) varsa onun yerine uygulamanın istemleri

devamlı Ģekilde yanıtlamasına yardım eden yeni bir iĢlem baĢlatılır.

7) İsteğe Bağlı Biçimlendirme ve Uzatılabilirlik

ASP+, geliĢtiricilerin uygun gördüğü yerlerde kodlarına takı ("plug-in") yapmalarına izin

veren iyi-faktörlü bir mimari sunmaktadır. Gerçekten de, ASP+ çalıĢtırıcısının herhangi bir

alt bileĢenini kendi yazdığınız herhangi bir bileĢenle zenginleĢtirebilir veya

değiĢtirebilirsiniz. Ġsteğe bağlı doğrulama veya durum (state) servislerinin uygulanması

hiçbir zaman olmadığından daha kolay hale getirilmiĢtir

8) Programlama Dilinde Bağımsızlık

ASP.NET programlama dillerimden bağımsızdır. ASP.NET web yazılımları

geliĢtirebilmek için 20 programlama dili ve fazlasını kullanabiliriz, örneğin, VB.NET, C#,

JScript.NET, C++ with Managed Extensions, COBOL.NET, Perl.NET.

9) Derlenmiş Kod

Bildiğimiz gibi asp scripting dilleriyle çalıĢıyor. Fakat ASP.NET derlenmiĢ kod ve güçlü

tipli dillerle çalıĢıyor, yani gerçek programlama dilleriyle. ASP.NET bu nedenle gerçek veri

tiplerini kullanıyor örneğin integers ve strings.

ASP.NET de kullanılan programlama dilleri daha iyi olağanüstü durum iĢleme gücüne

sahiptirler. ASP.NET içerisinde try … catch … finally deyimleri ile olağanüstü durum iĢleme

imkanına sahibiz

10) Sürükle & Bırak ve Olay Bazlı Programlama

Eğer Visual Basic kullandıysanız, bilirsiniz ki VB’nin en güzel taraflarından birisi

sürükle ve bırak objeleri sistemi ve olay bazlı programlama yani click, doubleclick,

textchange gibi. ASP.NET bu özellikleri WEB Formlarıyla aynı Ģekilde kullanabilirisiniz.

VB’de nasıl program geliĢtiriyorsanız, ASP.NET Web Formları da yani fonksiyonelliği

sağlıyor. ASP.NET içerisinde gerçekten çok iyi dizayn edilmiĢ ve çok sayıda HTML

kontrolleri vardır. Hemen hemen bir ASP.NET sayfasında bulunan bütün HTML kontrolleri

Visual Basic, C#, C++ kodları ile kontrol edilebilir. ASP.NET buna ek olarak yeni nesneye

dayalı programlamayı destekleyen, girdi kontrolleri, programlanabilir listbox’lari, yeni

doğrulama kontrolleri (validation controls). ASP.NET içerisinde örneğin DataGrid, DataList

kontrolleri olup bu kontroller web yazılım geliĢtiricisinin hayatini çok kolaylaĢtırmaktadır

Page 7: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

11) Mobile Programlama Desteği

ASP.NET ile sadece web yazılımları değil ayrıca mobil telefonları ve PDA’lar (Palm,

PocketPC’s, RIM devices, etc) içinde yazılım geliĢtirebilirsiniz. ASP.NET de mobil aletleri

için WML (Wireless Markup Language) veya HTML 3.2 (Hyper Text Markup Language) veya

cHTML (Compact Hyper Text Markup Language) of I-mode aletlerini destek sağlar.

ASP.NET mobil aletin kullandığı protokolü otomatik olarak belirler ve ona göre sonucu geri

döndürür.

12) Bağlantısız Veri Erişimi

Asp ve ADO nun en önemli sorunlarından birisi ADO her zaman veritabanına canlı

bağlantıyı tutar. Buda asp sayfalarının çalıĢtırılmasını önemli ölçüde yavaĢlatır. ADO.NET

bağlantısız veri eriĢimini sağlayan sistemi bizim kullanımımıza sunar.

13) Session state

Asp session değiĢkenleri desteği çok sınırlıdır ve birden fazla web server dan oluĢan

sistemde session değiĢkenlerini hiç desteklemez. ASP.NET de ise olay tamamen değiĢiyor,

birçok session depolama metodunu destekler örneğin In-Process (asp ile ayni), out-of-

process (session durumu baĢka bir bilgisayardaki Windows Servis ile sağlanır) ve SQL

Server’da. Out-of-process ve SQL Server seçenekleri web form desteği sağlar.

14) Güvenlik Desteği

Asp sadece IIS authentication metodlarını desteklerken ASP.NET daha geniĢ güvenlik

sistemini destekliyor örneğin IIS/Windows doğrulama sistemlerinden Basic doğrulama,

Digest doğrulama, Integrated Windows doğrulama, Form bazlı doğrulama ve Microsoft

Passport doğrulama. ASP.NET içerisinde yeni olarak Windows kullanıcı doğrulama (windows

authentication) sistemine ek olarak form bazlı kullanıcı doğrulama (forms-based user

authentication) sistemi geliĢtirilmiĢtir. Bu yeni sistemde çerez yönetimi (cookie

management) ve otomatik olarak doğrulanmayan kullanıcıların baĢka bir web sayfasına

gönderilmesi (automatic redirecting of unauthorized logins) gibi güzel özellikler

eklenmiĢtir. Ġzlemek, Debug, ve Bellekleme Desteği (Tracing, debugging and caching

support) asp sisteminde kodu izlemek ve BUG’lari bulmak bir derttir. Fakat ASP.NET

içerisinde bu sistem çok daha geliĢtirilmiĢ, adım adım debug olayı ve diğer trace ve debug

metotlarını desteklemektedir. ASP.NET bunlara ek olarak mükemmel bellekleme (caching

API) sağlamaktadır. Verileri bellekleme sistem output caching, data caching, dependent

caching ve fragment caching metodlarını destekler.

15) XML Bazlı Konfigürasyon

Asp içerisinde ise konfigürasyon bilgileri çok değiĢik yerlerde saklanıyordu. Örneğin,

IIS bilgileri IIS ****base (registry) de saklanmaktadır. Eğer COM/ COM+ bileĢenlerini

kullanıyorsanız, COM ve COM+ bileĢenlerinin bütün bilgileri registry ve COM+ Catalog da

saklanır. ASP.NET konfigürasyonu metin dosyaları ile yapılır. Bu metin dosyaları XML

dosyalarıdır. ASP.NET de XML ayrı bir önem kazanmıĢtır. ASP.NET de çalıĢan programı

Page 8: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

kesmeden bu konfigürasyon dosyaları değiĢtirilebilir. ASP.NET bunu arka planda,

kullanıcıdan saklayarak halleder. Yeni bir web isteği geldiğinde ASP.NET worker process

(çalıĢan iĢlemci) yeni konfigürasyonla isleme devam eder.

16) XCopy Kurulum

COM bileĢenlerinden farklı olarak .NET bileĢenleri Windows registry’e kayıt

edilmesine gerek yoktur. Yapmamız gereken tek Ģey bileĢeni derlemek, ASP.NET yazılımının

bulunduğu klasörde BIN isimli bir klasöre ekledikten sonra bu derlediğimiz bileĢeni

kopyalamaktır. Gördüğünüz gibi artık registry ile uğraĢmak yok. Bu gerçekten Microsoft’un

uzun zamandır yapması gereken bir değiĢiklik idi.

17) Hosting Seçenekleri

Asp bir ISAPI programı olup IIS e bağlıdır.Buna karsın, ASP.NET ise .NET framework

üzerinde çalıĢır, böylece ASP.NET sayfaları bu nedenle IIS dıĢındaki web serverları

tarafından da sunulabilecektir.

18) Daha hızlı web uygulamaları

ASP.NET derlenmiĢ kod ve saklanma iĢlemi ile hız kazanıyor. Daha önceki ASP

sürümlerinde bir kullanıcı web sitesine girdiği zaman bilgisayar üzerinde anlık derlemeler

yapılırdı ve bu hız kaybına neden olurdu. Artık ASP.NET ile hazırlanmıĢ bir kod, bir

ziyaretçi tarafından hiçbir zaman ziyaret edilmese bile derleniyor. Saklama iĢlemiyle de

hafızaya bilgi depolanıp, bu sayede kullanıcılara verilerin daha hızlı yollanması

sağlanabiliyor.

ASP.NET ile programcılar sayfalarını her kullanımda yeniden aratmak yerine bir

kısmını "caching" yani tamponlama iĢlemi sayesinde daha hızlı eriĢilebilir hale

getirebiliyorlar. Bir diğer değiĢiklik ise ASP.NET ile veritabanındaki belirli verilerin

saklanabilir hale getirilebilmesi. Bu sayede çok değiĢmeyen bir veritabanını her seferinde

tekrar yüklenmek yerine, hızlı eriĢilebilir forma sokulmuĢ oluyor.

19) Güçlü veritabanı fonksiyonları

ASP gibi ASP.NET de programcıların veri tabanlarıyla etkileĢimli çalıĢabilen web

uygulamaları yapabilmesine izin veriyor. ASP.NET"in asıl avantajlı bir çok programlama

aracına imkan veren Nesne Merkezli (Object Oriented) programlama ile çalıĢması. Bu

sayede daha fonksiyonel ve daha hızlı tasarıma imkân sağlıyor.

20) Hafıza sızıntısı ve çökme koruması

ASP.NET teki en çok beğenilen yeniliklerin baĢında hafıza sızıntısı ve çökme koruması

özellikleri geliyor. Özellikle hafıza sızıntısı, çoğu kullanıcı tarafından pek bilinen bir konu

değilken, sistem yöneticilerini sıkıntıya sokan durumlardan biridir. ASP.NET ile bu hatalar

otomatik olarak düzeltilerek, kullanıcıların her zaman web sitesine ulaĢabilmesi sağlanıyor.

Page 9: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

21) Çoklu dil desteği

Programcılar artık 25"ten fazla .NET dili ile ASP.NET"i kullanabiliyorlar. Bu dillerden

bazıları VB.NET, C# ve Jscript NET. GeniĢ dil desteği sayesinde birçok programcı web

uygulamalarını kolayca hizmete sunabiliyor.

22) .NET"in parçası olmak

.NET çatısı 3400"den fazla sınıftan oluĢan bir yapıya sahip, ASP.NET de .NET"in bir

parçası olduğu için neredeyse web uygulaması olarak yapılamayacak hiçbir Ģey yokmuĢ gibi

gözüküyor.

23) Programlar ve HTML artık aynı sayfada değil

Önceki sürüm ASP’lerde göze çarpan sorunlardan biri HTML sayfasında

programlamanın da görünmesiydi. Diğer bir deyiĢle, scriptler ve HTML aynı sayfadaydı.

Artık gösterilen kod ile script kodu ayrılmıĢ olduğundan, Microsoft bunun önüne geçmek için

bir önlem almıĢ gibi görünüyor.

Dezavantajları

1) Windows zorunluluğu

ASP.NET halen Windows iĢletim sistemi kullanan bir sunucu üzerinde yapılandırılmak

zorunda; kısacası platform bağımsız değil. ASP’de de olan bu sorunu çözmek için Linux

sistemlerinde çalıĢan birkaç ASP hosting sunucusu geliĢtirildiyse de, iĢin açıkçası pek

baĢarılı olabilmiĢ değil. ASP.NET de hali hazırda Windows ve IIS (Internet Information

Server)’a mahkûm görünüyor.

2) Eklenti krizi

ASP.NET kaynak olarak bedava gibi görünebilir ama programlama konusunda bilgili

değilseniz hazırlıklı olmanız gereken bir durum var, o da eklentiler. Bir iĢlemi yapmak için

gereken eklentiler genelde ücretli olarak satılıyor. Tabii saatlerce uğraĢtan sonra bedava

olan birkaç eklentiyi zor da olsa bulabilirsiniz.

3) Hosting maliyeti

Eğer dıĢarıdan hosting hizmeti alacaksanız biraz daha fazla para ödemeye hazırlıklı

olmanız gerekiyor. Çünkü genel olarak Windows hosting daha pahalı ki bu da normal olması

gereken bir fark.

Page 10: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

HHHAAAFFFTTTAAA --- 222 Visual Studio 2008 Tanıtımı

ASP.NET Tasarımı

Visual Studio ile ASP.NET Site oluşturma

ASP.NET kontrolleri

Sayfalar arası veri aktarımı

Visual Studio 2008

ASP.NET ile web sitesi tasarımı için Visual Studio kullanılır. Visual Studio 2008

çalıĢtırıldıktan sonra Menüden File – New – Web Site seçilir.

Resimde de görüldüğü gibi üstte oluĢturulacak projenin tipi belirlenir. Normalde

ASP.NET Web Site seçilir.

Location bölümünde ise web sitesinin bulunduğu konum belirlenir. Web sitesi ftp

konumunda, http konumunda olabilir. Bu konumlara bağlanılarak uzaktaki bir konumda olan

web siteleri de düzenlenebilir. Kendi bilgisayarımızda konumlandıracaksak File System

seçilir.

Language bölümünde ise ASP.NET web sitesini oluĢtururken kullanılacak programlama

dili seçilir. Burada Visual C# seçilmiĢtir.

Brows düğmesi ile de web sitemizi oluĢturacağımız konum belirlenir. Ok düğmesine

basılmasıyla Web sitesi belirtilen konumda hazırlanır.

Page 11: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Sol bölümde Toolbox (araçlar) yeralmaktadır. Orta kısım tasarım yapılan yerdir.

Sağda üstte Solution Explorer bulunmaktadır. Solution Explorer’de projede yer alan tüm

dosyalar ve klasörler listelenmektedir. Onun altında ise Properties bölümü yer almaktadır.

Tasarım kısmında seçilen nesnenin özellikleri gösterilmektedir.

Bir Web sayfası tasarımı üç farklı yerden yapılmaktadır. Örneğin Default.aspx dosyası

tasarımında: Solution Explorer’de Default.aspx’in altında bağlı olarak Default.aspx.cs

görülmektedir. Default.aspx.cs dosyası program kodlarının bulunduğu dosyadır.

Default.aspx ise html kodları ile sayfa tasarımını içermektedir.

Default.aspx açıldığında (html kodlarını içeren sayfa) farklı iki görünüm vardır.

Birincisi Design (Tasarım) görünümü. Bunda sayfa tasarımı tamamen görsel olarak

yapılmaktadır. Source (html kod) görünümde ise sayfanın ASP.NET için geliĢtirilmiĢ html

kodları görülmektedir.

Default.aspx.cs dosyasında ise C# dili ile yazılan ve asp kontrollerine ait program

kodlerı görülmektedir.

Page 12: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

ASP.NET Kontrolleri

ASP.NET ile web sitesi tasarımında html kontrolleri istenirse kullanılabilir. Fakat ASP

kontrolleri geliĢmiĢ özelliklere sahip olduğu için tercih edilir. En çok kullanılan ASP.NET

kontrolleri aĢağıda verilmiĢtir.

Label: Sayfa üzerinde yazı yazmak için kullanılır. Normalde sayfa üzerine doğrudan da

yazı yazılabilir. Fakat Label kontrolü kullanılırsa program kodları ile yazı yazdırılabilir.

TextBox: ÇelıĢma zamanında kullanıcı tarafından bilgi giriĢine izin veren kontroldür.

Button: Tıklama ile çalıĢan ve belirli iĢlemlerin etkileĢimli olarak yapıldığı kontroldür.

LinkButton: Görünümü bir link gibidir, fakat etkileĢimli olarak çalıĢan bir buton gibi

davranır.

ImageButton: üzerinde resim görülen ve etkileĢimli buton gibi çalıĢan bir kontroldür.

HyperLink: sayfa üzerinde linkler vermeye yarayan kontroldür.

DropDownList: Açılır liste kutusu. Listeden sadece bir eleman seçilebilir.

ListBox: Bir listesi olan ve bu listeden eleman seçilebilen kontroldür.

CheckBox: Onay kutusudur.

CheckBoxList: Bir çok onay kutusunu bir grup olarak barındıran kontroldür.

RadioButton: Seçme kutusudur. Bunlardan sadece biri seçilebilir.

RadioButtonList: Eğer radiobutonlardan ayrı gruplar oluĢturmak istenirse, bu kontrol

ile grupar oluĢturulabilir.

Image: Sayfa üzerine resim eklenir.

FileUpload: Web sitesine dosya yükleme kontrolüdür.

MultiView: Duruma göre çoklu sayfa görünümü.

View: MultiView kontrolü ile kullanılır.

ToolBox DATA grubu: Bu grupta veritabanlarına bağlanma kontrolleri ve

veritabanlarındaki bilgileri listeleme kontrolleri bulunmaktadır.

Page 13: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

ToolBox Validation Grubu: Bir bilgi giriĢ formunda TextBox’lara girilen değerlerin

kontrollerini yapan ve doğru bilgi giriĢini zorlayan kontroller vardır.

ToolBox Navigation grubu: Menü ve site haritası hazırlanabilecek kontroller vardır.

ToolBox Login grubu: üye giriĢi ile ilgili kontroller bulunmaktadır.

ToolBox AJAX Extention grubu: ASP.NET sitesi içinde AJAX kullanımı ile ilgili temel

kontrolleri içerir.

Sayfalar Arası Veri Aktarımı

Web sitelerinin çalıĢma Ģeklinde Sunucu ve istemci vardır. Ġstemci sunucudan sayfayı

istemektedir. Ġstemcide sunucunun göndermiĢ olduğu sayfa görüntülenmektedir. Burada

girilecek veya tanımlanacak bir bilgi istemcide tanımlanır. Bundan sunucunun haberi olmaz.

Bir linke tıklanarak diğer sayfaya geçildiğinde tüm tanımlamalar istemcide bulunduğu için

sunucu, istemcideki tanımlara göre iĢlem yapamaz. Fakat yapılan tanımlamaların diğer

sayfalara aktarılması ve diğer sayfalarda kullanılması gerekir. Bu iĢlemi web sitelerinde

gerçekleĢtirmek için değiĢik yöntemler kullanılmaktadır.

1- Web sayfasındaki formu Post metodu ile diğer sayfaya göndermek ve

Request.Form ile değerleri almak.

2- Web sayfalarını çağırırken adres satırında parametre gönderme,

RequestQuerystring kullanma.

3- Cokie kullanma

4- Application nesnesinde değiĢken tanımlama

5- Session nesnesinde değiĢken tanımlama

Web ortamında sayfaların her post-back olmasında ilgili sayfanın yeni bir örneği

oluĢturulur. Peki, yeni bir örneğinin oluĢması ne demek?

1.Sayfamızdaki bilgilerin

2.Sayfadaki kontrollerin (TextBox, Grid, CheckBox, Button vb.)

tamamen kaybolması demektir. Örneğin kullanıcı sayfamızdaki bir TextBox’a veri

girdiğinde, artık biliyoruz ki bu veri tamamen kaybolacaktır. Ancak bunu deneyip

yaptığımızda gerçek ortamda TextBox’taki verinin kaybolmadığını görüyoruz.

Peki, bu nasıl oluyor?

Geleneksel Web Programlamanın bu sınırlılığının üstesinden gelmek için .NET

platformu bize bazı sayfa-tabanlı ve uygulama-tabanlı seçenekleri sunmakta. Bunlar:

1.View State

2.Control State

3.Hidden Fields

4.Cookies

Page 14: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

5.Query Strings

6.Application State

7.Session State

Bu seçeneklerden (View State, Control State, Hidden Fields, Cookies ve Query

Strings) sayfamızdaki bilgileri ve kontrol bilgileri bir takım yollarla kullanıcının kendi

bilgisayarında (Client-Based State Manegement) saklarlar. Geri kalan seçenekler ise

(Application State, Session State ve Profile Property) bu bilgileri uygulama tarafında yani

sunucuda (Server-Based State Management) saklarlar.

.NET platformunun bizlere sunduğu bu seçenekleri incelersek:

View State

Post-Back sırasında default olarak sayfa ve kontrol bilgilerini tutan bu yapı, dictionary

mantığıyla çalıĢır. Her bir kontrolün ve sayfa bilgisinin değerleri “Key”, “Value” Ģeklinde,

hidden field’lar olarak korunur. Sayfa sunucuya gönderildiğinde, gelen isteğe göre iĢlem

yapıldıktan sonra sunucu view-state değerine göre sayfayı tekrardan render eder ve

client’a tekrar gönderir. Böylece sayfamızdaki verilerimizi kaybetmemiĢ ve sunucuya

gitmeden önceki halleriyle tekrar tarayıcımızda görürüz.

View state yapısında kendi verilerimizi de saklayabiliriz. Dictionary mantığıyla

çalıĢtığını daha önce belirtmiĢtik. AĢağıdaki gibi basit bir Ģekilde View State yapısını

kullanabilirsiniz

View State e veri ekleme: ViewState.Add(”[Key]“,”[Value]“);

Eklenen bir veriyi alma: ViewState["[Key]“].ToString();

Bu yöntemi kullanmanın avantajları:

1.Sunucu kaynaklarını yormaz: Client-Based olduğu için sunucumuza artı bir yük

getirmez

2.Kolay uygulanabilirlik: Ekstra kodlama gerektirmez. Zaten default olarak kullanılan

metoddur

3.Güvenlik: View-State değerleri ĢifrelenmiĢ bir Ģekilde saklandıkları için Hidden

field’lara göre daha güvenlidirler

Dezavantajları:

1.Performans düĢüklüğü: View-State değerleri sayfamızla beraber sunucuya gittiği için

view-state de büyük boyutta veri saklamak sunucuya gidiĢ-geliĢ süresini uzatacaktır.

özellikle mobil uygulamalarda büyük veriler büyük performans kaybı demektir.

2.Potansiyel Güvenlik Riski: Veriler ĢifrelenmiĢ bir Ģekilde saklansa bile sayfa

kaynağını görüntülediğimizde bu verileri Ģifreli halde bile olsa görebiliriz. Bu durum güvenlik

riski oluĢturabilir.

Page 15: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Control State

.NET ControlState özelliği post-back’ler arasında custom kontrol verilerini tutmamıza

olanak sağlar. Örneğin sayfamızda farklı içerikler gösteren farklı tab yapılarımızın olduğunu

düĢünün. Hangi tabın seçili olduğunu post-back iĢleminden önce bilmek istiyorsak bu yapı

uygun bir yapıdır. Bu senaryo ViewState ile de yapılabilir, ancak ViewState sayfa bazında

kapatılabildiği için uygulamamızda aksaklıklara neden olabilir. ControlState ise ViewState

gibi kapatılamaz.

peki nasıl kullanılır?

Veri ekleme: PageStatePersister.ControlState = “[Data]”;

Veri alma: string value = PageStatePersister.ControlState.ToString();

Kullanım Avantajları:

1.Sunucu kaynaklarını yormaz: Client-Based olduğu için sunucumuza artı bir yük

getirmez

2.Güvenilirlik: ViewState gibi kapatılamadığından kullanımı daha kesin sonuçlar verir.

3.Çok Yönlülük: Control state tekli verilerin nasıl ve nerede saklanması konusunda

custom adaptörler yazılabilir

Dezavantajları:

1.Programlama bilgisi gerektirir: ASP.NET kullanım için limitli imkan sağlasa da, tam

kullanım için kodlama gerektirmektedir.

Hidden Fields

Hemen hemen hepimizin bildiği bir state yönetim aracıdır. Normal bir HTML kontrolü

olarak sayfamıza ekleyebilirsiniz. Veri saklama ve veri alma, normal bir TextBox’tan

farksızdır.

Kullanım avantajları:

1.Sunucu kaynaklarını yormaz: Client-Based olduğu için sunucumuza artı bir yük

getirmez

2.Yaygın Destek: Hemen hemen tüm tarayıcılar hidden field desteği vermektedir.

3.Kullanım kolaylığı: Standart HTML kontrolü olarak sayfanıza ekleyebilirsiniz.

Dezavantajları:

1.Güvenlik Riski: Sayfa kaynağı direkt olarak görüntülenirse hidden field değerleri

açıkça görülebilir. Değerler Ģifrelenebilir ancak Ģifrelenmesi ve Ģifrelerin tekrar çözülmesi

iĢlemi ekstra kodlama demektir.

2.Basit Depolama Mantığı: Hidden field’larda rich değerler saklayamayız. Daha çok

basit veriler saklanması için tasarlanmıĢtır.

Page 16: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

3.Performans Kaybı: Büyük veriler saklayamadığımız gibi, aĢırı kullanımı durumunda

sayfada HTML kontrolü olarak saklandığı için performans kayıplarına neden olacaktır

Cookies (Çerezler)

//myCookie isminde yeni nesne oluştur

HttpCookie MyCookie = new HttpCookie("SonZiyaret");

//now isminde datetime tipinde nesne oluşturup o anki zaman aktar

DateTime now = DateTime.Now;

//myCookie’nin değeri belirleniyor

MyCookie.Value = now.ToString();

//myCookie’nin süresi belirleniyor. Ömrü 1 saat olarak ayarlanıyor

MyCookie.Expires = now.AddHours(1);

//myCookie istemci bilgisayara ekleniyor.

Response.Cookies.Add(MyCookie);

Cookie Okuma HttpCookie myCookie = Request.Cookies.Get("SonZiyaret");

degisken = myCookie.Value;

Kullanım Avantajları:

1.Konfigüre Edilebilme: Cookie’lerin ayarlanabilir birçok özelliği vardır. Ġsim, değer,

zaman aĢımı süresi vb.

2.Sunucu kaynaklarını yormaz: Client-Based olduğu için sunucumuza artı bir yük

getirmez

3.Veri Devamlılığı: Client bilgisayarlarda veri bütünlülüğünü en yüksek oranda garanti

edebilen yapılardır.

4.Kullanım kolaylığı: text tabanlı key-value mantığıyla çalıĢırlar

Dezavantajları:

1.Boyut limiti: Bir çok browser cookie boyutu olarak 4096 byte sınırını getirmektedir.

2.Kullanıcı Kontrolü: Bazı kullanıcılar cookie alımını tarayıcılarından kapatabilirler, bu

da cookie kullanımını olanaksız hale getirir

3.Güvenlik Riski: Cookie kullanıcılar tarafından görülebilmektedir. Bu da güvenlik

açıklarına neden olabilir. Cookie değerleri manuel olarak Ģifrelenebilir, ancak bu da ekstra

kod demektir

Page 17: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

HHHAAAFFFTTTAAA --- 333 QueryString

Application

Session

QueryStrings

QueryString’lerde yine en çok aĢina olduğumuz state yönetim araçlarındandır.

URL’lerin ardına eklenen kullanıcılar için çok da bir anlam ifade etmeyen, yazılımcılar için

anlamlı bilgilerdir.

Örneğin: xyz/index.php?option=com_comprofiler&task=userProfile&user=142

adresindeki “?” iĢaretinden sonra gelen “option”, “task” ve “user” kelimeleri birer

Query String anahtarlarıdır. Bu anahtarlar kullanıcılar için fazla bir anlam ifade etmez

ancak yazılımcılar için çok anlamlıdırlar.

Kullanımı: xyzindex.php?option=com_comprofiler

Her iki kullanımda aynı iĢi görmektedir.

Veri Alma: if (Request["[Key]“] != null)

{

string value = Request["[Key]“].ToString();

}

Kullanım Avantajları:

1. Sunucu kaynaklarını yormaz: Client-Based olduğu için sunucumuza artı bir yük

getirmez

2. Yaygın Destek: Hemen hemen tüm tarayıcıların Query String iler veri taĢıma

desteği vardır.

Dezavantajları:

1. Güvenlik Riski: Query String ile taĢınan veriler clear text olarak tüm kullanıcılar

tarafından görülebilmektedir. Bu nedenle değerli veriler kesinlikle querystring ile

taĢınmamalıdır. Bunun yerine Hidden field veya diğer yapılar kullanılabilir.

2. Kapasite Limiti: Bazı tarayıcılar URL uzunluklarını en fazla 2083 karakter olarak

sınırladıklarından istenilen uzunlukta veri taĢınamıyor.

Application/Uygulama

Asp'yi yazanlar ASP teknolojisinin kullanıldığı bir siteyi uygulama programı olarak

düĢünmüĢler ve bu siteye girecek herhangi biri ziyaretçiyi de bu programı kullanan bir

kullanıcı olarak düĢünmüĢler. Yani sitenize her bir kullanıcı girdiğinde bir onun için bir

program açılıyor gibi düĢünülebilir.

Page 18: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Web sitemiz sunucuya yüklendiğinde bir Application (uygulama) çalıĢır. Web sunucu

kapatılana kadar bu uygulama çalıĢır. Bu uygulama kapatılana kadar değiĢkenler

saklanmaktarı. Sunucu taraflı veri saklama yöntemidir.

ASP.NET’te Application nesnesinde tanımlanan bir değiĢkeni ve değerini tüm

ziyaretçiler görür. Application’da tanımlanan değiĢkenin ömrü, Web sunucunun çalıĢma

süresi kadardır. Web sunucu durduğunda Application değiĢkenleri silinir.

Application değiĢken tanımlama Application.Add("Okul", TextBox1.Text);

Application değiĢken değerlerini okuma degisken = Application["Okul"].ToString();

Session/Oturum

Bu nesne Application nesnesi ile en çok karıĢtırılan nesnedir. Çünkü ikisi de

tanımlamalarda aynı özellikleri taĢır.

Session Oturum demektir. Web Sitesine her bağlanan kiĢi için Application’da bir

oturum oluĢturulur. Session belirli bir süre için oluĢturulur. Bu süre varsayılan olarak 20

dakikadır. Her istemci için ayrı ayrı oluĢturulan session o istemci bağlantısını kesene kadar

veya session ile ilgili hiçbir iĢlem yapmadan 20 dakika geçtiğinde hafızadan silinir.

Dolayısıyla session’da tanımlanan bir değiĢkene sadece o oturumu baĢlatan kiĢi oturum

açık kaldığı sürece ulaĢabilir. Session sunucu taraflı çalıĢan bir sistemdir. Bu nedenle

değiĢkenler sunucuda saklanır.

Session’da değişken oluşturma:

Session.Add("Yetki", 3);

OluĢan oturumda (Session) Yetki isminde bir değiĢken oluĢturulur ve 3 değeri bu

değiĢkene aktarılır. Daha sonra web sitemizin herhangi bir sayfasında bu değeri

okuyabiliriz. degisken = Session["Yetki"];

Session süresinin belirlenmesi

Session nesnesi varsayılan olarak 20 dakika için oluĢturur. Ġstemci web sitesinden

istekte bulunmaya devam ettiği sürece oturum kapatılmaz. Eğer istemci 20 dakika herhangi

bir iĢlem yapmaz ise oturum kapatılır. Oturumun sona ereceği süre aĢağıdaki örnekteki gibi

dakika cinsinden verilebilir. Session.Timeout = 30;

Tüm session nesnelerinin değerini sıfırlama

Sitemizde öyle bir an olur ki session nesnelerine yüklediğimiz tüm verileri bir defada

silmek isteyebiliriz. Session.Abandon();

Page 19: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

HHHAAAFFFTTTAAA --- 444 ASP.NET Kavramlar: Respones, Request

UserControl

ASP.NET Kavramlar

Request/Talep

Adından anlaĢabileceği gibi veri talep etmek için kullanılır. Gerek formlarda, gerek

sorgulardan gerekse cookie’lerden verileri almak için kullanırız.

Kısaca Ġstemciden veri almak için kullanılır.

Bu nesne ile kullanıcıdan birçok Ģekillerde veri alabiliriz. Tabi bunun için Request

nesnesinin metotlarını kullanacağız. ġimdi bunları görelim.

1-Request.Form

Kullanıcının doldurduğu herhangi bir form öğesinden veri almak için kullanılır. Aldığınız

bu veriyi sayfanızda herhangi bir yerde kullanabilirsiniz. Degisken = Request.Form("form_oge_adi");

Ģeklinde veriyi alabilir ve bir değiĢkene atayabilirsiniz.

Not: Yukarıdaki örnekte bulunan form_oge_adi denen isim formdaki öğenin adıdır.

2-Request.QueryString

sayfa.aspx?degisken=deger gibi bir url’deki değiĢken adlı değiĢkenin değerini almada

kullanılır. Degisken = Request.QueryString("degisken_adi");

Ģeklinde veriyi alabilir ve Request.Form'daki gibi bir değiĢkene atanabilir.

Eğer birden fazla değiĢken url ile yollanacak ise

sayfa.asp?degisken1=deger&degisken2=deger Ģeklinde yollanıp yukarıdaki gibi alınabilir.

3-Request.ServerVariables

Server değiĢkenlerinden veri alma. Hep kullanıcıdan değil de bazen sunucudan veri

almamız gerekir, mesela o sırada çalıĢan asp sayfasının adresini buradan alabilirsiniz. Request.ServerVariables("degisken_adi")

Ģeklinde bir kod ile değeri alabilirsiniz ve bir değiĢkene yükleyebilirsiniz. degisken_adi

adlı bölümde aĢağıdaki değerler kullanılabilir. Değişken Açıklamalar

ALL_HTTP İstemci tarafından gönderilen http Header altında yer alan tüm değişkenler ve değerlerini getirir.

ALL_RAW http Header altında yer alan tüm değişkenler ve değerlerini getirir. Başlarında http öneki olmaz.

APPL_MD_PATH Uygulamanın Metabase yolunu verir

APPL_PHYSICAL_PATH Uygulamanın fiziksel yolunu verir

AUTH_PASSWORD Kullanıcı sunucuya basit yetkilendirmeyle bağlanıyorsa parolayı getirir.

Page 20: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Bu değişken yalnızca Temel kimlik doğrulama kullanılır kullanılabilir.

AUTH_TYPE Auth_type Yetkilendirme metodunu getirir.

AUTH_USER Kullanıcı sunucuya basit yetkilendirmeyle bağlanıyorsa adını getirir.

CACHE_URL ISAPI uygulamalarda kullanmak için.

CERT_COOKIE Bağlantıda yetkilendirme sertifikası kullanıyorsa kendisine verilen kimlik.

CERT_FLAGS Kullanıcının sertifikası varsa bu değer 1 olur.

CERT_ISSUER sertifikası varsa veren kurum(O = MS, OU = IAS, CN = kullanıcı adı, C = USA).

CERT_KEYSIZE Güvenli Yuva Katmanı (SSL) içinde bit sayısı bağlantı anahtar boyutu. Örneğin, 128.

CERT_SECRETKEYSIZE SSL’deki deki özel anahtarın bit sayısı. Örneğin, 1024.

CERT_SERIALNUMBER Istemci sertifikası seri numarası

CERT_SERVER_ISSUER Sunucu sertifikasının alındığı yer

CERT_SERVER_SUBJECT Sunucu sertifikasının Konu alanı.

CERT_SUBJECT Istemci sertifikanın Konu alanı.

CONTENT_LENGTH Müşteri tarafından verilen içerik boyutu.

CONTENT_TYPE Içerik veri türü. Gelen bilgilerin GET veya POST metoduna göre türünü gösterir.

GATEWAY_INTERFACE Sunucunun kullandığı CGI tipi ve sürümü.

HEADER_ <HeaderName> Değeri başlık <HeaderName> saklanır. Herhangi bir başlık bu tabloda listelenen başka ServerVariables koleksiyonu için sırayla "HEADER_" tarafından değeri önünde olmalıdır.

HTTP_ <HeaderName> Değeri başlık <HeaderName> saklanır. Herhangi bir başlık bu bu tabloda listelenen başka ServerVariables koleksiyonu için sırayla "HTTP_" tarafından değeri önünde olmalıdır.

HTTP_ACCEPT Kabul biçimlerinin bir listesini içerir Kabul başlığı döndürür.

HTTP_ACCEPT_ENCODING Kabul kodlama türleri döndürür.

HTTP_ACCEPT_LANGUAGE Bir dize içeriğinin görüntülenmesi için kullanılacak dil.

HTTP_CONNECTION Bir dizenin bağlantı türü.

HTTP_COOKIE Bu sitenin içerdiği İade çerez.

HTTP_HOST Web sunucusunun adını verir

HTTP_REFERER geçerli sayfayı bir HTML <a> etiketi kullanarak Döndürür

HTTP_URL URL’nin kodlanmış şeklini verir, örneğin, "/ vdir / default.asp? QueryString".

HTTP_VERSION Adı ve istek SERVER_PROTOCOL protokolü üzerinden (ham formu) sürümü.

HTTPS Ziyaretçi ile bağlantının güvenli olup olmadığını gösterir.

HTTPS_KEYSIZE SSL bağlantısı içinde bit sayısı Örneğin, 128.

HTTPS_SECRETKEYSIZE Sunucu sertifikası private key deki bit sayısı. Örneğin, 1024.

HTTPS_SERVER_ISSUER Sunucu sertifikasının Issuer alan.

HTTPS_SERVER_SUBJECT Sunucu sertifikasının Konu alanı.

INSTANCE_ID Sunucunun aynı andaki çalışma sayısı.

INSTANCE_META_PATH Sunucunun çalıştığı meta yolu.

LOCAL_ADDR İstemcinin IP numarası.

LOGON_USER İstemcinin kendi sistemindeki oturum açma adı.

PATH_INFO Çalışan sayfanın yolu veya adı.

PATH_TRANSLATED Çalışan sayfanın uzun yolu veya adı.

QUERY_STRING Adres satırında Query string kısmını verir

REMOTE_ADDR Bu istemcinin IP adresini verir.

REMOTE_HOST Bu istemcinin bilgisayarın adını verir

REMOTE_PORT TCP bağlantısının istemci bağlantı noktası numarası.

REMOTE_USER İstemcinin gerçek adı.

REQUEST_METHOD Verilerin elde edildiği metot.

SCRIPT_NAME ASPX sayfasının URL’deki adı.

SERVER_NAME Sunucunun ana bilgisayar adı.

SERVER_PORT İstekte bulunurken kullanılan port numarası.

SERVER_PORT_SECURE Portun güvenliliğini gösterir. Güvenli ise 1 değilse 0.

Page 21: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

SERVER_PROTOCOL Sunucudaki http’nin sürümü.

SERVER_SOFTWARE Web sunucusun adı ve sürümü.

URL Aktif olan URL’yi gösterir.

Response/Karşılık

Ziyaretçinin browser’ına gönderilen verilerin hepsini kapsar. Ayrıca cookie’lerde

Response öğesinin özellikleri arasında yer alır.

Kısaca bu nesne ile istemciye veri yollarız.

Response nesnesini en çok ziyaretçinin tarayıcısına bir Ģey yazdırmak için kullanırız.

Tabii sadece bu değil bu nesne ile web sayfamızın birçok özelliğini belirleriz.

Response nesnesini sadece bu haliyle kullanmayız bu nesneyi de birçok ASP kodunda

olduğu gibi "." yazıp sonra özelliğini yazarız. ġimdi bunların neler olduğunu ve ne iĢe

yaradığını görelim.

1-Write (Yazdır)

Response nesnesinin en çok kullandığımız özelliğidir. Bu kodu ziyaretçinin ekranına bir

Ģeyler yazdırmakta kullanırız. Response.Write("Yazı yazdırıyoruz");

2-Buffer (Tampon)

Bu özellik "TRUE" olarak ayarlandığında asp sayfasının tüm kodlarının yorumlanması

bitmeden tarayıcıya çıktı yollanmasını engeller. Bu sayede çok iĢlem gerektiren sayfalar bu

yöntem ile tamamen yorumlanınca çıktısı tarayıcıya yollanır. Veya sizin asp sayfanız

yorumlanması bitince ziyaretçiyi baĢka bir siteye yolluyor bunun için tüm kodların önce

yorumlanması gerekir o zamanda bu özellik iĢinize yarayacak. Response.Buffer = true;

3-Flush (Hemen Gönder)

Kısaca Buffer özelliğinin tam tersi bir iĢlem yapar. Sayfa yorumlandıkça çıktı

tarayıcıya yollanır. Response.Flush

4-Clear (Temizle)

Buffer özelliğini kullandığınız zaman sayfa yorumlanır, yorumlanan kısım geçici bir

alanda tutulur. Clear özelliği ile de bu alandaki tüm veri silinir. Ama bu özellik neden iĢimize

yarayabilir? Sitemizde alıĢveriĢ yapan bir kullanıcı, vazgeçtiği zaman verdiği bütün bilgileri

silmek en iyisidir. O zamanda bu özellik yardımımıza koĢacaktır Response.Clear();

5-Expires (Süresi Geçme)

Bir internet sitesine girdiğiniz zaman tarayıcımız bu sitedeki resimleri ve kodları

cache denen (bilgisayarımızdaki Temporary Internet Files klasörü) bir alanda tutar.

Böylece daha sonra siz bu siteye tekrar girmek istediğinizde tarayıcı sayfayı buradan

Page 22: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

yükler. Ama kullanıcılar gidip buradan sayfanızın kodlarını görebilir ve bizim asp sayfamızda

önemli kodlar olabilir veya bazı Ģifreler bu sayfada tutuluyor olabilir, o zaman bu sayfanın

cache'e alınması pekiyi olmaz. Veya sitemiz çok sık yenileniyor ise kullanıcı eski halini

görüyor olacak. Bunun için biz bu özelliği kullanarak sayfamızın cache'te ne kadar

tutulacağını belirleyebiliriz. Response.Expires=10;

Buradaki 10 dakika olacaktır. Bu sayıyı 0 yaparsanız hiç cache'e alınmaz.

6-End (Son)

Sayfamızda belli durumlar sonucunda kullanıcıya karĢılık vermemesini (yani küsmesini )

sağlayabiliriz. Bu durumda o ana kadar yorumlanan bütün kodlar tarayıcıya ulaĢır ve ondan

sonraki hiçbir kod yorumlanmaz, buna HTML de dâhil. Ayrıca bu özellik ile Buffer özelliğiyle

geçici alanda tutulan tüm veri ziyaretçinin tarayıcısı ile buluĢur. Response.End

Web User Control

Web User Controlleri bir nevi diğer web programlama dillerindeki include dosyalar gibi

düĢünebilirsiniz. OluĢturduğunuz bir Web User Controlü sayfanızın isteğiniz yerine koyar

ve orada onun görünmesini sağlayabilirsiniz. OluĢturulan bir web user control birçok defa

aynı veya farklı sayfalarda kullanılabilir.

Özellikleri

Web user controller proje içerisinde oluĢturulan ascx uzantılı dosyalardır. Bu dosyalar

içerisinde daha önceden var olan HTML ve server componentlerini istediğimiz gibi

kullanarak yeni bir görünüm oluĢtururuz. User Controller VS.NET toolbox’ında yani araç

çubuğunda bulunmazlar. Onları herhangi bir projeye eklemek için Solution Explorer’dan o

ascx uzantılı dosyayı tutarak sayfada istenilen yere bırakılması yeterlidir. Web User

Controller, .NET’in diğer kontrollerine benzemez.

Page 23: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

HHHAAAFFFTTTAAA --- 555 Master page

Örnek site tasarımı

Master Page

Internet sitelerini göz önüne aldığımızda, siteye ait sayfaların sıklıkla aynı Ģablonları

kullandığını görürüz. Özellikle, header, footer, navigasyon ve advertisement alanları,

çoğunlukla siteye ait tüm sayfalarda aynı yerlerde kullanılır. Bu, siteye ait sayfaların

standart olarak aynı görünümde olmasını sağlamakla kalmaz, değiĢen içeriğinde ortak bir

Ģablon üzerinde durmasına imkân tanır. Peki, Asp.Net 2.0’ın bu kullanım için getirdiği

yaklaĢıma gelene kadar, sayfalarda ortak olarak kullanılan ve tasarımsal olarak sayfa

koordinatlarında aynı yerlerde yer alan bu unsurlar hangi teknikler ile oluĢturulmuĢtur?

Html’in ilk zamanlarında, bu tarz iĢlemleri gerçekleĢtirmek için, ortak olan alanlar

kopyalanarak diğer sayfalara yapıĢtırılırdı. Ya da ana Ģablonu ihtiva eden bir sayfadan diğer

sayfalar "save as" metodu ile oluĢturulur ve içerikleri değiĢtirilirdi. Bu tekniğin en büyük

dezavantajı, Ģablondaki herhangi bir değiĢikliğin diğer sayfalara yansıtılması sırasında

ortaya çıkmaktadır. Nitekim 100’lerce alt sayfaya aynı Ģablonu uygulamıĢsak bu gerçekten

büyük bir problemdir.

Çözüm Asp ile gelmiĢtir. Asp, include takılarını kullanarak, sayfalarda tekrar eden

içeriklerin kolayca kullanılabilmesini ve değiĢikliklerin tüm sayfalarda görünebilmesini

sağlamıĢtır. Ancak elbette ki include takısının da bir takım sorunları vardır. Bunlardan

birisi, tasarım zamanında include takısının iĢaret ettiği içeriğin görünememesidir.

Dolayısıyla sayfanın bütünün nasıl göründüğünü inceleyebilmek için mutlaka çalıĢtırmak

gerekmektedir. Diğer yandan, include tekniği takılar üzerine kurulu olduğundan, özellikle

açık unutulan takılar sayfalarda istenmeyen Html çıktılarının oluĢmasına yol açmaktadır.

Asp.Net 2.0, Master Page yaklaĢımı ile yukarıda bahsedilen dezavantajları ortadan

kaldırmayı baĢarmıĢtır. Bir Master Page, uygulandığı diğer aspx sayfalarının nasıl görünmesi

gerektiğine karar veren bir Ģablon gibidir. Ancak, sağladığı ContentPlaceHolder bileĢeni

sayesinde, Master Page’leri uygulayan diğer aspx sayfalarının, istenilen içeriğe sahip

olmasını da sağlamaktadır. En güzel yanı ise, normal bir aspx sayfası gibi tasarlanabilmesi,

yani html, image, server control gibi üyeleri içerebilmesidir. Bunlara ek olarak, olay güdümlü

programlama modelini de destekler. Dolayısıyla bir Master Page aslında bir aspx

sayfasından farksızdır.

Ancak asıl fark, bir Master Page bir aspx sayfasına uygulandığında ortaya çıkar.

Master Page’i uygulayan bir aspx sayfası tarayıcıda açıldığında tarayıcıya gelen sayfa,

Master Page ile aspx sayfasının birleĢtirilmesi sonucu ortaya çıkan baĢka bir aspx

sayfasıdır. Bu, .NET Framework’ün getirdiği partial class tekniği sayesinde

gerçekleĢebilmektedir. Bunun, Master Page’i uygulayan aspx sayfalarına getirdiği değiĢik

kodlama etkileri de vardır.

Page 24: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Örnek Site Tasarımı

AĢağıdaki tabloda içeriği belirtilen bir web sitesini Master Page kullanarak

tasarlanacaktır.

NORMAL WEB YÖNETİM WEB

Ana.master Üstte Banner

Üstte site haritası

Solda Üye Girişi

Solda Menü

Yonet.master Üstte yöneticinin Adı soyadı

Üstte bir yatay menü

İçerik bölümü

Ana Sayfa Tanıtım

Tanıtım ile yan yana yeni duyurular

Tanıtım yönetimi Kişisel tanımını düzenleme

Duyuru Sayfası Duyurular Listelenir ve içerikleri gösterilir

Duyuru Yönetimi Duyuru ekleme, düzenleme işlemleri

ĠletiĢim Sayfası Mesaj Panosu (Site yöneticisine mesaj bırakma)

ĠletiĢim Yönetimi Gelen mesajlar okunup geri dönüş yapılabilir.

Resim Galerisi Resimler kategorilere göre listelenecek. (küçük

resimler ve kısa açıklaması, tıklanınca büyüyecek ve altında uzun açıklaması olacak

Resim Galeri Yönetimi Resim kategorileri oluşturulabilecek

Resimleri ve açıklamalarını düzenleyebilecek, ekleme yapabilecek

Yeni Üyelik Yeni üye kaydı

Üye Yönetimi Siteye üye olanların kontrolü ve yönetimi

AĢağıdaki Ģekilde Master Page sayfasının tasarımı görülmektedir. Normal kullanıcıların

göreceği tasarım için Ana.master isimli, yöneticilerin görebileceği tasarım için da

Yonet.master isimli MasterPage sayfaları tasarlanacaktır

Page 25: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Ana.Master BANNER

Site Haritası

Üye Girişi

MENÜ İÇERİK

Hazırlayan

Yonet.Master Üye adı soyadı

Yatay Menü

İÇERİK

Böyle bir web sitesini tasarlamak için aĢağıdaki iĢlem sırasını izleyiniz.

İŞLEM SIRASI 1. Öğrenci numaranız ile klasör oluştur. (0914113000.web)

2. VS2008 ile bu klasöre web sitesini oluştur.

3. Default.aspx sayfasını sil.

4. Yukarıdaki şekle uygun olarak Ana.master MasterPage’sini oluştur.

5. Ana sayfayı Ana.master ile oluştur (Default.aspx)

6. Duyuru sayfasını Ana.master ile oluştur (Duyuru.aspx)

7. İletişim Sayfasını Ana.master ile oluştur (Iletisim.aspx)

8. Resim Galerisi sayfasını Ana.master ile oluştur (ResimGalerisi.aspx)

9. Yeni Üyelik sayfasını Ana.master ile oluştur (uyelik.aspx)

10. Yönetim için Yonet.master MasterPage’sini oluştur (Yonet.master)

11. Tanıtım yönetimi sayfasını Yonet.master ile oluştur (y_tanitim.aspx)

12. Duyuru yönetimi sayfasını Yonet.master ile oluştur (y_duyuru.aspx)

13. İletişim yönetimi sayfasını Yonet.master ile oluştur (y_iletisim.aspx)

14. Üye yönetimi sayfasını Yonet.master ile oluştur (y_uye.aspx)

15. Resim Galerisi yönetimi sayfasını Yonet.master ile oluştur (y_resgimGalerisi.aspx)

16. Site içinde UserControl isminde alt klasör oluştur (UserControl)

17. UserControl alt klasörü içinde menü için user control oluştur. Basit olarak ana sayfalara linkler verilsin

(menu.ascx)

18. Ana.master Master Page’sine menü user controlünü ekle

Page 26: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

HHHAAAFFFTTTAAA --- 666 Yeni üyelik

Validation kontrol

Üye Giriş Sistemi

MultiView, View, HyperLink, LinkButton kontrolleri

Yeni Üyelik Formu Tasarımı

Web sitesine üyelik iĢlemi olabilmesi için yeni üye olan kullanıcıların bilgileri bir veri

tabanı ortamında saklanmalıdır. Bunun için öncelikle web sitesinin App_Data klasöründe bir

veri tabanı dosyası oluĢturulması gereklidir. Basit ve kullanımı kolay olduğu için Access veri

tabanı kullanılabilir. Fakat kapasite ve iĢlevsellik bakımından SQL server veri tabanı

kullanarak site tasarımına devam edilecektir. Kod yazımında ve sayfa tasarımında hangi veri

tabanının seçildiğinin çok fazla bir önemi yoktur. Sadece değiĢen Connectionstring

nesnesidir. Diğer kısımlar aynı Ģekilde yazılır. Diğer veri tabanı yönetim sistemleri de

kullanılabilir. Kod kısmında sadece Connectionstring değiĢikliğe uğrayacaktır. Diğer

kodlamalar tamamen aynı kalacaktır.

App_Data klasörüne veri.mdf isimli bir veri tabanı dosyası oluĢturarak aĢağıda Ģeması

verilen tabloyu Uye ismi ile oluĢturunuz. Alan Adı Alan Tipi SQL Server Alan Tipi Özellik

uyeNo Otomatik Sayı int, Identity=Yes Birincil Anahtar

adi Metin(15) nvarchar(15) Boş geçilemez

soyadi Metin(15) nvarchar(15) Boş geçilemez

ePosta Metin(100) varchar(100) Boş geçilemez

web Metin(100) varchar(100)

meslek Metin(100) nvarchar(100)

kullaniciAdi Metin(15) nvarchar(15) Boş geçilemez, Sıralı (yineleme yok)

Parola Metin(15) nvarchar(15)

uyelikTarihi Tarih/Saat datetime Varsayılan Değer = Date()

sonZiyaret Tarih/Saat datetime

ziyaretSayisi Uzun Tamsayı int Varsayılan Değer = 0

onay Evet/Hayır bit Varsayılan Değer = Hayır

Daha önceden siteye eklenmiĢ olan uyelik.aspx sayfası açılarak Yukarıda tasarımı

yapılan Üye tablosuna göre sayfa tasarımı yapılacak.

Page 27: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Validation Kontrolleri

Web sayfalarında en önemli bir konu bilgi giriĢi ve bunların kontrollerini yapan

kontrollerdir.

Kullanıcıların hatasız ve eksiksiz olarak formların doldurulmasında önemli rol

oynamaktadır. Ayrıca bu kontrollerin çalıĢması için Internet Explorer 4 ve üstü olması

gerekmektedir.

Required Field Validator

Kontrol içerisine bir değer girilip girilmediğini kontrol eder. AtamıĢ olduğumuz kontrol

boĢ geçilemez.

Range Validator

Belirlediğimiz iki değer arasında kontrol eder. Örneğin yaĢ aralığı için kullanılabilir.

Reguler Expression Validator

Karakter kontrolleri yapar. Mail adresinde @ iĢareti gibi kontrollerde kullanılır.

Compare Validator

Ġki giriĢ kontrolü arasındaki değeri, tipini veya dosyanı eĢitliğini kontrol eder. Custom

Validator Validation için kendi kodumuzu yazmaya izin verir.

Page 28: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Yeni Üyelik Başvurusu

Yeni üyelik butonuna basılınca üye bilgileri veri tabanına eklenecektir. Bunun için

aĢağıdaki kodları uyelik.aspx sayfasında Button1_click içine yazınız.

Üye Giriş Sistemi

Üye giriĢ sisteminde iki farklı tasarım vardır. Birincisinde Kullanıcı Adı ve Parola

sorularak giriĢ yapılır. Ġkincisinde ise giriĢ yapıldıktan sonra “HoĢgeldiniz!” vb mesajların

yer aldığı ve oturumu kapat ile ilgili butonun bulunduğu görünümdür.

Ġki farklı görünüm olan durumlarda MultiView kontrolü kullanılır. Sayfa üzerine

Multiview kontrolü yerleĢtirildikten sonra kaç farklı tasarım var ise o sayıda Multiview

kontrolü içine View kontrolleri eklenir.

Üye giriĢ sistemi tasarımı

Page 29: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Ġlk görünümde Yeni üyelik linki HyperLink kontrolü ile eklenmiĢtir. Bu kontrolün

NavigateURL özelliğine bağlanmasını istediğimiz sayfanın adı yazılır (Uyelik.aspx).

Ġkinci görünümde Oturumu Kapat linki için ise LinkButton kontrolü eklenir. Bu kontrol

bir link gibi görünür ve bir button kontrolü gibi çalıĢır.

MultiView kontrolü ilk açıldığında hiçbir görünümü çağırmaz. Ġlk görünümün çağırılması

için ActiveViewIndex özelliğine 0 değerini yazarak ilk görünümde açılması ayarlanır.

GiriĢ Butonuna basıldığında TextBox’lara girilmiĢ olan kullanıcı adı ve parola veri

tabanından kontrol edilmelidir. Güvenlik nedeniyle veri tabanından sadece kullanıcı adına

göre veriler çekilecek ve daha sonra if komutu kullanılarak parola kontrolü yapılacaktır.

Kullanıcı adına göre veriler çekilip bir datatable nesnesine aktarılır. DataTable

nesnesinde ya kayıt yoktur, ya da 1 kayıt vardır. Eğer kayıt yok ise kullanıcı adı hatalı

girilmiĢtir. Kullanıcı adı doğru girildiyse sadece 1 kayıt gelmelidir. Eğer bir kayıt varsa bu

kayıt üzerinde parola alanındaki bilgi kontrol edilir. Bu değer uyuĢuyorsa bilgiler doğru

girilmiĢtir. Bu durumda kullanıcının Üye Numarası, Adı Soyadı ve Siteye son giriĢ tarihi vb

bilgiler Session değiĢkenlerine alınır.

Bu iĢlemleri yapan kodlar aĢağıda verilmiĢtir.

Diğer taraftan üye giriĢ sisteminin iki görünümü var demiĢtik. Üye giriĢ usercontrol’ü

yüklendiğinde ilk görünümü açar. Fakat üye giriĢi yapıldıysa ilk görünüm değil ikinci görünüm

gelmelidir. Bunu sağlamak için uyeGiris.ascx usercontrol’ünün Page_Load olayına üye giriĢi

Page 30: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

yapılıp yapılmadığını kontrol ederek giriĢ yapıldıysa ikinci görünümü açmasını sağlayan kodlar

eklenmelidir.

Ġkinci görünümde Oturumu Kapat düğmesine basılınca oturumun sonlandırılması için

aĢağıdaki kodlar yazılmalıdır.

Page 31: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

HHHAAAFFFTTTAAA ––– 777 Üye Yetki İşlemleri

Üyelik Yönetimi

SQLDataSource (AccessDataSource) Kontrolü

GridView Kontrolü

Üye Yetki İşlemleri

Bir web sitesinde yönetim paneli ve kullanıcı sayfaları olduğunda veya üyeler arasında

yetki farklılıkları olduğunda, üyelerin yetkilerinin belirlenmesi gerekir. Üyelerin yetkisi için

Veri tabanında Üye tablosuna yetki adında, tinyint (bayt) tipinde bir alan eklendi. Normal

kullanıcı için düĢünülen değer varsayılan değer yapıldı.

Bizim sitemizde iki tür üye olacağı için yetki 1 yönetici, yetki 2 üye için düĢünüldü. Bu

kodlama duruma göre değiĢtirilebilir. Normal üyelerin yetki alanındaki değer 2 olması

gerektiği için bu sütunun varsayılan değeri 2 olarak ayarlandı.

Sitede yetki ile ilgili olarak düzeltmeler yapılması gerekir. Ġlk olarak Üye giriĢ

UserControl’ünde ayarlama yapıldı.

Session[“Yetki”] değiĢkeni eklendi. Ayrıca yetki ile giriĢin doğrudan etkisin görülmesi

için sitenin yeniden yüklenmesi daha doğru olacağı için Response.Redirekt komutu ile

default.aspx sayfası yeniden çağırıldı. Buna göre üye giriĢ UserControl sayfasının kodları

aĢağıdaki gibi olur.

Page 32: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Yönetici yetkisine sahip olan kullanıcıların yönetim sayfalarına ulaĢabilmesi için Menü

UserControl’üne “YÖNETĠM” adında bir link daha eklenmesi gerekir. Bu link sadece yönetici

yetkisine sahip üyeler tarafından görülmelidir. Bu nedenle ASP kontrollerinden HyperLink

kontrolü kullanıldı. Menü UserControl’ü yüklenirken üyenin yetkisine bakılarak bu link

görünür hale getirilecektir.

Bu sitenin tasarımında yetki 1 yönetici idi. Üye giriĢ UserControl’ünde Session’da Yetki

ismindeki değiĢkene üyenin yetkisi kaydedilmiĢti. Menü UserControl’ünde de bu değiĢkenden

yararlanarak YÖNETĠM linkinin görünüp görünmeyeceği belirlenecektir.

Ġlk olarak Session[“Yetki”] isminde bir değiĢkenin olup olmadığı kontrol edilir. Eğer

yoksa YÖNETĠM linki gizlenir. Ġkinci olarak Session[“Yetki”] değiĢkeninin değerinin 1 olup

olmadığı kontrol edilir. Eğer 1 ise YÖNETĠM linki gösterilir, aksi halde gizlenir. Bununla

ilgili olarak Menü UserControl’üne aĢağıdaki kodlar eklenir.

Menüde Yönetim sayfalarına link verilmemiĢ olsa bile oturum açılmadan doğrudan

adres satırından yönetim sayfasının adı yazılarak giriĢ yapılabilir. Hâlbuki yönetim

sayfalarına sadece yöneticilerin üye giriĢi yatıktan sonra girebilmeleri gereklidir. Bu

durumda yöneticilerin giriĢ yapabileceği sayfaların Load olaylarına kontrol kodları

eklenmelidir. Bu kodlar ile yönetici oturumu açılıp açılmadığı kontrol edilir. Eğer yönetici

giriĢi yapılmadıysa sayfaya giriĢ izni verilmez. Bu kodların yönetim ile ilgili tüm sayfalara

eklenmesi gerekir. Fakat bu pratik bir durum değildir. Site incelendiğinde tüm yönetim ile

ilgili sayfalar yönet.master sayfası ile bağlıdır. Bu durumda kontrol kodları sadece

yönet.master isimli MasterPage sayfasına eklenmesi yeterli olacaktır. AĢağıda yönet.master

sayfasnın Load olayına eklenen kod görülmektedir.

Page 33: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Dikkat edilirse, üye giriĢi yapılmadığında ve normal üye giriĢi yapıldığında doğrudan

default.aspx sayfasına yönlendirme yapılmaktadır. Yönetici giriĢinin yapılıp yapılmadığı

Session[“Yetki”] isimli değiĢkenin değeri ile anlaĢılmaktadır. Bu durumda yönetim sayfası

adres çubuğuna yazılsa bile bu yönlendirme sayesinde doğrudan default.aspx sayfası

ekranda görünecektir.

Yönetim sayfalarında kullanılan MasterPage yönet.master sayfasında bir menüye

ihtiyaç vardır. Bu menü yönet.master sayfasında basit olarak hazırlanmıĢtır.

Ġlk olarak web sitemizde üyelik iĢlemleri hazırlanmıĢtır: Yeni üyelik baĢvurusu ve üye

giriĢi. Bu nedenle üyelik yönetim sayfası önce hazırlanacaktır.

Üyelik Yönetim sayfasında veri tabanı bağlantısı ve üye bilgileri üzerinde düzeltmeler

için iki adet asp kontrolü kullanılmıĢtır: SQLDataSource (AccessDataSource), GridView.

SQLDataSource kontrolü y_uyelik.aspx sayfasına eklenir. Bu kontrolün ayarı yapılır.

Kontrol fare ile seçilince sağ üst köĢesinde beliren ok iĢaretine basılır. Açılan menüden

“Configure Data Source” seçeneği seçilir. Burada il olarak veri tabanı bağlantısı ayarı

yapılır.

Page 34: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Burada veri.mdf isimli dosya belirecektir. Bunu seçip Next düğmesine basılınca

connectionstring oluĢturulur.

Sonraki adımda ise veri tabanında hangi tabloya bağlanılacağı belirlenir.

Bu ekranda “Specfy columns …” seçeneği seçilidir. Alttaki combo’dan hangi tabloya

bağlanılacağı belirlenir. Altta o tablodaki alanlar listelenecektir. Burada tüm alanların dâhil

edilmesi için “*” iĢaretlenir.

Biz bu bağlantı ile sadece verileri listeleyeceksek Next ile devam edilir. Fakat veriler

listelenip aynı zamanda üzerinde düzenlemeler (Veri değiĢtirme, Kayıt Ekleme, Kayıt silme)

yapılacaksa Advenced isimli butona basılır.

Gelen diyalog penceresinde “Generate ….” Ġsimli kutucuk iĢaretlenir. Bu sayede

oluĢturulan Seçme (Select) sorgusuna göre veriler üzerinde ekleme, değiĢtirme ve silme

Page 35: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

iĢlemleri için diğer SQL cümleleri oluĢturulur (Insert, Update, Delete). “Ok” butonuna

basarak iĢlem tamamlanır. Daha sonra Next ve Finish butonları ile bağlantı ayarı

tamamlanır.

Bu aĢamada bir konuya dikkat etmek gerekiyor. Üye bilgilerinde yönetici dahi olsak

değiĢtirilmemesi gereken bilgiler vardır. Üyelik tarihi, Son ziyaret, ziyaret sayısı, kullanıcı

adı alanları değiĢtirilmemelidir. Bu alanların değiĢtirilmesini engellemek için

SQLDataSource kontrolünde yapılan ayarlamalarda SQL cümlelerinde düzeltmeler

yapılmalıdır. Aksi halde bu alanlardaki bilgiler de değiĢtirilecektir. Bu nedenle

SQLDataSource’nin ayar kısmına ilk ayarlama yaptığımız Ģekilde tekrar giriĢ yapıyoruz.

Birinci adımda hiçbir değiĢiklik yapmadan ikinci adıma geçiyoruz.

Bu adımda üstteki seçeneği seçiyoruz “Specify a custom…”. Next butonu ile diğer

adıma geçiyoruz.

Page 36: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Burada 4 temel SQL iĢlemi ayrı sekmelerde gösterilmektedir. Yukarıda belirtilen

alanlarda değiĢiklik yapılmaması için Update ve Insert komutlarında düzeltmeler yapılması

gerekir.

ĠĢaretli alanlar silinir

Insert komutunda ise

ĠĢaretli alanlar silinir

Page 37: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Select ve Delete komutlarında değiĢikliğe gerek yoktur. Next butonu ile devam edilir

ve ayar tamamlanır.

Verilerin gösterilmesi ve düzenlenmesini yapmak için ASP kontrollerinden GridView

eklenir. Sağ üst köĢede açılan ok iĢaretine tıklanır. “Choose Data Source” kısmından

SQLDataSource1 seçilir. Bu iĢlemden sonra GridView’in Ģekli veri tabanı tablosuna göre

değiĢtirilir. Aynı ok iĢaretinden “Auto Format” ile GridView kontrolünün biçimlendirmesi

değiĢtirilebilir.

Biz bu grid üzerinde veri değiĢtirme iĢlemleri yapacağımız için aĢağıdaki resimde

görülen ayarlar yapılır

Enable Paging: verileri sayfalayarak göster

Enable Sortig: sütun baĢlığına tıklanınca verileri o sütuna göre sıralı göster

Enable Editing: veriler üzerinde değiĢtirme (Edit) iĢlemine izin ver

Enable Deleting: veriler üzerinde silme (Delete) iĢlemine izin ver

Enable Selection: verilerde seçme iĢlemine izin ver

Görüldüğü gibi iĢaretlemeler yapılınca resimdeki gibi grid üzerinde eklemeler olur.

Site çalıĢtırılıp aynı sayfa gösterildiğinde ise

Page 38: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Görüldüğü gibi tasarımda “Edit, Delete” olarak görünen yazılar site çalıĢınca “Düzenle,

Sil” Ģekline dönüĢmaktedir. Düzenle düğmesine basılınca;

“GüncelleĢtir, Ġptal” Ģekline gelmekte ve düzenlenecek sütunlarda textbox ile veriler

düzenlemeye açılmaktadır. Verilerde değiĢiklik yapıp GüncelleĢtir butonuna basılırsa veriler

veri tabanına iĢlenir.

Burada dikkat edilirse kullanıcıAdı, ÜyelikTarihi, SonZiyaret ve ZiyaretSayısı alanları

için de textbox’lar oluĢmuĢ fakat bu alanlardaki bilgilerin değiĢmemesi için SQL kodlarında

düzeltmeler yapılmıĢtı. Gerçi Ģu haliyle bilgiler değiĢtirilse de veritabanında değiĢmez.

Fakat değiĢmeyecek alanların TextBox’lar ile gösterilmesi çok uygun değil. Bunu GridView

kotrolünde ayarlama yaparak düzeltebiliriz.

Resimde görüldüğü gibi “EditColumns” seçeneği seçilerek bu düzeltme yapılabilir.

Page 39: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

Düzenleme yapılmasını istemediğimiz sütunları soldaki listeden (Selectted fields)

seçip sağ bölmeden (Properties) ReadOnly özelliği True yapılarak sağlanabilir. Properties

penceresinde daha birçok sütun özelliği belirlenebilir.

Page 40: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

HHHAAAFFFTTTAAA --- 888 Yönetim paneli, program listesi ve ekleme(gridview,detailsview)

Page 41: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

HHHAAAFFFTTTAAA --- 999 Resim galerisi, listelenmesi ve detayı (listview)

Page 42: AASSPP..NNEETT DDEERRSS İİÇÇEERRİİĞĞİİASP Nedir? Sunucu taraflı bir teknoloji olan ASP, kullanıcı tarafına etkileĢimli, dinamik Web ... Perl.NET. 9) Derlenmiş Kod Bildiğimiz

HHHAAAFFFTTTAAA --- 111000 Resim galerisi yönetim paneli (upload control)