Her ne kadar seçmiş olduğum başlık ASP.NET içersede bu yapıyı WPF, WinForms, WindowsServices, ASP.NET MVC gibi .NET ‘in hakim olduğu heryerde kullanabileceğinizi öncelikle belirtmek isterim. İnternet sitelerimizi OutputCache ile önbelleğe aldık ancak sık sık veritabanından aynı veriyi çekmek veya IO işlemleri gerçekleştirmek ciddi performans problemlerine sebep oluyor. Bunu aşmak için verileri önbelleğe almak oldukça geçerli bir çözümdür. .NET kütüphanesindeki ObjectCache sınıfı bu işin biçilmiş kaftandır. Bu yazımda sizlere ObjectCache sınıfını kullanarak veriönbellekme işlemi gerçekleştirmek için kullanışlı bir yol sunmak istiyorum.
Önbelleğe yazma, okuma, kontrol etme ve silme için metotları tanımlayan bir arayüz oluşturduk. Geriye bu metotları miras alan bir DataCacheProvider sınıfı yazmak kaldı.
Elimizde istediğimiz veriyi okuyup yazabileceğimiz bir önbellek sağlayımız olduğuna göre LinqToSql ile kullanabileceğimiz bir Repository olsa fena olmazdı.
Veritabanımızda Currency denen tabloyu önbelleğe aldık. Currency() metodu List tipinde bir sonuç döndürüyor. İlk defa sorgu yaptığınızda 30 dakikalığına önbelleğe alıyor. Sonraki 30 dakika boyunca veritabanına sorgu yapmadan doğrudan önbellekten okuyoruz. Bu da bize müthiş bir performans avantajı veriyor.
Şeklinde bir kodlamayla önbelleğe alınmış veriler arasında sorgulama yapabilirsiniz.