none
sürekli çekilen verileri bellekte saklamak için en uygun yöntem RRS feed

  • Soru

  • Arkadaşlar ben veritabanından her sayfada kullanıcı listesi çekiyorum.Bunun için her seferinde veritabanına bağlanmak yerine veriyi nerde saklayabilirim ?Sessionda saklamak var ama en çok kullanılan metodu öğrenmek istiyorum.
    25 Aralık 2014 Perşembe 10:48

Yanıtlar

  • Bu konuya dahil olmak istemedim ama sonunda dayanamadım. 

    İlk olarak arkadaşın kullanıcı listesini tutmak istemesinin sebepleri arasında büyük ihtimal yetki olaylarıda var. Yani eğer siz kullanıcı listesini cachelerseniz adamın yetksini dahi değiştirseniz cacheden geleceği için yetkisi hala eskisi gibi kalır. Yani bir kullanıcının yetkisi değiştiği anda cache de temizlenmeli. Bunun yönetimini yapmanız gerekiyor.

    Cache nerde kullanılır kısmını gelirsek:

    • Eğer verileri cachelicekseniz sizin genel olarak sabit kalan ve her yerde kullandığınız veriler cachelenir. Örnek olarak birden fazla dili destekliyorsunuz ve sayfanızda ki bütün controllerin textleri gridlerin kolonları veritabanında ki dile göre doluyorsa. Bu Tercüme tablonuzu ya da her neyse cachleyebilirsiniz. Bunun sebebi tercümesini yazdığınız dil değeri öle zırt pırt değişmez. Değiştiğinde de cacheden ya siz silirsiniz ya da otomatik sildirebilirsiniz ama her iki durumda gerçekleşmese sistemde bir açıklık olmaz.
    • Kendi script ve css dosyalarınız cachelenir. Ama bunu local tarafında cachelemek daha mantıklıdır. Ama burda  ki en önemli nokta verisyon numarasını kesin geçmenizdir. Yoksa cachede hangi versiyon olduğunu bilemezsiniz ve hep eski versiyon kalır.

    Özetle: Ne yapacağına göre değişir ama eğer yetki bazlı bir iş yapıcaksan bu kullanıcılar verileri ya sessionda tut ya da static bir method tanımla orada dursun.

    • Yanıt Olarak İşaretleyen Serkan Canseven 31 Aralık 2014 Çarşamba 10:19
    27 Aralık 2014 Cumartesi 08:41

Tüm Yanıtlar

  • Cache konusunu araştırabilirsin. İstediğin bu gibi geldi bana.

    Bu ileti veya öneriler size yardımcı olduysa "Yanıt olarak işaretle" linkine tıklayınız.

    26 Aralık 2014 Cuma 09:06
  • Merhaba Static değerler ile bir classta tutman yeterli olacaktır

    ÖRN : 

    Public Class KullaniciBilgileri{
    
    Public static string Adi;
    
    Public static string Soyadi;
    
    }
    
    // Koddan Dolduracağın yerde.
    
    KullaniciBilgileri.Adi = "Mehmet";
    KullaniciBilgileri.Soyadi = "Cakır";
    
    // Okuyacağın Yerdede static değerleri çağrımanız yeterlidir
    
    MessageBox.Show(KullaniciBilgileri.Adi); // Gibi

    İyi çalışmalar

    26 Aralık 2014 Cuma 11:29
  • Selam Mücahit.

    Çalıştığım yazılımda şöyle bir şey var, senin üzerinden örnekliyorum. Global.asax dosyasında kullanacağın listeleri Application Cahce olarak setliyorum. Yani sen kullanıcı listesini almak için context.Users.Tolist(); gibi bir kod yazıyorsun ya. Onu global.asax dosyasında yapıp session'a ekliyorum.

    Ardından CurrentApplication diye bir class oluşturup altına listeleri ekliyorum. Listeyi çağırmak için ise;

    CurentApplication.UserList demem yetiyor. Buradaki olay araştırmam sonucu bulduğum, en pratik ve işleyişli çözümlerden birisi. 

    Kolay gelsin.

    27 Aralık 2014 Cumartesi 07:52
  • Bu konuya dahil olmak istemedim ama sonunda dayanamadım. 

    İlk olarak arkadaşın kullanıcı listesini tutmak istemesinin sebepleri arasında büyük ihtimal yetki olaylarıda var. Yani eğer siz kullanıcı listesini cachelerseniz adamın yetksini dahi değiştirseniz cacheden geleceği için yetkisi hala eskisi gibi kalır. Yani bir kullanıcının yetkisi değiştiği anda cache de temizlenmeli. Bunun yönetimini yapmanız gerekiyor.

    Cache nerde kullanılır kısmını gelirsek:

    • Eğer verileri cachelicekseniz sizin genel olarak sabit kalan ve her yerde kullandığınız veriler cachelenir. Örnek olarak birden fazla dili destekliyorsunuz ve sayfanızda ki bütün controllerin textleri gridlerin kolonları veritabanında ki dile göre doluyorsa. Bu Tercüme tablonuzu ya da her neyse cachleyebilirsiniz. Bunun sebebi tercümesini yazdığınız dil değeri öle zırt pırt değişmez. Değiştiğinde de cacheden ya siz silirsiniz ya da otomatik sildirebilirsiniz ama her iki durumda gerçekleşmese sistemde bir açıklık olmaz.
    • Kendi script ve css dosyalarınız cachelenir. Ama bunu local tarafında cachelemek daha mantıklıdır. Ama burda  ki en önemli nokta verisyon numarasını kesin geçmenizdir. Yoksa cachede hangi versiyon olduğunu bilemezsiniz ve hep eski versiyon kalır.

    Özetle: Ne yapacağına göre değişir ama eğer yetki bazlı bir iş yapıcaksan bu kullanıcılar verileri ya sessionda tut ya da static bir method tanımla orada dursun.

    • Yanıt Olarak İşaretleyen Serkan Canseven 31 Aralık 2014 Çarşamba 10:19
    27 Aralık 2014 Cumartesi 08:41
  • Diğer arkadaşların yöntemini de şu an inceliyorum ama evet dediğin gibi yetki sistemleride var ve veri güncellenebilir bir veri cache yönetimi üzerine araştıracağım.Atakan ve Murat başaranın yöntemlerini de not olarak alıyorum o yöntemleri de mutlaka projemde kullanacağım.Cevabınız için çok teşekkür ediyorum.
    29 Aralık 2014 Pazartesi 13:27