1. Ana Sayfa
  2. ASP.Net
  3. ViewState ile Session Arasındaki Farklar

ViewState ile Session Arasındaki Farklar

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;

  1. ASP.NET tarafından otomatik olarak yönetilmesidir. Kapatılmadığı sürece arkada çalışmaya devam eder.
  2. 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ı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

Yorum Yap

Yazar Hakkında

Sakarya doğumlu Yusuf Akdemir, Sakarya Üniversitesi Hendek MYO Bilgisayar Programcılığı mezunudur. DELL ProSupport Warranty Technical Support ekibinde çalışmıştır. Şu anda .Net Developer olarak çalışmaktadır. Uzmanlık alanları: C#, Microsoft SQL Server, ADO.NET, LİNQ, Entitiy Freamwork, OOP, ASP.NET, MVC, WPF, Microsoft Visual Studio’dur.

Yorum Yap