Bilmek istediğin her şeye ulaş

Asp.net ile web sitesi yaparken performans için nelere dikkat edilmelidir?

  • Viewstate'e dikkat etmek gerekir. Gerekmedikçe server taraflı asp.net kontrollerini kullanmamak, kullanılacağı zaman kontrolün viewstate'e ihtiyacı yoksa EnableViewstate özelliğini değiştirmek, hatta mümkünse viewstate özelliğini proje genelinde tamamen devre dışı bırakmak gerekebilir.

  • Asp.Net WebForm'ları, bir sayfa üzerinde tek bir Form nesnesi mantığı ile çalışmaktadır. Bu nedenle, kullanıcının gerçekleştirdiği POST işleminde(örnek olarak sayfadaki bir butona basması) , bütün sayfa verisinin sunucuya iletilmesi anlamına gelmektedir. Bunun önüne sayfa üzerindeki tüm işlemlerde AJAX kullanılarak geçilebilir.

  • Session üzerinde çok büyük veriler tutmamak, her şeyi saklamak için Session'a bel bağlamamak gerekir.

  • ASP.NET ile ilgili değil ama önemli bir konudur: IIS varsayılan olarak, resim, css, javascript gibi içerikleri cache etmemektedir. Kullanıcının site içerisindeki her ziyaretinde, bu içerikler tekrar tekrar kullanıcıya gönderilmektedir. IIS 6.0'da 'MIME-Types', IIS7.0'da 'Önbellek Kuralları' ayarlarının yapılması gerekir.

  • IIS yine varsayılan olarak kullanıcıya gönderilen içerikleri gzip veya deflate ile sıkıştırmamaktadır. CSS, Javascript gibi static dosyaları sıkıştırabilmesi için IIS'in ayarlanması gerekmektedir. ASP.NET sayfasının da dinamik olarak sıkıştırılabilmesi için kod içerisinde Response üzerinde elle işlem yapmak gerekebilir. Veya IIS7.0 kullanılıyorsa, dinamik sıkıştırma özelliği etkinleştirilmelidir.

  • Bunlar dışında tabii ki dikkat edilmesi gereken en önemli nokta ise sunucu taraflı olarak yazılan kodların ne kadar iyi tasarlandığıdır. Bu sadece ASP.Net için değil tüm web programlamada geçerlidir. Kullanıcıya mümkün olan en az veri gönderilmeli, yine aynı şekilde kullanıcıdan mümkün olan en az veri alınmalıdır. Kullanıcının sunucuyu ve veritabanını ilgilendirmeyen arayüz üzerindeki işlemleri, javascript ve css ile sadece web tarayıcısına bırakılmalıdır. Genel olarak bir web sitesi, sunucu taraflı olarak, aranan veriyi bulmaktan ve gönderilen veriyi kaydetmekten ibaret olmalıdır. Çok büyük iş yüküne sebep olacak kodlar yazılmamaya çalışılmalıdır. Ama örnek olarak bir galeri sitesi için; kullanıcının siteye resim dosyası yüklemesi ve bu resim dosyasının sunucu tarafında işlenecek olması (büyültme, küçültme, efektler uygulama gibi...) ek bir iştir. Bu tarz işlerde ise memory-leak'e dikkat etmek gerekir. Hatta bu tarz işlemleri farklı bir thread içerisinde gerçekleştirmek, iş bittiği zaman kullanıcıya başka bir şekilde haber vermek gerekir.
  • Paylaş
3

Hakan Köse@noldor, süper bir cevap ve açıklama olmuş. Teşekkürler.. Konuyu sosyal ağlarımda paylaşıyorum..

Bu arada, yeri gelmişken, inploid'de ayarlar kısmında yorumlarınızın inploid'deki kişiler tarafından sosyal ağlarda paylaşılmasına izin verebilirsiniz. Varsayılan olarak bu ayar kapalıdır (ben konunun kendisini paylaşabiliyorum bu sebeple).

Ancaki yorumunuzu paylaşıma açar iseniz, sosyal ağlarda insanlar sizden daha fazla bahsetme şansını yakalarlar. Ben şahsen sizin gibi kullanıcıları etrafımdakilere karşı ön planda tutmayı isterim.

İbrahim Aydın, Teşekkür ederim. Ayarlarımı söylediğiniz şekilde değiştirdim. Yazılan içeriklerin sadece inploid üzerinde benzersiz olarak korunmasının daha faydalı olacağını düşünerek bu ayarları aktif etmemiştim. Ama içeriklerin paylaşılması ve duyurulması sanırım inploid'in tanıtımı için daha faydalı olacaktır.

Hakan Köse, Teşekkürler, bilginin paylaşılması taraftarıyız. inploid'in bilinilirliğini arttırmasından öte sizin ön plana çıkmanız daha önemli bence.. Bu işlem inploid aracılığı ile olduğu için bizler zaten çok mutlu oluruz.. Inploid'in bilgi ve tecrübeleriniz en iyi açıklayıp paylaşabildiğiniz yer olmasını istiyoruz.

Hem konuyu, ve ayrıca ayarlarınızdaki değişikliten sonra sadece sizin yorumunuzu ayrıca facebook, twitter ve linkedin'de paylaştım bile. :)

Sonraki Soru
HESAP OLUŞTUR

İstatistikler

1030 Görüntülenme9 Takipçi1 Yanıt

Eş Anlamlı Soru Ekle

  • ASP.NET web sitesi performansını arttırmak için neler yapılabilir?