State Management ve View State

Bu makalemizde state management (durum yönetimi) ve view state hakkinda bilgi verecegim.

State Management

Web ortami stateless’dir. Bunun anlami bir web sayfasi sinifi her çagirildigi zaman yeniden olusturulur. Ayni seklide http protokolide stateless’dir, sayfa üzerinde istemci bilgilerini tutmaz. Örnegin bir textbox içine metin yazip gönder butonuna basarsaniz bu metin postback olayindan sonra görünmez çünkü sayfa her postbackte yeninde olusturulur.

.

Yukarda görüldügü gibi sayfa istemciye gönderilmeden önce tekrar olusturulur. Bu islem her istek için gerçeklesir.  ASP.NET bu problemi çözmek için View State, Cookies, Session, Application Object gibi özellikler sunar. Bunlardan çerezlere (cookie) daha önceki makalelerimizde deginmistik.

Bu çözümlerden hangisini kullanacagimiza karar vermek için bazi kriterler kullaniriz.

·         Ne kadar bilgi saklamak istiyorsunuz?

·         Istemci kalicimi yoksa geçici çerezlerimi kabul ediyor?

·         Bilgileri istemcide mi yoksa sunucuda mi saklamak istiyorsunuz?

·         Bilgileriniz önemlimi?

·         Uygulamaniz için bant genisligi ve performans kriterleriniz nedir?

·         Bilgileri kullanici bazlimi kaydetmek istiyorsunuz?

·         Bilgileri ne kadar süreyle saklamak istiyorsunuz?

·         Uygulamaniz bir Web Farm (birden fazla sunucu) , Web Garden (Çok islemcili sunucu) yoksa tek islemcili bir sunucuda mi çalisiyor.

 

Yukaridaki kriterleri bilmek uygulamaniz için en uygun state management yöntemini kullanmanizi saglayacaktir.

State Management Türleri

Iki türlü state management vardir:

1.       Istemci Tarafli State Management

·         View State

·         Hidden Field

·         Cookies (Çerezler)

·         Control State

2.       Sunucu Tarafli State Management

·         Session

·         Application Object

·         Caching

·         Database

Istemci tarafli olanlar herhangi bir sunucu kaynagini kullanmazlar. Bilgileri istemci tarafinda tutarlar. Sunucu tarafli olanlar ise bilgileri sucunu kaynaklarinda tutarlar. Istemci tarafli mi yoksa sunucu tarafli mi state management kullanacaginizi seçmek ihtiyaçlariniza ve yukarda verilen kriterlere baglidir.

.

View State

View State en önemli istemci tarafli state management yöntemlerindendir. Sayfanizda bulunan bilgileri postback esnasinda sayfa içerisinde saklar.

Örnegin bir degiskeni view state içine atmak isterseniz,

string KullaniciAdi = "Mehmet Sabri KUNT";

ViewState["Kullanici"] = KullaniciAdi;

View State içindeki bir veriyi geri almak için ise

string KullaniciAdi = ViewState["Kullanici"].ToString();

kodlarini kullanirsiniz. View state içinde bilgileri object türünde saklandigi için sakladiginiz veriyi yeniden yüklerden tip çevrimlerine dikkat etmeniz gerekir.

View State in avantajlari

·         Kullanimi kolaydir.

·         Sunucu kaynaklarina ihtiyaç duymaz.

·         Sakladigi verileri kodlama yaparak daha güvenli hale getirir.

View State in dezavantajlari

·         Asiri büyüklükteki veriler için kullanildiginda performans kaybina sebep olur.

·         Bilgileri kodlayarak gizli alanlarda tutar. Kodlamasini çözerek bilgilere ulasmak kolaydir.

Ne zaman View State kullanmaliyiz

State managementlarin kullanim yerleri ile ilgili yukarda bilgi vermistim. View state kullanilmasi ile ilgili birkaç noktaya tekrar deginmek istiyorum.

·         Veriler küçük boyutlu olduklari zaman çünkü gönderilen veriler sayfa içerisinde gönderilirler buda büyük boyutlu verilerde performans kaybina sebep olur.

·         Güvenligin önemli oldugu datalari View State içine koymayin.

Ne Zaman View State Kullanmamaliyiz

·         Kullandiginiz kontrol içerigi asla degismiyorsa

·         Kullanilan kontrol her postbackde yeniden dolduruluyorsa

View Stateler verileri sayfa içerisinde bazi hash ve kodlama algoritmalarina göre kodlayarak gizli alanlada string olarak tutarlar. Asagida bir sayfa içerisinde bulunan view statelerin kaynak kodlarda nasil saklandigi görünmektedir.

 .

 

Sonraki makalelerimizde view stateleri sikistirarak sayfa boyutlarini nasil küçültebilecegimize bakacagim. Bir baska makalede görüsmek üzere…

One thought on “State Management ve View State

Guests için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir