Asp.Net Mvc Uygulamalarında Yaşam Döngüsü (Life Cycle) ve Context Objeleri

Asp.Net Mvc 5 ile uygulama geliştirirken yaşam döngüsü kavramını bilmemiz son derece önemli. Uygulama geliştirirken pek çok senaryoda Context nesnelerine ihtiyaç duyacağız. İşte bu Context nesnelerimiz yaşam döngüsü kavramı ile ilişkili. Bu sebeple bu 2 konuyu birlikte işleyeceğiz.

Yazımızın konusu Mvc üzerine olduğu için Asp.Net platformunun diğer ürünleri hakkında konuşmayacağız. Aslında şöyle bir hatırlatma yapsak iyi olur. Asp.Net için teknoloji, platform veya framework kelimelerinden birisini kullanabiliriz. Mvc, Web Forms, Web Pages gibi kavramlar ise bizim ürünlerimizdir. Şu şekilde cümleler kurabiliriz.

  • Asp.Net teknolojisinin Mvc ürünü
  • Asp.Net teknolojisinin Web Forms ürünü
  • Asp.Net teknolojisinin Web Pages ürünü
  • Asp.Net Core teknolojisinin Mvc ürünü
  • Asp.Net Core teknolojisinin Razor Pages ürünü

Yukarıda listelenen ürünler Asp.Net veya Asp.Net Core platformu üzerinde inşa edilmiş ürünler. Ürünler arasındaki temel farklılık uygulama geliştirme aşamasında size sundukları yaklaşımlardır. Örneğin Mvc ürününde kullanıcılardan gelen istekleri controller ismini verdiğimiz sınıflarımızın içinde yer alan action methodlar karşılarken, Web Forms ürününde gelen isteği .aspx uzantılı dosyalarımız (Web Forms Page) karşılar.

Konumuza dönecek olursak; Asp.Net Mvc de 2 farklı yaşam döngüsü (life cycle) kavramı vardır.

  1. Application Life Cycle (Uygulamanın Yaşam Döngüsü)
  2. Request Life Cycle (Gelen İsteğin Yaşam Döngüsü)

Application Life Cycle (Uygulamanın Yaşam Döngüsü)

Uygulamamızın yaşam döngüsü, uygulamamızı sunucumuza yükledikten sonra ilk http isteğinin geldiği andan itibaren başlar ve uygulamamız kontrollü bir biçimde sonlandırılıncaya kadar devam eder. Örneğin saat 10.00 da uygulamamızı sunucumuza yüklemiş olalım. Ve ilk http isteği saat 10.03 te uygulamamıza gelmiş olsun. Ve sonra bakım için uygulamamızı kontrollü bir şekilde saat 12.03 te sonlandıralım. Sonlandırma işleminin kontrollü olarak yapılmasından kastettiğim olay IIS de uygulamayı durdur butonuna basmamız. Veya IIS in kendisinin uygulamayı durdurması. İşte bu durumda uygulamamız 2 saat boyunca yaşamış oldu. Uygulamamız burada 2 saat boyunca onlarca veya yüzlerce http isteğine cevap vermiş olabilir.

Asp.Net, uygulamamız başladığında veya uygulamamız sonlandığında Global.asax isimli dosyamız içindeki MvcApplication sınıfına ait bazı özel methodları tetikliyor.Bu methodlarımız Application_Start() ve Application_End(). Bu sayede uygulama başladığında veya sonlandığında yapmak istediğimiz işlemlerimizi yapabiliyoruz. Aslında burada sıklıkla kullanacağımız metodumuz Application_Start() metodu. Çünkü Asp.Net Mvc uygulamalarımızda uygulama başladığında 1 defaya mahsus olarak yapılması gereken ayarlarımızı burada yapıyoruz. MvcApplication sınıfı HttpApplication sınıfından türemiş olan bir sınıf.

Yorum yapın