Skip to main content

Veritabanı Yerine Cache’deki Verilerle Çalışmak Webiner Videosu ve Kodları

Geçtiğimiz Salı akşamı soru-cevap bölümüyle birlikte yaklaşık 2 saat süren bir webineri tamamladık. Webinerde Entity Framework ile geliştirdiğimiz web tabanlı bir uygulamada, veritabanı ve uygulama sunucularının yükünü azaltmak ve daha performanslı çalışmalarını sağlamak için uygulamamızın Cache katmanını nasıl geliştirebileceğimiz üzerine çalışmalar yaptık. SqlCacheDependency aracılığıyla Application_Start’ta ayağa kaldırdığımız Cache nesneleri sayesinde, veritabanı sunucusuna en az sayıda sorgu göndermek ve veritabanındaki tabloları sorgulamak yerine bellekteki entity nesnelerini sorgulayarak etkin çalışmanın yollarını aradık ve generic yapıdaki basit bir Caching kütüphanesi yazarak nihayetinde projemizi sonlandırdık. Tabi ki şu an burada bahsedemeyeceğimiz bir takım ayarlar, kullanım detayları ve ipuçlarından da bahsettik. Zaten tüm detayları webiner videosunda bulabilirsiniz.

Webiner videosunda webinerin son 15-20 dakikalık kısmı yer almıyor maalesef, zira bu videoyu bile elde ettiğim için şükretmeliyim(Video kayıdı için Bahtiyar Dilek’e buradan teşekkür ediyorum) Ayrıca webinerde geliştirdiğimiz projenin kodlarını da aşağıdaki linklerden indirebilirsiniz.

Veritabanı Yerine Cache’deki Verilerle Çalışmak Webiner Videosu ve Kodları” hakkında 5 yorum

  1. Bu değerli sunu için çok teşekkür ediyorum. Video kayıtlarında sp ilgili kod çözümünü tam alamadık buna benzer bir çalışma olmasımı gerekiyor?

    private T GetValue(string tableName, string columnName, int stationNo) where TEntity : class
    {
    TEntity tmp = context.CreateObjectSet().
    Where(“it.id == @a”, new ObjectParameter(“a”, stationNo)).
    Single() as TEntity;

    return (T)tmp.GetType().GetProperties().
    Where(a => a.Name == columnName).
    Single().
    GetValue(tmp, null);
    }

  2. Evet sunumda o soru sorulmuştu ancak runtime’da aklıma tam olarak gelmemişti :) Gönderdiğin kod çalışır mı net bilemiyorum, ancak ilerleyen günlerde complex linq sorgularının cachelenmesi ile ilgili bir blog postu yayınlanamayı düşünüyordum, tahminimce o sorgu sp’lerin de cachelenmesinde kullanılabilir.

    Biraz elimi hızlandırıp o postu hazırlayayım. Yazıyı 1-2 gün içerisinde bloga ekleyeceğim, takipte kalın :)

  3. Hocam sunum için öncelikle çok teşekkürler güzel bir kaynak oldu benim için. Sunumla beraber projemde SqlDependency tek tablolarda kullanmaktayım.
    Sormak istediğim hazırlamış olduğum 3 – 4 tablonun inner join ile birleştirimiş bir storeprosedurden gelen sonuçlarıda bu şekilde cache leye bilirmiyiz yada bunun yapmanın başka bir yolu varmı?

  4. Merhaba

    Aşağıdaki hata dan kurtulmak için ne yapmam gerekir.
    Hata return EntityCacheHelper.Get().ToList().OrderByDescending(x => x.ProductID);

    bu satırda oluşuyor

    İyi Çalışmalar

    Server Error in ‘/’ Application.
    ——————————————————————————–

    Value cannot be null.
    Parameter name: source
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.ArgumentNullException: Value cannot be null.
    Parameter name: source

    Source Error:

    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

  5. Merhaba Yukarı da tam açıklayıcı olamadım sanırım.

    if ile HttpContext.Current.Cache[entityType.Name] kontrol ediyor ve true donuyor.

    return yaparken de null görünüyor

    ayrıca AspNet_SqlCacheTablesForChangeNotification tablosundaki değere baktığım da hiç değişmemiş olarak görünüyor.

    return HttpContext.Current.Cache[entityType.Name] as IEnumerable;

    Teşekkürler.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir