Asp.Net–Doğru async, await Kullanımı

Merhaba Arkadaşlar,

Bazen web sayfalarının yüklenmesi sırasında senkron olarak çalışan ve uzun süren işlemler gerçekleştiririz(ki aslında Web uygulamalarında bu tip yaklaşımları pek tercih etmeyiz) Sayfada ki kontrollerde gösterilmek üzere çeşitli kaynaklardan veri çekilmesi buna örnek olarak verilebilir. Bu tip veri yükleme işlemleri ağırlıklı olarak Page_Load olay metodu içerisinde gerçekleştirilir. Uzun süren işlemlerin kısa sürede tamamlanabilmesi için farklı teknikler mevcuttur. Bir tanesi de asenkron olarak çalışabilmelerini sağlamaktır(Örneğin zaman kaybettiren servis çağrılarının, veri çekme işlemlerinin eş zamanlı hale getirilmesi)

.Net dünyasında bu tip asenkron işleri kolaylaştıran async, await keyword’ leri artık yaygın olarak kullanılmakta. Lakin Web dünyasında biraz daha dikkatli olmak gerekir. Nitekim bir web sayfasının yaşam döngüsü(Page Life-Cycle), async geri bildirimlerini sorunsuz şekilde ele alan Windows UI Thread’ lerinden biraz daha farklı çalışmaktadır. Güvenilir ve stabil bir ortam söz konusu değildir. Dahası HTTP 503 hatasının alınmasına neden olabilecek vakalar vardır. İşte bu görsel dersimizde bir sayfanın yüklenmesi esnasında asenkron hale getirilmesi istenen işlemlerde uygulanabilecek doğru ve tavsiye edilen bir pratiği incelemeye çalışacağız.

Bir başka görsel dersimizde görüşmek dileğiyle.

Yorumlar (9) -

  • Çok teşekkürler emekleriniz için sayenizde daha net bir şekilde kavradım.
  • Rica ederim Mustafa Bey. Aydınlatıcı olmasına sevindim.
  • Merhabalar,
    Çok teşekkür ederim Burak Bey çok iyi kavramış oldum.Projemizdeki önemli 1-2 yere hemen async overloadlarını geliştirdim.
  • İşinize yaramasına ve özellikle projenizde kullanabilmenize çok sevindim Burcu Hanım. Teşekkürler Smile
  • Merhabalar,
    Yaralı bir paylaşım. teşekkür ederim.
    Kodlamanın başında ve sonunda void methodlarda güvenlik nedeni ile async keyworrdu önermediğiniz. Bu güvenlik sorununu biraz açabilir misiniz? Nasıl bi şeye yol açar. Saçma bir soru olabilir kusura bakmayın ama kafamda canlandıramadım.

    Teşekkürler
  • bilgilendirme için teşekkürler hocam. ancak ben async await kullandığım bir projemde hep aynı sorunla karşılaştım. await kodu okumadan metottan çıkıyor ve kaldığı yerden devam ediyor. şöyle bir örnek vereyim: HttpClient hc=new HttpClient();    var response=await hc.Getasync(url); kodunu kullanmam gerekiyor. ama alt satıra geçmiyor ve metot okumaya devam etmiyor. response değişkenine değer vermiyor ve null olarak geri döndürüyor. nasıl aşabilirim bu sorunu?
  • Hocam ellerinize sağlık. Bizim millet bir öğrenmiş async await . Aman çok önemli efendim . Hemen bizde yapalım.
    Halbuki yerinde kullanımından bahseden yok. Komşu almış ya bizde almalıyız yaklaşımlarından bıktık artık. Sürüsüyle yazı mevcut ama nerede ne için kullanacağız cevap veren bir sizi gördüm.
    • Merhaba. Faydalı olmasına sevindim. Ne yazık ki zaman zaman benim de sıklıkla düştüğüm bir durum aslında. Hatta Cargo-Cult Programming olarak isimlendirilen bir Anti Pattern oluşumu da. Kısaca bir şeylerin nasıl çalıştığını anlamadan kabul edip kullanmak gibi özetleyebiliriz galiba. Biraz daha detaya inmek gerekiyor çoğu zaman. Bu farklı alterntiflerin veya yolların olup olmadığını keşfetme noktasında da faydalı bana kalırsa.

Yorum ekle

Loading