KURUMSAL EĞİTİM, SIFIRDAN ZİRVEYE .NET İLE ASYNC AWAİT PROGRAMLAMA

EĞİTİM SÜRESİ
-
- 1 Gün
- Ders Süresi: 50 dakika
- Eğitim Saati: 10:00 - 17:00
Eğitimler 50 dakika + 10 dakika moladır. 12:00-13:00 saatleri arasında 1 saat yemek arasındaki verilir. Günde toplam 6 saat eğitim verilir.
Eğitimler uzaktan eğitim formatında tasarlanmıştır. Her eğitim için Teams linkleri gönderilir. Katılımcılar bu linklere girerek eğitimlere katılırlar. Ayrıca farklı remote çalışma araçları da eğitmen tarafından tüm katılımlara sunulur. Katılımcılar bu araçları kullanarak eğitimlere katılırlar.
Eğitim içeriğinde GitHub ve Codespace kullanılır. Katılımcılar bu platformlar üzerinden örnek projeler oluşturur ve eğitmenle birlikte eğitimlerde sorulan sorulara ve taleplere uygun içeriğe cevap verir.
Eğitim yapay zeka destekli kendi kendine öğrenme formasyonu ile tasarlanmıştır. Katılımcılar eğitim boyunca kendi kendine öğrenme formasyonu ile eğitimlere katılırlar. Bu eğitim formatı sayesinde tüm katılımcılar gelecek tüm yaşamlarında kendilerini güncellemeye devam edebilecekler ve her türlü sorunun karşısında çözüm bulabilecekleri yeteneklere sahip olacaklardır.
EĞİTİM HEDEFİ
- Asenkron Programlama Prensiplerini Kavramak: Katılımcılar, senkron ve asenkron programlama arasındaki temel farkları anlayarak, uygulama performansını ve kaynak kullanımını iyileştirecek şekilde asenkron yaklaşımı içselleştireceklerdir.
- Async ve Await Anahtar Kelimelerinin Etkin Kullanımı: Eğitim boyunca async ve await yapılarının sözdizimi, davranışı ve uygulama akışı üzerindeki etkileri detaylı olarak ele alınacak; katılımcıların asenkron akışları güvenli ve verimli şekilde yönetebilmesi sağlanacaktır.
- Task ve Task
Tiplerinin Derinlemesine Anlaşılması: Task yapılarının senkronizasyon, hata yönetimi ve sonuç taşıma gibi temel rollerini doğru kavrayarak, katılımcılar kendi projelerinde sağlam ve okunabilir asenkron kodlar yazabileceklerdir. - Deadlock ve Performans Sorunlarının Önlenmesi: SynchronizationContext, .Result ve .Wait() gibi bloklayıcı kalıpların yol açtığı kilitlenmeler analiz edilerek, performanslı ve ölçeklenebilir kod yazımı için en iyi uygulama örnekleri sunulacaktır.
- Birden Fazla Asenkron İşlemi Yönetebilme Becerisi: Task.WhenAll ve Task.WhenAny gibi yapılarla paralel görev yürütme ve sonuç işleme konularında pratik yetkinlik kazandırılacaktır.
- CancellationToken ile Kontrollü Görev İptali: Uzun süren veya dış koşullara bağlı olarak iptal edilmesi gereken görevlerin yönetimi için iptal mekanizmaları öğretilecek, kaynak yönetiminde esneklik sağlanacaktır.
- I/O-Bound ve CPU-Bound İşlem Ayrımını Yapabilme: Asenkron programlamanın hangi senaryolarda tercih edilmesi gerektiği; Task.Run gibi yapıların CPU-bound işlemlerle nasıl kullanılacağı aktarılacaktır.
- ThreadPool Davranışı ve Starvation Senaryolarının Yönetimi: .NET ThreadPool kullanımı, kaynak yönetimi ve starvation riskleri analiz edilerek, doğru yapıların nasıl kurulacağı öğretilecektir.
- IAsyncEnumerable ile Asenkron Veri Akışlarının Yönetimi: .NET Core 3.0 ve üzeri için getirilen await foreach yapısının kullanım senaryoları (veri tabanı sorguları, API çağrıları vb.) ile gerçek örnekler üzerinden uygulama yapılacaktır.
- Platformlar Arası (C#, Java, Python) Asenkron Yaklaşımların Karşılaştırmalı İncelemesi: Katılımcılar, farklı dillerde asenkron programlama modellerini karşılaştırarak, en uygun yaklaşımları analiz edebilecek düzeye ulaşacaklardır.
Bu eğitim, katılımcılara yalnızca asenkron programlamanın temel prensiplerini ve async/await yapılarının kullanımını öğretmekle kalmayacak, aynı zamanda bu teknikleri gerçek dünya senaryolarında nasıl uygulayacaklarını da gösterecektir. Katılımcılar, modern uygulamalarda daha verimli, kaynak dostu ve ölçeklenebilir çözümler geliştirme becerisi kazanacaklardır.

EĞİTİM İÇERİĞİ
Modül 1: Asenkron Programlamaya Hızlı Bir Giriş ve Temelleri
- Senaryo: Geleneksel senkron yöntemlerle geliştirilen bir REST API uygulaması, yüksek trafik altında yanıt verememektedir. Ekip, uygulamanın darboğazlarını çözmek için asenkron programlama ilkelerine geçiş yapar.
-
İçerik:
- Senkron ve asenkron işlemler arasındaki farklar ve bu farkların uygulama performansına etkisi.
async
veawait
anahtar kelimelerinin çalışma prensibi ve kullanım senaryoları.Task
veTask<TResult>
tipleri ile asenkron işlemleri temsil etme.- Asenkron metotların doğru tanımlanması, dönüş tipleri ve temel örnek uygulamalar.
Modül 2: Orta Seviye Asenkron Yönetim ve Pitfall'lar
- Senaryo: Bir masaüstü uygulamasında kullanıcı arayüzü asenkron veri çağrıları sırasında donmakta ve kilitlenmektedir. Geliştiriciler,
SynchronizationContext
veConfigureAwait
yapıları ile bu sorunu çözmeye çalışır. -
İçerik:
SynchronizationContext
nedir? UI, Web ve Console ortamlarında bağlam yönetimi.ConfigureAwait(false)
kullanımı ile performans iyileştirme ve deadlock önleme..Result
,.Wait()
gibi senkron çağrıların yol açtığı kilitlenme problemleri.Task.WhenAll
veTask.WhenAny
ile birden fazla asenkron işlemi yönetme.CancellationToken
ile uzun süren işlemleri iptal etme teknikleri.
Modül 3: İleri Seviye Konular ve Uygulama Optimizasyonları
- Senaryo: Yüksek veri işleme yüküne sahip bir arka plan hizmeti, CPU ve I/O işlemlerini verimli yönetememektedir. Geliştirici ekip, asenkron mimaride optimizasyon yaparak kaynak tüketimini azaltmak ister.
-
İçerik:
- I/O-bound işlemler için asenkron yapının avantajları, CPU-bound işlemlerde
Task.Run
stratejisi. - ThreadPool kullanımında dikkat edilmesi gerekenler ve starvation durumlarının önlenmesi.
ConfigureAwait(false)
ile bağlamdan bağımsız çalışma ve performans artışı.IAsyncEnumerable
veawait foreach
ile .NET Core 3.0+ sonrası gelen asenkron veri akışı yönetimi.
- I/O-bound işlemler için asenkron yapının avantajları, CPU-bound işlemlerde
EĞİTİM YÖNETİMİ
- Teorik Temel: Async-await mimarisinin çalışma prensipleri, senkron ve asenkron programlama farkları ile birlikte detaylı olarak işlenecektir.
- Uygulamalı Kod Geliştirme: C#, Java Spring ve Python dillerinde gerçek dünya senaryolarına dayalı asenkron metodolojilerle uygulamalı örnekler geliştirilecektir.
- Teknik Tartışma Oturumları: Deadlock senaryoları, context switching problemleri, Task paralelliği ve performans optimizasyonları gibi ileri düzey konular üzerinde interaktif tartışmalar yürütülecektir.
- Proje Tabanlı Uygulama: Katılımcılar, eğitimin sonunda kendi seçecekleri bir iş senaryosuna uygun olarak asenkron yapı kullanan bir mini uygulama geliştirerek öğrendiklerini pratiğe dökeceklerdir.
HEDEF KİTLE
- Yazılım Geliştiriciler: C#, Java veya Python platformlarında modern, ölçeklenebilir ve verimli uygulamalar geliştirmek isteyen geliştiriciler.
- Backend Mimarları: Asenkron mimari, concurrency ve performans optimizasyonlarıyla ilgili derin teknik bilgiye ihtiyaç duyan yazılım mimarları.
- DevOps ve SRE Uzmanları: Uygulama davranışlarını daha iyi analiz etmek, thread havuzu yönetimi ve kaynak verimliliğini artırmak isteyen operasyon ekipleri.
- Mobil ve Web Geliştiricileri: UI thread yönetimi, responsive arayüzler ve hızlı kullanıcı deneyimi sağlamak isteyen geliştiriciler.
- Akademisyenler ve Eğitmenler: Asenkron programlama konularını öğretmek isteyen eğitim profesyonelleri.
- Teknik Danışmanlar: Müşterilerine performans odaklı kodlama ve ölçeklenebilir sistem tasarımı konusunda destek sunan teknik danışmanlar.
- Yeni Mezunlar ve Stajyerler: Asenkron programlamaya güçlü bir temel atarak modern yazılım geliştirme dünyasına hızlı bir giriş yapmak isteyen yazılım mühendisliği mezunları.
KATILIMCILARDAN BEKLENTİLERİMİZ
- Katılımcıların temel düzeyde programlama bilgisine (tercihen C#, Java veya Python) sahip olmaları.
- Thread, işlem, girdi/çıktı (I/O) kavramları hakkında ön bilgi sahibi olmaları faydalıdır.
- Visual Studio, IntelliJ, VS Code gibi geliştirme ortamlarını kurulum ve kullanım düzeyinde tanımış olmaları.
- Aktif katılım, soru-cevaplara katkı ve teknik meraka sahip olmaları beklenir.
Aradığınız Eğitimi Bulduğunuzu Düşünüyorsanız!
Kurumsal eğitim içeriklerimizde sektörün trend ve güncel konularında lider konumdayız. Bu farkı siz de hızla fark edeceksiniz. Dünyada en çok tercih edilen ve 1-10 puanlama sistemine göre 9.5 ve üzeri puan almış konular, sizin için titizlikle hazırlandı.
25 yıllık eğitim sektörü deneyimi ve uluslararası proje tecrübeleriyle birleşerek, dünya çapında yapılan yıllık analizler doğrultusunda en güncel trend kurumsal gereksinimler ve talepler derlendi. Kendi özgün kaynaklarımızla oluşturduğumuz laboratuvar ortamlarında tüm eğitim içerikleri ve laboratuvar çalışmaları hazırlandı. Kurumsal ihtiyaçlarınız doğrultusunda gerekli tüm eğitim konuları hazır hale getirilmiş ve danışmanlık seviyesinde saha deneyimleriyle birleştirilmiştir.
Dünya standartlarında eğitim içerikleri ve sunum yöntemleri bir araya getirilerek tasarlandı. Eğitim sürecine katılan tüm katılımcılar için GitHub repoları aracılığıyla hazır çalışma ortamları oluşturuldu. Ayrıca, hayat boyu erişilebilecek kaynaklar ve eğitim materyalleri katılımcılara sunulmaktadır.
Kapsamlı Handsonlar ile Zenginleştirilmiş Kurumsal Eğitimlerimiz
Tüm eğitimlerimiz, kurumsal eğitim formatında sunulmaktadır. Eğitimler, talepleriniz doğrultusunda ihtiyaçlarınıza göre güncellenir ve katılımcılarla birlikte sizin belirlediğiniz senaryolar işlenir. Bu sayede, eğitmenin değil, sizin ihtiyaçlarınıza yönelik konularla donatılmış bir eğitim tamamlanır. Eğitimle birlikte danışmanlık hizmeti de sağlanmış olur. Katılımcılar en yüksek faydayı sağlayarak eğitimlerini tamamlarlar. Ayrıca her eğitimde kapsamlı eğitim içerikleri git ortamında katılımcılara verilir. Çalışmalar bu materyallerle yapılır ve eğtim süresince katılımcılar ve eğitmen tarafından güncellenir. Aradan yıllar geçse de eğitim anındaki tüm materyallere erişim sağlanabilir.
Sizin İçin Özel Hazırlananan Kurumsal Workshoplarımız
Workshoplar konuların 360 derece açıdan ele alındığı, konuların derinlemesine işlendiği, handsonlar ile katılımcıların birlikte çalışma fırsatı bulduğu en kapsamlı eğitim formatımızdır.
Sizin İçin Özel Hazırlananan Kurumsal Seminerlerimiz
Tüm seminerlerimiz sizin senaryolarınız ve ihtiyaçlarınız için size özel hazırlanır. Katılımcı profiline uygun özel örnekler ve katılımı teşvik edecek özel içerikler ile zenginleştirilir.