C#
C# temellerinden LINQ, async/await ve .NET ekosistemine; modern dil özellikleri ve en iyi pratiklerle üretime hazır uygulamalar.
C# nedir?
C#, Microsoft tarafından geliştirilen, statik tipli, nesne yönelimli ve fonksiyonel özellikler barındıran bir dildir. .NET 8 ile birlikte çok platformlu (Windows, Linux, macOS) web API, masaüstü, bulut servisleri, arka plan işler ve oyun (Unity) gibi geniş bir alanda kullanılır.
Ekosistem: ASP.NET Core (web), Entity Framework Core (veri erişimi), xUnit/NUnit (test), NuGet (paket yönetimi) ve dotnet CLI (komut satırı) gibi araçlarla desteklenir.
TL;DR
- Modern C#:
record, pattern matching,async/await, span/memory ile performans. - Minimal API ile hızlı REST servisleri; EF Core ile verimli CRUD ve LINQ.
- Katmanlı mimari + bağımlılık enjeksiyonu ile test edilebilir tasarım.
Dil Temelleri
C# dilinin temel sözdizimi, tip sistemi ve kontrol akışı yapıları. Yeni başlayanların dilin mantığını kavraması için ilk durak.
C# ve .NET Ekosistemine Giriş
C# modern, güvenli ve nesne yönelimli bir dildir. .NET ekosistemi ile web, mobil, masaüstü ve oyun geliştirmek mümkündür.
C# İlk Proje
Visual Studio 2022 ile C#’ta ilk konsol uygulaması: Hello World örneği, WriteLine, ReadKey ve ReadLine kullanımı.
C# Temel Veri Tipleri
C#’ta temel veri tipleri: sayısal, metinsel, mantıksal, nesne tabanlı ve nullable tiplerin kullanımı.
C# Syntax Yapısı
C# dilinin temel syntax yapısını öğrenin. Kod blokları, yorum satırları ve değişken isimlendirme kuralları örneklerle açıklanıyor.
C# Operatörleri ve İfadeler
C#’ta operatörler ve ifadeler: aritmetik, karşılaştırma, mantıksal, artırma/azaltma, ternary ve null-coalescing kullanımı.
C# Karar Yapıları (if, else, switch)
C#’ta karar yapıları: if, else if, else ve switch ile koşullara göre farklı işlemler yapmayı öğrenin.
C# Döngüler (for, foreach, while, do-while)
C#’ta for, foreach, while ve do-while döngülerinin nasıl kullanıldığını öğrenin. Tekrar eden işlemleri yönetmek için pratik örnekler keşfedin.
C# Konsol Komutları
C# konsol uygulamalarında ekrana yazdırma, kullanıcıdan veri alma ve çıktı formatlama işlemlerini örneklerle öğrenin.
C# String İşlemleri
C#’ta string işlemlerini öğrenin: birleştirme, arama, substring, IndexOf ve diğer temel string metotlarını örneklerle keşfedin.
C# Veri Türü Dönüşümleri
C#’ta veri türü dönüşümlerini öğrenin. Implicit ve explicit casting, Parse, TryParse ve Convert yöntemleri örneklerle açıklanıyor.
C#’da Sabitler ve Enum Kullanımı
C#’da sabitler (const) ve enum kullanımıyla kodunuzu daha okunabilir ve güvenli hale getirin. Gerçek kullanım örnekleriyle öğrenin.
C# Math Kütüphanesi
C# Math kütüphanesini öğrenin. Pow, Sqrt, Round, Abs ve diğer matematiksel metotların kullanımını örneklerle keşfedin.
C# Boolean İşlemleri
C#’ta boolean işlemlerini öğrenin. bool veri tipi, karşılaştırmalar, &&, || ve ! operatörleri ile koşullu ifadelerin kullanımını keşfedin.
C# DateTime & TimeSpan ile Tarih İşlemleri
C#’ta DateTime ve TimeSpan kullanarak tarih ve zaman işlemlerini öğrenin. Karşılaştırma, ekleme, çıkarma ve formatlama örnekleriyle.
C# Random İşlemleri
C#’ta Random sınıfını kullanarak rastgele sayı, değer ve seçim üretmeyi öğrenin. Next, NextDouble ve örneklerle anlatım.
C# Metotlar ve Parametre Kullanımı
C#’ta metot tanımlama ve parametre kullanımını öğrenin. Değer ve referans parametreleri, varsayılan parametreler ve örneklerle.
C# Hata Denetimi (try, catch, finally)
C#’ta try, catch ve finally bloklarını kullanarak hataları yakalamayı ve güvenli hata yönetimi yapmayı örneklerle öğrenin.
C# Namespace ve Assembly Kavramı
C#’ta namespace ve assembly kavramlarını öğrenin. Kodun düzenlenmesi, bağımlılık yönetimi ve proje yapısı örneklerle anlatılıyor.
Nesne Yönelimli Programlama (OOP) ve Patterns
Sınıflar, kalıtım, arayüzler ve tasarım desenleri ile C#’ta yeniden kullanılabilir ve sürdürülebilir kod yazma yaklaşımı.
C# Sınıf (Class), Object, Property ve Metotlar
C#’ta class, object, property ve metot kavramlarını öğrenin. Nesne yönelimli programlamanın temel yapı taşları örneklerle açıklanıyor.
C# Struct (Yapılar) – Class ile Farkları
C#’ta struct ve class arasındaki farkları öğrenin. Bellek modeli, kalıtım, boxing ve performans karşılaştırmalarıyla açıklanıyor.
C# Constructor, Destructor ve this Kullanımı
C#’ta constructor, destructor ve this anahtar kelimesinin kullanımını öğrenin. Nesne yaşam döngüsü ve sınıf içi erişim örneklerle anlatılıyor.
Sealed, Static ve Partial Class Kullanımı in C#
C#’ta sealed, static ve partial class kavramlarını öğrenin. Amaçları, farkları ve kullanım senaryoları örneklerle anlatılıyor.
C# Record Types ve Immutable Nesneler
C# record type ve immutable nesneleri öğrenin. Değişmez veri modeli, value equality ve with ifadeleriyle modern C# pratiklerini keşfedin.
C# Encapsulation, Kalıtım, Polimorfizm
C#’ta encapsulation, kalıtım ve polimorfizmi öğrenin. OOP’nin temel prensiplerini örneklerle anlayıp doğru kullanımını keşfedin.
C# Interface ve Abstract Sınıflar
C#’ta interface ve abstract sınıfları öğrenin. Farklarını, ne zaman hangisini kullanacağınızı ve tasarım senaryolarını örneklerle keşfedin.
C# Delegates ve Events
C#’ta delegate ve event kavramlarını öğrenin. Olay tabanlı programlama, callback mantığı ve kullanım senaryoları örneklerle anlatılıyor.
C# Lambda İfadeleri
C#’ta lambda ifadelerini öğrenin. Kısa sözdizimi, Func ve Action kullanımı ile LINQ sorgularında pratik örnekler keşfedin.
C# Extension Metotlar
C#’ta extension metotları öğrenin. Mevcut sınıfları değiştirmeden yeni metotlar eklemeyi örneklerle keşfedin.
C# Dependency Injection Temelleri
C#’ta Dependency Injection kavramını öğrenin. Bağımlılıkların yönetimi, gevşek bağlılık ve test edilebilirlik örneklerle anlatılıyor.
C# ile SOLID Prensipleri
C# örnekleriyle SOLID prensiplerinin uygulanışı: daha esnek, sürdürülebilir ve test edilebilir kod tasarımları.
C# Tasarım Desenleri (Factory, Singleton, Repository, Observer vb.)
C#’ta Factory, Singleton, Repository ve Observer gibi tasarım desenlerini öğrenin. Esnek ve sürdürülebilir yazılım geliştirme örneklerle anlatılıyor.
C# Interop (C/C++ Kütüphaneleri ile Çalışma)
C#’ta Interop kullanarak C/C++ kütüphaneleriyle çalışmayı öğrenin. P/Invoke, unmanaged kod ve veri geçişi örneklerle açıklanıyor.
Veri ve Koleksiyonlar
Diziler, koleksiyonlar, generics ve LINQ ile veri yönetimi. Geliştiricilerin veriyi etkin şekilde işleyip sorgulaması için temel konular.
C# Diziler (Array)
C#’ta dizileri (array) öğrenin. Eleman ekleme, erişim, döngülerle gezinme ve temel array işlemleri örneklerle anlatılıyor.
C# Koleksiyonlar: List, Dictionary, Queue, Stack
C# koleksiyonlarını öğrenin: List, Dictionary, Queue ve Stack. Veri yönetimi, ekleme/çıkarma ve kullanım senaryoları örneklerle.
C# Generic Yapıları (List<T>, Dictionary<TKey,TValue>)
C# generic yapılarını öğrenin. List<T> ve Dictionary<TKey,TValue> ile tip güvenliği, yeniden kullanılabilirlik ve pratik örnekler.
C# LINQ Temelleri (Where, Select, OrderBy)
C# LINQ temellerini öğrenin. Where, Select ve OrderBy ile koleksiyonları sorgulama, filtreleme ve sıralama örneklerle anlatılıyor.
.NET’te Klasörü ZIP’leme (Progress ile) – WPF Örneği
ZipArchive ve IProgress kullanarak bir klasörü ZIP’lerken ilerlemeyi WPF ProgressBar’a aktarın ve UI’ı akıcı tutun.
ASP.NET Core'da Standart API Response Formatı (Result)
ASP.NET Core projelerinde başarı ve hata yanıtlarını Result
ASP.NET Core (.NET 8) IP Bazlı Rate Limiting: 429 Too Many Requests
.NET 8’in yerleşik rate limiting altyapısıyla IP başına istek sınırı koyun ve aşımda 429 + Retry-After döndürerek API’nizi koruyun.
ASP.NET Core'da ProblemDetails: TraceId ile Temiz Hata Yanıtları
Exception'ları RFC 7807 ProblemDetails formatına çevirin ve traceId ekleyin. Böylece istemci tutarlı hata alır, loglarda ilgili isteği kolayca bulursunuz.
ASP.NET Core Web API’de Temiz Pagination (Header + Link)
Response body’de yalnızca öğeleri döndürün, pagination metadatasını header’lara taşıyın. RFC 5988 Link header ile next/prev sayfalarını yönetin.