İçeriğe geç

ASP.NET Core ile Clean Architecture: Katmanlı Mimari Tasarımı

22.09.2024 4 okunma

Clean Architecture Nedir?

Robert C. Martin'in (Uncle Bob) önerdiği, bağımlılıkların yalnızca içe doğru aktığı katmanlı mimaridir. Test edilebilirlik ve bakım kolaylığı sağlar.

Katmanlar

  • Domain: Entity'ler, value objects, domain events. Hiçbir dış bağımlılık yok.
  • Application: Use case'ler, interface'ler, DTO'lar. Yalnızca Domain'e bağımlı.
  • Infrastructure: EF Core, email, dosya sistemi. Application interface'lerini implemente eder.
  • Presentation: API Controller'lar, Blazor komponentleri.

CQRS ile Birlikte

// Query
public record UrunListesiQuery : IRequest<List<UrunDto>>;

// Handler
public class UrunListesiHandler : IRequestHandler<UrunListesiQuery, List<UrunDto>> {
    private readonly IUrunRepository _repo;
    public UrunListesiHandler(IUrunRepository repo) => _repo = repo;

    public async Task<List<UrunDto>> Handle(UrunListesiQuery req, CancellationToken ct) =>
        (await _repo.GetAllAsync()).Select(u => new UrunDto(u.Id, u.Ad, u.Fiyat)).ToList();
}

MediatR ile

// Controller'da
var sonuc = await _mediator.Send(new UrunListesiQuery());
return Ok(sonuc);
aspnet clean architecture c# katmanlı mimari cqrs aspnet mediatr c# dotnet clean architecture
İLERİ DÜZEY C# ASP.NET YAZILIM hakkında bilgi almak ister misiniz?

Birebir özel yüz yüze eğitim yada uzaktan eğitim, esnek ders saatleri ile Pendik Kurtköy'de.