Koray Kırdinli

Yazılım ve İş Yaşamı Hakkında Paylaşımlar

ASP.NET Önbellekleme III (Programatic Caching)

Bazen sayfa üzerinde yaptığımız cache’lemenin fonksiyonelitisi yetmeyebilir ve cache’leme mekanizmamızı kodun içinden yönetmek isteyebiliriz. Kod tarafında cache’lemenin sayfa tarafındaki cach’leme ile bağı çok fazla olmasa da kod içinden bazı değerlere müdahale edebiliriz.

■  Response.Cache.setExpires  : Sayfanın ne kadar saniye cache’leneceğini söyler.
■  Response.Cache.setCacheability  : Bir enum değeri ister ; HttpCacheability . HttpCacheability.Public (Client veServer’da caching enable olur) ,  HttpCacheability.Server (Sadece Server’da caching enable olur).
■  Response.Cache.setvalidUntilExpires : true olduğu zaman sayfanın cache’lenmesi için bir süre verilmiş ise bu süre soruna kadar cache’leme expire olmaz.

Bazı sayfalar cache’leme için uygun değildir çünkü bazı kontrollerin dinamik olarak üretilmesi gerekebilir. Bütün dinamik oluşan kontroller için ayrı ayrı cache policy’ler uygulamak yerine substitution’ları kullanabiliriz. Asp.net 2 yöntem içerir.

■  Response.Writesubstitution  metodu :
■  Substitution control :

Bazen belli event’lere göre cache’i bozma ihtiyacı duyabiliriz. Örneğin bir sql sorgusu sonucuna göre.
Bunu yapabilmek için ASP.NET bir çok yöntem sunar. HttpValidationStatus ile bir sayfanın yeni mi generate edildiği yoksa cache’den mi alındığı bulunabilir.
HttpValidationStatus.Invalid : Bu sayfanın cache’inin bozulmasına ve tekrardan dinamik olarak generate edilmesine sebep olur.
HttpValidationStatus.IgnoreThisRequest :  Mevcut sayfanın bir önceki cache’lenmiş versiyonu bozulmadan yeniden generate edilmesini sağlar.
HttpValidationStatus.Valid : Cache’lenmiş sayfayı getirmesini sağlar.

Output Dependency

Response.AddCacheDependency : Cache’lenmiş response Cache Dependency nesnesine bağımlıdır.
Response.AddCacheItemDependency ve Response.AddCacheItemDependencies : Cache’lenmiş response bir veya daha çok nesneye bağımlıdır.
Response.AddFileDependency and Response.AddFileDependencies :  Cache’lenmiş response bir veya daha çok dosyaya bağımlıdır.

Buraya kadar her bir user control,sayfa,nesne üzerinden önbellekleme yapabileceğimiz gördük ve son olarak da bütün cache’leme işlemlerini web.config üzerinden merkezileştirebiliriz. Aşağıdaki örnek sadece server tarafında bir önbelleklemeyi 1 dk süre ile yapar ve browser tiplerine göre de farklı versiyonlarını tutar.

<outputCacheSettings>
  <outputCacheProfiles>
    <add name="ServerOnly" 
      duration="60" 
      varyByCustom="browser" 
      location="Server" />
  </outputCacheProfiles>
</outputCacheSettings>
Reklamlar

Kasım 30, 2011 - Posted by | ASP.NET | , , , , ,

Henüz yorum yapılmamış.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s