Merhaba, ben Furkan. Ankara’daki Türk Hava Kurumu Üniversitesi’nde Bilgisayar Mühendisliği üçüncü sınıf öğrencisiyim. Yazılım geliştirme alanında kendimi sürekli geliştirmeye odaklanıyor ve özellikle full stack web geliştirme üzerine çalışıyorum. Frontend tarafında modern web teknolojileriyle kullanıcı dostu arayüzler tasarlarken, backend tarafında ASP.NET Core, ASP.NET MVC, C# ve .NET ekosisteminde uzmanlaşmaya önem veriyorum. Gerçek kurumsal projeler geliştirerek hem teknik becerilerimi hem de problem çözme yeteneğimi ileriye taşıdım. Amacım, full stack bir geliştirici olarak yazılım dünyasında yenilikçi ve değer katan çözümler üretmeye devam etmek.

Blog Yazılarım

27.11.2025

N-Tier Architecture (Çok (n )Katmanlı Mimari)

N-Tier Architecture (Çok (n )Katmanlı Mimari) Nedir ? Nasıl Kullanılır ?

  Daha önce eğer bir web projesi geliştirdiyseniz ya da ilgilendiyseniz katmanlı mimariyi duymuşsunuzdur ya da hakimsinizdir.  Bu katmanlı mimariler arasında  N tier Architecture dediğimiz (Çok Katmanlı Mimari Yapı) da yer almaktadır.  Genel olarak katmanlı mimari yapılarında kod tekrarını önlemek amacıyla kodların katmanlara göre yazılması için katmanlar oluşturulur.  Her katmanı ayrı ayrı yönetebilir(Bağımsız bir şekilde), diğer katmanları etkilemeden her katmana yenilikler ekleyebilir veya değiştirebiliriz. Verebileceğim en basit ve yaygın olan  örnek Controller, Business ve Data katmanlarının ayrılmasıdır. Çok katmanı mimari  katman sayısının tanımını yapmaz. 

Uygulamamızın boyutunu ve ihtiyacına göre katman sayısının değişiklik gösterir.

Katmanlı Mimarinin Faydaları Nelerdir ?

  • Kod Tekrarını Önler,
  • Clean Kod Yapısını sağlar -> okunabilirliği arttırır,
  • Projeye olan hakimeyeti arttırır,
  • Hata yakalama ve yönetimini kolaylaştırır -> katmanların bağımsızlığı sayesinde

Her katman kendi içinde bağımsız olduğundan; her katmanı ayrı ayrı yönetebilir, diğer katmanları etkilemeden her katmana yenilikler ekleyebilir veya değiştirebiliriz.

 

N Katmanlı Mimari Yapısı Kurulurken Nelere Dikkat Etmeliyiz?

Öncelikle genel bir katman olan Core katmanını oluşturmalıyız. Bu katman projemizin yapısal ihtiyaçlarını barındırır.

Data katmanı entitylerimizi modellediğimiz ve veri tabanından veri getirecek repositorylerimizin barındırğı katmandır. Burada en çok dikkat edilmesi gereken yer repository yapımızın değişebileceğini ön görmektir. Orm konusunda  eğer C# kullandıysanız ya da hakimseniz  duyabilmiş olabileceğiniz bir kavrama değinmek istiyorum bu noktada. Diyelim ki Orm olarak Entity-Framework kullanarak Sql'den veri çekiyorsunuz. Size Sql i değiştirmeniz gerektiği söylendi. Ne yapmamız gerekiyor?  Bu süreç ne kadar süremizi alır? 

Zaman ve maliyet hesabı yaparken, aslında sadece yeni geçeceğim ORM yapısının mevcut altyapımızı implemente etmesi için gereken süreyi dikkate almalıyız. Yani benim halihazırda entitylerim ve bunlara bağlı repository'lerim var. Bu repository’lerin metotlarını interface’ler üzerinden tanımlayıp projede de sadece bu interface’leri kullanırsam, ileride ORM yapısını değiştirmek istediğimde yalnızca referansı değiştirerek geçiş yapabilirim. Bu şekilde sistem daha esnek ve ORM bağımsız hale gelir. Bu yapıyı daha önce duymuş veya kullanmış olabileceğiniz Dependency Injection yapısıyla  kurarız.

Peki bu Dependency Injection  dediğimiz yapı Nedir?

Dependeny Injection kısaca bir sınıfın(nesnenin) bağımlılıklarından kurtulmasını amaçlayan ve o nesneye olabildiğince bağımsızlaştıran tekniktir. 

 Sistem içindeki bağımlılığı minimalize ederek kodumuzu daha test edilebilir ve değişime açık hale getirir.

 

 

N-Tier Architecture (Çok (n )Katmanlı Mimari)
İletişime Geç

Benimle Kolayca İletişime Geçin