.NET | Onion Architecture – CQRS – MediatR

Modern yazılım geliştirme dünyasında, sürdürülebilir ve ölçeklenebilir uygulamalar oluşturmak her zamankinden daha önemli hale geldi. Bu yazımda, .NET Core kullanarak Onion Architecture (Soğan Mimarisi) prensiplerini uygulayan örnek bir projeyi detaylıca inceleyeceğiz. Bu proje, kurumsal uygulamalarınız için sağlam bir temel oluşturmanıza yardımcı olacak.

Biraz Detay Verelim:

  • Onion Architecture Nedir?
  • Proje Yapısı ve Katmanlar
  • Kullanılan Teknolojiler
  • Projenin Avantajları
  • Kurulum ve Kullanım
  • Örnek Kullanım Senaryoları

Onion Architecture Nedir?

Onion Architecture, Jeffrey Palermo tarafından geliştirilen ve yazılım uygulamalarının katmanlı bir yapıda organize edilmesini sağlayan bir mimari desendir. Bu mimari, uygulamanın merkezinde domain modellerinin yer aldığı ve dış katmanlara doğru gidildikçe altyapı bileşenlerinin konumlandığı bir yapı sunar. En sevdiğim özelliği ise üst katmandan alt katmana inebilirken, alt katmandan üst katmanlara çıkılamaması. Bu temeldeki faydasını projeniz büyüdüğü zaman hissedeceksiniz.

Proje Yapısı ve Katmanlar

Projemiz dört ana katmandan oluşmaktadır(N Layer olabilir size kalmış):

  • Domain Katmanı: En temelinde veri tabanı entitiylerini ve diğer base modelleri barındırdığımız katmandır.
  • Application Katmanı: Domain katmanı üzerine inşa edilmiş ve Infrastructure katmanı tarafından implemente edilecek arayüzleri tanımlar.
  • Infrastructure Katmanı: Alt Yapı katmanı içinde veriye eriştiğimiz Persistence alanı bulunmaktadır.(Infrastructure içerisinde Logging, Authentication, Mail, File Storage vb. işlemler yürütülebilir.)
  • Presentation Katmanı: Prone içerisinde WebApi olarak bırak yer alıyor. Bu katman projenin client sunumunun yapıldığı katmandır.

Kullanılan Teknolojiler

  • .NET Core 7.0
  • Entity Framework Core
  • MediatR ile CQRS Pattern
  • AutoMapper
  • Fluent Validation
  • Swagger/OpenAPI

Projenin Avantajları

Kurumsal alanda yazılım geliştirmek isteyen, monolitik yapılardan sıkılan ve biraz heyecan arayanlar için mükemmel bir altyapı sunuyor.
ChatGTP ne şunları diyor:

  • Yüksek Esneklik: Katmanlı mimari sayesinde, projenin herhangi bir bölümü kolayca değiştirilebilir veya güncellenebilir.
  • Test Edilebilirlik: Bağımlılıkların yönetimi ve katmanların ayrılması, unit testlerin yazılmasını kolaylaştırır.
  • Sürdürülebilirlik: Clean Architecture prensipleri, kodun uzun vadede sürdürülebilir olmasını sağlar.
  • Ölçeklenebilirlik: Modüler yapı sayesinde yeni özellikler kolayca eklenebilir.

Kurulum ve Kullanım

Github : https://github.com/yasinkaraman999/Onion-Architecture-CQRS-MediatR

veya

“`bash
# Repoyu klonlayın
git clone https://github.com/yourusername/ProductApp_OnionArchitecture.git

# Proje dizinine gidin
cd ProductApp_OnionArchitecture

# Bağımlılıkları yükleyin
dotnet restore

# Veritabanını güncelleyin
dotnet ef database update

# Uygulamayı çalıştırın
dotnet run –project src/WebApi/ProductApp.WebApi
“`

Örnek Kullanım Senaryoları

  • E-ticaret Sistemleri
  • İş Yönetim Uygulamaları
  • Kurumsal Kaynak Planlama (ERP) Sistemleri
  • Mobil Uygulama Backend Servisleri
  • IoT Cihaz Yönetim Platformları

Final

Bu proje, modern .NET uygulamaları için sağlam bir temel sunmaktadır. Onion Architecture’ın sunduğu avantajlar ve Clean Code prensipleri ile birleştiğinde, sürdürülebilir ve ölçeklenebilir uygulamalar geliştirmek için mükemmel bir başlangıç noktası oluşturmaktadır.

You may also like...