Durum yönetiminde sıkça kullanılabilen türlerden biri olan Application, sunucunun hafızası üzerinde saklanır ve IIS tarafından yönetilir.
Application üzerinden veri almak veya vermek veritabanı veya dosya üzerinden veri alıp vermekten çok daha hızlıdır.
Session ın tersine Application tüm oturumlar tarafından erişilebilir. Bu sebeple application, kullanıcılara özgü değişmeyen
küçük boyutlu verileri saklamak ve tüm oturumlara bu veriyi paylaştırmak için iyi bir yerdir.
Application nesnesi HttpApplicationState sınıfında yer almaktadır. Bu sınıf key-value nesneleri saklamaktadır. Fakat bizler genelde
Application özelliğine erişmek için HttpContext sınıfını kullanırız. örneğin;
HttpContext.Current.Application.Add("myKey",myObject);
(MyObject)HttpContext.Current.Application["myKey"];
Application nesnesi, uygulama çalıştığında yaratılır ve bu nokta da Global.asax dosyası üzerinde bulunan
Application_Start methodudur. Eğer uygulamanız çalışmaya başladığında birtakım verileri hazırda bulundurmak
istiyorsanız Application_Start sizi bekliyor. Ayrıca application üzerinde veri tutmak için global.asax a özgü bir yöntemle
sabit nesneler tanımlanabilir.Örneğin;
<object runat="server" scope="application" ID="myObject" PROGID="MSWC.MYOBJECT" ></object>
protected void Page_Load(Object sender, EventArgs e)
Label1.Text = myObject.Name;
End Sub
Fakat burada bilinmesi gereken bir konu sabit objeler sadece global.asax da tanımlanabilir. Aksi halde hata ile karşılaşırsınız.
Application a erişim bu kadar kolay iken, aynı iis üzerinde çalışsalar dahi farklı uygulamalar birbirlerinin
içerdikleri verilere erişemezler. Bir dez avantaj da uygulama durduğunda application üzerindeki verileriniz kaybolacaktır.
Application nesnesinden kısaca bahsetmeye çalıştım, umarım faydalı olur; Veda etmeden önce ASP.NET uygulamalarında IIS üzerindeki
yaşam döngüsünü aşağıdaki linkten incelemenizi tavsiye ederim;
http://msdn.microsoft.com/en-us/library/ms178473.aspx
Sağlıcakla kalın..
İhsan Yaprak
ihsanyaprak[at]erciyesyazilim.com
1 kişi tarafından 5.0 olarak değerlendirildi
- Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5