En iyi yanıtlayıcılar
sürekli çekilen verileri bellekte saklamak için en uygun yöntem

Soru
-
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
Tüm Yanıtlar
-
-
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
-
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.
-
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
-
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.