.NET ile Clean Architecture & Enterprise Design Patterns Sıfırdan Kurumsal Seviye API Geliştirme – CQRS, MediatR, DDD ve Gerçek Dünya Uygulamaları
Bir .NET projesinde "bu kodu nereye yazmalıyım?" sorusunu hiç sordunuz mu? Controller'lar şişiyor, iş mantığı her yere dağılıyor, test yazmak imkânsız hale geliyor. Bu kurs, tam olarak bu problemleri çözmek için tasarlandı.
Clean Architecture, yazılım projelerini katmanlara ayırarak her katmanın tek bir sorumluluğa sahip olmasını sağlayan bir mimari yaklaşımdır. Bu kursta, boş bir dotnet new komutuyla başlayacak ve adım adım kurumsal seviyede, production-ready bir .NET 9 Web API oluşturacaksınız.
Bu Kursta Neler Öğreneceksiniz?
Domain-Driven Design (DDD) prensipleriyle zengin domain modelleri oluşturmayı öğreneceksiniz. Entity, Value Object, Factory Method ve Encapsulation gibi kavramları sadece teoride değil, gerçek kod üzerinde uygulayacaksınız. Domain katmanınız hiçbir framework'e bağımlı olmayacak – saf C# ile iş kurallarınızı ifade edeceksiniz.
CQRS (Command Query Responsibility Segregation) pattern'i ile okuma ve yazma işlemlerini ayıracaksınız. MediatR kütüphanesi sayesinde controller'larınız sadece 2-3 satır kod içerecek – tüm iş mantığı handler'larda, doğrulama kuralları validator'larda, loglama ve cross-cutting concern'ler pipeline behavior'larda olacak. Controller'ın ne repository'yi ne de AutoMapper'ı bilmesine gerek kalmayacak.
FluentValidation ile iş kurallarınızı akıcı sözdizimi ile merkezi bir noktada tanımlayacak, Pipeline Behavior mekanizması ile handler'ları hiç değiştirmeden validation ve loglama katmanları ekleyeceksiniz. Bu, SOLID prensiplerinden Open/Closed Principle'ın en güzel uygulamalarından biridir.
Repository Pattern ve Unit of Work ile veri erişim katmanınızı soyutlayacaksınız. Generic Repository tartışmasını derinlemesine yapacak, EF Core Fluent API ile veritabanı şemanızı kod olarak tanımlayacak ve Seed Data ile başlangıç verilerini migration'lara gömeceksiniz.
Hata yönetimi konusunda Global Exception Handling Middleware yazacak, tüm API yanıtlarınızı Result<T> pattern'i ile standartlaştıracak ve Serilog ile loglarınızı console'a, dosyaya ve veritabanına aynı anda yazacaksınız. Structured logging sayesinde production'da sorun tespiti kolaylaşacak.
JWT Authentication ve Role-based Authorization ile API'nizi güvenlik altına alacaksınız. ASP.NET Core Identity entegrasyonu, Access/Refresh Token yönetimi ve Swagger'da token desteği gibi konuları uçtan uca implemente edeceksiniz.
Son bölümde tüm öğrendiklerinizi gerçek bir sipariş senaryosu üzerinde birleştireceksiniz. Domain Event pattern'i ile sipariş verildiğinde otomatik email gönderimi, dosya yükleme işlemlerinde Local ve Azure Blob Storage arasında geçiş yapılabilen soyutlama gibi enterprise seviye çözümler uygulayacaksınız.
Bu Kurs Kimin İçin?
-
.NET bilgisi olan ancak mimari konularda kendini geliştirmek isteyen geliştiriciler
-
"Çalışıyor ama düzgün yazılmış mı?" sorusunu soran yazılımcılar
-
Takım çalışmasında kod tutarlılığı ve test edilebilirlik arayan profesyoneller
-
Junior'dan Mid/Senior seviyeye geçmek isteyen .NET geliştiricileri
Ön Koşullar
-
Temel C# bilgisi (class, interface, async/await)
-
ASP.NET Core Web API temel bilgisi
-
Entity Framework Core temel bilgisi
7 bölüm, 23 ders, 10+ design pattern – kod yazmak kolaydır, değiştirilebilir ve test edilebilir kod yazmak ustalık gerektirir. Bu kursta o ustalığın temellerini atacaksınız.