/Blog

A simple Rest API project using the domain driver design approach. This project also includes design patterns that we use frequently.

Primary LanguageC#

Blog Uygulaması

Bu proje, basit bir blog uygulamasını tasarlamak ve geliştirmek için yapılandırılmıştır. Markdown formatında yazılmış blog gönderilerini yönetmek için bir API sunmaktadır.

Başlangıç

Aşağıdaki adımları izleyerek projeyi yerel geliştirme ortamınıza kurabilirsiniz.

Gereksinimler

  • .NET Core SDK
  • Bir veritabanı (örneğin, SQL Server)

Kurulum

  1. Projeyi bilgisayarınıza kopyalayın:

    git clone https://github.com/atakan-acar/Blog.git
    
    

Domain-Driven Design (DDD) Yaklaşımı

Bu proje, Domain-Driven Design (DDD) prensiplerini temel alarak tasarlanmıştır. DDD, karmaşık yazılım projelerini anlamak, tasarlamak ve uygulamak için bir yaklaşımdır. Bu yaklaşım, iş mantığını daha iyi yansıtan, sürdürülebilir ve genişletilebilir kod tabanları oluşturmayı amaçlar.

Anahtar Kavramlar

Projemizde DDD yaklaşımını temsil eden bazı anahtar kavramlar:

  • Entity: Veritabanı nesnelerini temsil eden sınıflardır. Örneğin, BlogPost sınıfı bir entitydir.
  • Value Object: Kimliği olmayan ve sadece değerleri temsil eden nesnelerdir. Örneğin, Title ve Content gibi alanlar bir value object olabilir.
  • Aggregate: İlişkili entity ve value object'lerin bir araya getirildiği kök nesnedir. Bu proje içinde BlogPost aggregate'ini görüyoruz.
  • Repository: Veritabanı işlemlerini soyutlama katmanıdır. Veritabanı erişimini saklar ve iş mantığının veritabanı işlemlerinden bağımsız olmasını sağlar.

Proje Yapısı

Proje yapısında, domain modelleri, servisler ve repository arayüzü ile uygulaması olmak üzere DDD yaklaşımına uygun katmanlar yer alır. Veritabanı işlemleri ve iş mantığı ayrı tutularak, kodun daha modüler ve anlaşılır olması hedeflenir.

DDD prensiplerine uygun olarak, iş mantığını ve domain yapılarını temsil eden sınıflar ayrı katmanlarda yer alır. Domain nesneleri ve servisleri, API ve veritabanı işlemlerinden bağımsızdır ve böylece uygulama daha sürdürülebilir hale gelir.

Daha Fazla Bilgi

Eğer Domain-Driven Design hakkında daha fazla bilgi edinmek isterseniz, Eric Evans'ın "Domain-Driven Design: Tackling Complexity in the Heart of Software" kitabını inceleyebilirsiniz. Bu kitap, DDD prensiplerini derinlemesine anlatmaktadır.