Bu yazımda ASP.NET durum yönetimi (State Management) altında bulunan ViewState ile Session Items nesnelerinin arasındaki farklarını inceleyeceğiz.
ViewState
Verileri saklamak için default olarak kullanılan bir tekniktir. Sayfa post back olduğunda ve geri geldiğinde aynı sayfadaki değerlerin saklanması işlemini ViewState yapar. Sayfanın tarayıcıdan dönerken ki haline ulaşabilmemizi ve sayfa geri gönderilirken otomatikman tekrar bu bilgilerle gitmesini sağlar. Dolayısıyla sayfalar arası veri taşımaz.
Resim-1
ViewState iki türlü kullanılır;
- ASP.NET tarafından otomatik olarak yönetilmesidir. Kapatılmadığı sürece arkada çalışmaya devam eder.
- Kod kısmında koleksiyon olarak kullanılmasıdır.
Peki ViewState nasıl çalışır?
ASP.NET arka tarafta gizli bir input kontrolü yaratır. Bu input kontrolünün içinde, sayfadaki istenilen kontrollerin bazı propertylerini base64 koduna çevirerek saklar. Bu gizlenmiş ViewState kontrolü sayfayla birlikte yaşar ve seyahat eder. Eğer dikkatli ve kontrollü olarak kullanılmassa, View State kontrolümüz gittikçe şişer ve ciddi performans sıkıntılarına sebep olur. Üstelik aspx sayfamızın içinde bulunan bir kontrol olduğu için hem post back hem de request süresini uzatır.
Session
Kullanıcılara ait verilerin sunucu üzerinde tutulmasını sağlayan yapıdır. Kullanıcı siteden çıkış yaptığında veya session zaman aşımına uğradığında o kullanıcı için bilgiler silinir diğer kullanıcıların bilgileri tabiki de session üzerinde tutulmaya devam eder. Çok güvenli bir yöntemdir. Çünkü bilgiler sunucu tarafında tutulmaktadır. Önemli bilgiler gizli tutulması gerekiyor ise session yöntemi tercih edilmelidir.
Resim-2
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar