Bu yazıda sizlere Dependency Cache kullanımını göstereceğim. Dependency Cache herhangi bir fiziksel bir dosyada txt,xml,doc,xls vs.. değişiklik olduğu zaman Cache'in bozulup yeniden oluşturulmasını sağlar. ufak bir örnek ile gösterelim
1)Öncelikle Cache adında bir Controller oluşturalım.
2)Entitiy Framework ile veritabanı bağlantımızı yapalım.
3)Yeni bir Model oluşturalım
Modelimize aşağıdaki gibi kodlarımızı yazalım.

Bu aşamada neler yaptığımızı kısaca anlatayım. Öncelikle cache'in null olup olmadığını kontrol ediyorum eğer cache boş ise veritabanına gidip buradaki 47658 tane mahalleyi bir listeye atıyorum. Daha sonra bizim cache ile bağlılığımızı kontrol edilmesini sağlaması amacıyla bir tane cacheKir.txt dosyası oluşturuyorum eğer bu dosyada bir değişiklik olduğu zaman bu CacheDependency bizim cachemizi bozup yeniden oluşturmasını sağlayacaktır.
Daha sonra MahalleCache keyi adı altında veritabanından gelen bilgilerimizi 1 yıllık cache tutması amacıyla yapılandırıyoruz peki veritabanında yeni bir mahalle eklediğimizde,sildiğimizde veya güncellediğimizde sayfada görüntülenmesi için 1 yıl bekliyecek miyiz? İşte bu aşamada CacheDependency işin içine girmiş oluyor. CacheDependency'in referans olarak aldığı CacheKir.txt adlı dosyada değişiklik yaptığımız zaman artık yeni bilgilerin görüntülenmesi için 1 yıl beklememiş olacağız. :)
Şimdi Controller daki kodlarımızı aşağıdaki gibi yazalım...

Şimdi View kodlarımızı yazalım.

Şimdi Model deki kodlarıma Break Point koyuyorum.

Görmüş olduğunuz gibi projemi ilk kez çalıştırdığım için veritabanına gidip verileri Cache yazdı artık programımız 1 yıl boyunca verileri cache'den okuyacak.
Verilerimin geldiği sayfada F5 yapıyorum.

Evet görmüş olduğunuz gibi artık else düşüyor ve artık verileri cache den okuyor
ve biz CacheKir dosyasında değişiklik yapmadığımız sürece 1 yıl boyunca cache den okumaya devam edecek.

Şimdi veritabanında bir değişiklik yaptığım için bu verileriminde cache yansıması için CacheKir adlı dosyada değişiklik yapıyorum gördüğünüz gibi dosyada değişiklik olduğu için cache yeniden oluşturuluyor...
Anlamadığınız yer olursa sorun cevaplamaya çalışırım
herkese bol kodlu günler.
Hiç yorum yok:
Yorum Gönder