Bir önceki yazımda ASP.NET State Management konusunun Client tarafındaki yönetim araçlarını incelemiştik. Bu yazımda ise Server taraflı yönetim araçlarına değiniyor olacağım.

Server taraflı ASP.NET durum yönetim seçenekleri, Client taraflı olanlara nazaran sayfa bilgilerimizi daha güvenli bir ortamda saklarlar. Ancak sunucu taraflı oldukları için tabiki sunucumuzun kaynaklarını kullanırlar.

ASP.NET in bize sunduğu Server taraflı State Management seçeneklerinden önemli olanları şöyledir;

  • Application State
  • Session State

Şimdi bu seçenekleri teker teker incelemeye çalışalım

Application State

Application State HttpApplicationState sınıfı üzerinden web uygulamalarımızda değerler saklamamıza imkan sağlar. Application state e web uygulamamızdaki tüm sayfalar ulaşabilir.  Application state key/value mantığıyla çalışır. Veriler uygulama bazında dictionary mantığıyla saklanır.

Kullanımı:
Application.Add("[Key]", ["Value"]);

Veri Alma işlemi:
string value = Application["Key"].ToString();

Bu yöntemi kullanmanın avanyajları:

  1. Kolay kullanım : key/value mantığıyla çalıştığı için kullanımı basittir
  2. Uygulama Alanı genişliği : Application state e web uygulamamızın tüm sayfaları erişebildiği için uygulama bazında yönetim sağlar

Dejavantajları:

  1. Uygulama Alanı genişliği : Uygulama alanı genişliği dikkatli kullanılmadığı takdirde bir dejavantaj olarak ta karşımıza çıkabilir. Şöyle ki : Uygulama bazındaki tüm sayfaların Application State e erişim hakkı olduğu için, bir sayfadaki kodun değiştirdiği Application State değeri, başka bir sayfadakiyle aynı olmayabilir. Dolayısıyla veri tutarsızlığına neden olabilir.
  2. Data devamlılığı limiti : Application state sunucumuz update olduğunda, yeniden başlatıldığında veya çöktüğünde kaybolacağı için Application state te tutulan veriler de kaybolacaktır
  3. Kaynak gereksinimi : Application state sunucu taraflı bir durum kontrol seçeneği olduğu için sunucumuzun kaynaklarını tüketecektir.

 

Session State

Session State yapısı da Application Satate e benzer. Ancak uygulama genelinde değil de o an uygulamamızı çalıştıran tarayıcı kapsamında veri tutmamıza olanak sağlar. Uygulamamızı çalıştıran her bir tarayıcının session değeri farklı olacaktır. Hatta aynı kullanıcı uygulamamızı çalıtırıp, daha sonra uygulamayı kapatıp tekrar uygulamamızı çalıştırsa yine session değerleri farklı olacaktır. Session State HttpSessionState sınıfının bir örneğidir. Application State gibi key/value yapısıyla çalışır. Session a eklenen veriler artık sunucu tarafından yönetilirler.

Kullanımı:
Session.Add("UserName", "Muammer"); //string türünde key alırken, object türünde value kabul eder. Bu da saklayabildiğimiz verilerin çok çeşitli olabileceği anlamına gelir.
//veya
Session["UserName"] = "Muammer";

Veri Alma İşlemi
string value = Session["UserName"].ToString();

Bu yöntemi kullanmanın avantajları:

  1. Kolay kullanım : key/value mantığıyla çalıştığı için kullanımı basittir
  2. Oturuma özel uygulama : her bir oturum için farklı değere sahip olduğu için uygulamamız tarafından Session değerlerinin yönetimi kolaydır.
  3. Veri bütünlülüğü : oturuma özel olduğu için IIS imiz restart olsa bile verilerimiz saklanmaya devam eder ve verilerimizi kaybetmeyiz.

Dezavantajları:

  1. Performans : Session değerleri sunucumuzun Ram inde saklandığı için performans açısından kullanırken dikkatli olmalıyız.

 

Bu iki makale ile ASP.NET State Management konusuna değinmeye çalıştık. Umarım yardımcı olabilmişimdir. Konu ile alakalı daha geniş bilgi sahibi olmak isteyenler MSDN in sayfasından daha geniş bilgi edinebilirler.

2 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5