Skip to content

Katmanlı Yazılım Mimarisi: N-Layer Architecture

Yayınlandı:

Katmanlı mimari, ya da sıkça duyduğumuz adıyla N-Layer Architecture, modern yazılım projelerindeki karmaşıklığı yönetmek için kullanılan popüler bir yazılım tasarım modelidir.

Yazılım geliştirmek sadece kodun çalışmasıyla ilgili değildir. “Kod çalışsın da nasıl çalışırsa çalışsın” bakış açısı, uzun vadede ciddi sorunlara yol açar. Kodun düzenli, esnek ve bakımı kolay olması en az çalışması kadar önemlidir.

Bu noktada biz geliştiricilerin başvurabileceği çeşitli yazılım mimarileri vardır. N-Layer Architecture, Onion Architecture gibi yapılar, projeleri daha sürdürülebilir hale getirmek için kullanılır. Bu yazıda N-Layer Architecture’a odaklanacağız.

Ekstra Not: N-Layer vs N-Tier

Bu iki kavram sıkça birbirinin yerine kullanılsa da aslında aynı şeyi ifade etmezler.

Katmanlı Mimari Neden Önemlidir?

Bugünün yazılım projeleri artık çok daha karmaşık. Sayısız framework, kütüphane, konfigürasyon derken işler kolayca içinden çıkılmaz bir hal alabiliyor. Projeler büyüyor, ekipler genişliyor, istekler değişiyor, teknik altyapılar güncelleniyor. Tüm bu değişiklikler, iyi bir mimari olmadan büyük bir iş yüküne ve baş ağrısına dönüşebilir.

Mimari Olmadan Kod Yazmanın Getirdiği Sorunlar

Katmanlı Mimarinin Avantajları

N-Layer Architecture, genellikle küçük ve orta ölçekli, monolitik mimarilerde tercih edilir.

Katmanlar

N-Layer Architecture kullanılan projelerde 3 ila 5 katman arasında değişen yapılar görebiliriz. Bazı katmanlar birleştirilebilir, bazı projelerde ihtiyaçlara göre yeni katmanlar eklenebilir. Yaygın 4 katmanı şöyle özetleyelim:

1. Sunum Katmanı (Presentation Layer)

Kullanıcının uygulamayla doğrudan etkileşime girdiği katmandır. Web arayüzleri, mobil uygulamalar, masaüstü ekranlar ya da API endpoint’leri burada yer alır.

2. İş Katmanı (Business Layer)

İş mantığının yürütüldüğü alandır. Doğrulamalar, hesaplamalar, iş kuralları bu katmanda uygulanır. Sunum katmanından gelen talepler burada işlenir, veri katmanıyla iletişim buradan kurulur.

3. Veri Erişim Katmanı (Data Access Layer - DAL)

Veritabanı veya başka veri kaynaklarıyla doğrudan iletişim kurar. CRUD işlemleri burada gerçekleştirilir.

4. Veri Katmanı (Data Layer)

Verilerin saklandığı fiziksel ortamdır. MSSQL, PostgreSQL gibi veritabanları ya da dosya sistemleri bu katmanda yer alır. Bu katman genellikle bizim yazdığımız kodun bir parçası değildir, etkileşimde bulunduğumuz bir dış kaynaktır.

Örnek REST API Projesi

N-Layer Architecture kullanarak geliştirdiğim küçük ölçekli bir REST API projesinde mimariyi şu şekilde kurguladım:

BookStore.API       → Presentation Layer  
BookStore.Business  → Business Layer  
BookStore.Data      → Data Access Layer  

Katmanlara Genel Bakış

BookStore.API

BookStore.Business

BookStore.Data

GitHub – Proje Kaynak Kodu

Kaynaklar

N-tier architecture style

Traditional “N-Layer” Architecture Layers

Layered (N-Tier) Architecture in .NET Core


Önceki Yazı
Middleware Nedir? ASP.NET Core ile Middleware Geliştirme 101
Sonraki Yazı
SOLID Prensipleri: Kod Yazmanın SOLID Yolu