Merhaba Arkadaşlar, Bir Web site uygulamam var , bu uygulamanın ana sayfasında belli haber ve videoları listeleniyor, uygulamanın üst menüsünde farklı linklere(sayfalara ) tıkladıktan sonra tekrar ana sayfaya tıkladığında , uygulama tekrar DB den kayıtları(haber ve videoları) çekip listelemektedir. Bu da performansı olumsuz etkilemektedir. Yapmak istediğim şey şu ; kullanıcı ilk kes sayfayı yüklediğinde DB den kayıtları alıp hem ekranda göstereyim hemde Data Caching işlemine tabi tutup , kullanıcı sayfalar arasında dolaştıktan sonra tekrar anasayfaya tıkladığında video ve haberleri Db den çekmek yerine cache deki kayıtları göstermek , yani tekrar Db'e gitmeden kayıtları göstermek.

Asp.net'te bu mümkün mü ? Mükümise nasıl yapabilirim ?

Teşekkürler.

soruldu: 23 Haz '14, 05:28

rulas's gravatar image

rulas
1.2k101329
cevap kabul oranı: 0%


Evet mümkün Session nesnesinde verilerini saklayabilirsin. Session boş ise dbden kayıtları listeler ve Session a kaydedersin. Eğer session dolu ise kendi objene cast ederek verileri kullanabilirsin.Aşağıdaki linkten session kullanımını inceleyebilirsin.

http://www.gencayyildiz.com/blog/asp-net-session-kullanimi/

Güncelleme: Haberler tüm kullanıcıların ekranlarında aynı olacağı için Session yerine Cache nesnesinde tutmanı öneririm. Cache'e attığın veri server' ın cache'inde saklanır. Yani eğer cache dolu ise sayfayı kim açarsa açsın direk bu veriye ulaşır. Yani bir kez dolu olması yeterlidir. Yeni bir haber eklediğinde cache silmeli yada güncelleştirmelisin. Aksi halde cache süresi dolmadığı sürece dolu olacaktır ve yeni eklediğin haberler görülmeyecektir.Aşağıdaki linkten cache kullanımı inceleyebilirsin

http://www.ermanakturk.com/2013/05/aspnet-optimizasyon-cache.html

permanent link

cevaplandı: 23 Haz '14, 06:08

M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

Müslüm ÖZTÜRK
10.7k103691
cevap kabul oranı: 28%

değiştirildi: 23 Haz '14, 06:17

Peki "caching işleminin daha moduler ve etkin, yani en iyi yöntemi ne olmalıdır" sorusuna tavsiyeleriniz var mıdır? Caching nerede ve ne zaman yapılmalıdır? Hangi katmanda yapılmalıdır? Çünkü cache nesnesi local bir çözüm gibi sanki? caching, logging, exception handlig gibi işlemler için genel mana da bir ipucunuz var mı? Bir başlangıç noktası? Çünkü bu konular biraz geniş konular en azından bir ipucu falan verebilirseniz güzel olurdu...

(23 Haz '14, 07:30) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

AliRıza Adıyahşi arkadaşın aşağıdaki sorusuna cevaben:

Peki "caching işleminin daha moduler ve etkin, yani en iyi yöntemi ne olmalıdır" sorusuna tavsiyeleriniz var mıdır? Caching nerede ve ne zaman yapılmalıdır? Hangi katmanda yapılmalıdır? Çünkü cache nesnesi local bir çözüm gibi sanki? caching, logging, exception handlig gibi işlemler için genel mana da bir ipucunuz var mı? Bir başlangıç noktası? Çünkü bu konular biraz geniş konular en azından bir ipucu falan verebilirseniz güzel olurdu...

Öncelikle caching çoğu zaman avantajlı olsada dezavatajlı olduğu noktalarda vardır. Bunlardan bazıları memory kullanımı artırır ve dolayısıyla hardware' i daha güçlü server ihtiyacı doğurabilir, Eğer doğru yönetilmez ise server'ın tüm kaynaklarını kullanabilir. Ama doğru ve yerinde kullandığı takdirde performans için çok faydalıdır.

Cache' le işlemini sık sık değişmeyen değerlerin saklanması için önerilir yani herşeyin cache'de saklanması doğru değildir. Örneğin : ülke-il-ilçe adları, araç marka modelleri, günlük hava durumu tahminleri,eğer uygulamanın menüsü databaseden gelen değere göre dinamik oluyorsa menü öğeleri... cache'de tutulursa gereksiz database transaction'ları yapılmamış olunur.

Caching,logging ve exception handling işlemlerinin yönetimi için framework oluşturulması kanaatindeyim. Db işlerinde (CRUD) oluşacak hataların framework tarafından yakalanıp yine framework katmanında loglanması, develepor' ın hem işini kolaylaşıracaktır hemde daha düzenli kod yazılmasını sağlayacaktır.Eğer .net ile kod geliştiriyorsanız Log4Net, eğer java ile kod geliştiriyorsanız Log4J yi incelemenizi öneririm. Ayrıca .net'te Elmah artık olmazsa olmazlar arasına girmiştir. Cache'leme işlemini develepor'a bırakmalıyız ama şu hususa dikkat ederek: Cache'leme işleminin framework içinde yazılı olan bir metod ile yapmasını sağlamalıyız. Bunun amacıda "olası hataları framework tarafında yakalanıp gerekli işlemlerin yapılması" dır.

Ayrıca AOP(Aspect-oriented programming) yani cephe yönelimli programlama yöntemi ile daha gelişmiş hata yakalama ve loglama mekanizmaları geliştirilebilir.

İlgin ve önerin için teşekkürler.

permanent link

cevaplandı: 23 Haz '14, 08:31

M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

Müslüm ÖZTÜRK
10.7k103691
cevap kabul oranı: 28%

değiştirildi: 23 Haz '14, 08:31

Ben ufak bir anahtar kelime istemiştim ama, baya detaylandırmışsınız. AOP aradığım anahtar kelime. Teşekkürler...

(23 Haz '14, 08:42) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×158
×4

Soruldu: 23 Haz '14, 05:28

Görüntüleme: 735 kez

Son güncelleme: 23 Haz '14, 08:42

powered by BitNami OSQA