ASP.NET ile Application State ve Online Ziyaretçi Sayısı Hesaplama

ASP.NET ile Application State ve Online Ziyaretçi Sayısı Hesaplama

visitorseren
Uygulamamız üzerinde her kullanıcı ve her sayfa için kullanabileceğimiz sunucu taraflı olan genel bir durum yönetiminden daha önce bahsetmemiştim.Bu durum yönetiminin adı Application State yani türkçe adıyla Uygulama Durumu. Application State HttpApplicationState sınıfı ile uygulama bazlı değerler saklamamıza yarar. 

Application State verisi güncellenirken güvenli bir şekilde yapılmalıdır. Bunun için Lock ve UnLock Metotları işlemin başında ve sonunda kullanılmasında yarar vardır. 
Application State'ler, Session'larda olduğu gibi değer atamasına sahiptir.

ApplicationState Oluşturma

Application["Appisim"] = "Değer";

ApplicationState Değeri Alma

string appdegeri = (string)Application["Appisim"];

ApplicationState Silme

Oluşturmuş olduğumuz ApplicationState'ler Sunucu taraflı saklandığı için Sunucumuz üzerinde yük oluşturacaktır. Bu yüzden kullanmaya ihtiyacımız olmadığı durumlarda ApplicationState'leri Silmemiz gerekir.

Application.Remove("Appisim");

ApplicationState Tamamını Silme

Application.RemoveAll();

Online Ziyaretçi Sayısı Hesaplama

Application State'lerin kullanımı hakkında en iyi örneklerden biri Online Ziyaretçi Sayısı Hesaplama uygulamasıdır. Bu uygulama ile Application State'lerin kullanılış mantığını anlamış olacağız.
Sitemize giren her kullanıcı Global.asax içindeki SessionStart'ı çalıştırmış olur ve sitemizden çıkan her kişide Session_End'i çalıştırmış olur. Biz Session_Start'a gelen her kullanıcı için Online Ziyaretçi sayımızı 1 artıracağız. Session_End'e gelen her kullanıcı için ise Online Ziyaretçi sayımızı 1 azaltacağız. Böylece Online Ziyaretçi sayımızı güncel olarak tutmuş olacağız. Kodlar aşağıda verilmiştir. Bu kodları Global.asax içine yazıyoruz.

Global.asax:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void Application_Start(object sender, EventArgs e)
 {
    Application["OnlineZiyaretci"] = 0; //Burada OnlineZiyaretçi tanımı yapılmıştır.
 }
void Application_End(object sender, EventArgs e)
 {
    Application.Remove("OnlineZiyaretci"); //Burada uygulama sonlandırılmıştır ve OnlineZiyaretci State'imizi siliyoruz.
 }
void Session_Start(object sender, EventArgs e)
 {
    Application.Lock();
    Application["OnlineZiyaretci"] = (int)Application["OnlineZiyaretci"] + 1; //Burada sitemize yeni bir kullanıcı girdiğini anlıyoruz ve OnlineZiyaretçi sayımızı 1 artırıyoruz.
    Application.UnLock();
 }
void Session_End(object sender, EventArgs e)
 {
    Application.Lock();
    Application["OnlineZiyaretci"] = (int)Application["OnlineZiyaretci"] - 1;  //Burada sitemizden bir kullanıcının ayrılmış olduğunu anlıyoruz ve OnlineZiyaretçi sayımızı 1 azaltıyoruz.
    Application.UnLock();
  }

Bu şekilde Online Ziyaretçi sayımız bizim için sürekli olarak hesaplanacaktır. Burada oluşturduğumuz Application["OnlineZiyaretci"] state'imizi istediğimiz bir sayfada kullanabilir ve görüntüleyebiliriz. Her sayfada görünmesini istiyorsanız MasterPage'iniz içinde kullanabilirsiniz.

Yorumlar

Bu blogdaki popüler yayınlar

Asp.Net ile Mernisten veri Çekme