hayal et, tasarla, hayata geçir



Durum Yönetimi ve Farkları

Bu yazıda ASP.NET durum yönetimi (State Management) altında bulunan Querystring, ViewState, Session, Cache, Application, Cookie ve Items nesnelerinin farklarına göz atacağız.

Querystring

  • - Querystring sayfalar arasında veri göndermemizi sağlar.
  • - İçerisinde bulunan veriyi son kullanıcı birebir gördüğü için gizli tutulması gereken verilerin taşınmasında kesinlikle kullanılmamalıdır.
  • - Session nesnesinin kullanılmadığı zamanlarda kullanıcıya görünmesini engellemek için Server.Transfer metodu kullanılabilir.
  • - Kullanıcının içerisindeki veriyi değiştirmesi sorun yaratıyorsa Querystring hash yöntemi kullanılabilir.

Detaylı bir Querystring yazısı için tıklayınız

ViewState

  • - ViewState aynı sayfa üzerindeki post-back ler arasında veri göndermemizi ve saklamamızı sağlar. Başka bir sayfaya gidildiğinde veya aynı sayfaya tamamen yeniden çağırıldığında ViewState kaybolur.
  • - İçerisinde bulunan veri base64 koduna çevrilir. Bu kod çok rahatlıkla okunabildiğinden güvenli değildir. ViewState şifrelenebilir ama bu da işlemin süresini uzatacağından mümkün olduğunca tercih edilmemelidir.
  • - Sayfadaki kontrollerin veritabanı üzerinden veriyi tekrar çekmemesi ve bir çok property nin mevcut durumunu koruyabilmesi için kullanılır.

Detaylı bir ViewState yazısı için tıklayınız

Session

  • - Session verileri kullanıcı bazlı saklamamızı sağlar. Session zaman aşımına uğrayınca veya kullanıcı siteden çıkış yaptığında o kullanıcı için silinir, sitedeki diğer kullanıcıların bilgileri saklı tututlmaya devam eder.
  • - İçerisindeki veri sunucu tarafında tutulduğu için en güvenli yöntemlerden biridir. Herhangi bir veri kullanıcı bazlı ve gizli tutulması gerekiyor ise bu yöntem tercih edilmelidir.

Cache

  • - Cache tüm kullanıcıların ortak kullanacağı verileri saklamamızı sağlar. En çok veritabanından çok sık çekilen verilerin tutulması için kullanılır.
  • - Verinin güncelliği sorundur. Güncelliğin sağlanması için dependency ve expiration date özellikleri kullanılır.
  • - İçerisindeki veri sunucu tarafında tutulduğu için Session gibi güvenli yöntemlerden biridir.

Application

  • - Application, aynı Cache gibi tüm kullanıcıların ortak kullanacağı verileri saklamamızı sağlar.
  • - Application Scope’un Cache yapısından farkı burada saklanacak verilerin güncel olma gibi bir sorununun olmaması gerekliliğidir. Zaten Cache’teki dependency ve expiration date özellikleri Application’da yoktur. Örnek vermek gerekirse ASP.NET web.config ayarlarını siteye gelen ilk request ile birlikte Application State’e yükler.
  • - İçerisindeki veri sunucu tarafında tutulduğu için Session ve Cache gibi güvenli yöntemlerden biridir.

Cookie

  • - Cookie tarayıcı bazlı verileri saklamamızı sağlar.
  • - Kullanıcı tarayıcı önbelleğini sildiği ve Cookie’nin son tarihi geldiği zaman silinir.
  • - İçerisindeki veri daha çok login bilgisi veya seçili dil bilgisi gibi kullanıcıya özel bilgilerdir.

Items

  • - Items koleksiyonu (HttpContext.Current.Items) request bazlı verileri saklamamızı sağlar. ViewState’i andırsa da sadece Page sınıfı üzerinde değil tüm Application Life Cycle üzerinde kullanabileceğimiz bir sınıftır.
  • - Daha çok Server.Transfer, Server.Execute metodlarında ve HttpModule yazımı sırasında kullanılır.
  • - Request tamamlandığı zaman barındırdığı veri de silinmiş olur. Sunucu taraflı olduğu için güvenli bir yöntemdir.


1 Yorum


  1. Anonim

    anlaşılır ve akılda kalıcı teşşekürler..

    Tem 29, 2009 @ 11:33

Yanıtla



SON YAZILARIM

genel
Microsoft Türkiye Açık Akademi

Microsoft tarafından Türkiye'deki ilk ücretsiz online yazılım okulu Açık Akademi açıldı....

genel
Windows Azure Blob Arayüzü

Bir önceki yazımızda Blob servisine kısa bir giriş yapmıştık. Yazıyı okumak isterseniz

genel
Windows Azure Blob Servisi

Microsoft'un bulut mimarisi Windows Azure platformu üzerinde veri altyapısı alışıla gelmiş yöntemlerden...