Skip to main content
Bu repo aynı zamanda bir dotnet new şablonudur. .template.config/template.json sayesinde tüm DiyanetCleanArchitecture adlarını ve Keycloak client öneklerini otomatik yeniden adlandırarak sıfırdan, isme özel bir çözüm üretebilirsiniz.

Şablon kimliği

.template.config/template.json dosyasındaki tanımlar:
AlanDeğer
nameDiyanet Clean Architecture (DDD + CQRS + Event-Driven)
shortNamediyanet-ca
sourceNameDiyanetCleanArchitecture (yeniden adlandırma anahtarı)
defaultNameDiyanetCleanArchitecture
identityDiyanetCleanArchitecture.Template
sourceName, üretim sırasında -n parametresiyle verdiğiniz isme değiştirilir: dosya adları, namespace’ler, .csproj referansları ve appsettings/docker-compose içindeki proje adları dahil.

1. Şablonu kur

Repo kökünde:
dotnet new install .
Çıktıda diyanet-ca şablonu listelenir. Kurulu olduğunu doğrulamak için:
dotnet new list diyanet-ca
Şablonu güncellemek/yeniden kurmak için dotnet new install . --force, kaldırmak için dotnet new uninstall <repo-yolu> kullanın.

2. Yeni proje üret

Hedef bir klasörde:
dotnet new diyanet-ca -n MyProject
Bu komut MyProject adıyla tüm çözümü üretir: MyProject.API, MyProject.Application, MyProject.Domain, … tüm DiyanetCleanArchitecture örnekleri MyProject olur.

Şablon parametreleri (symbols)

-n / --name
string
Üretilecek çözümün adı. DiyanetCleanArchitecture yerine geçer. Örn. -n MosqueFinder.
--ProjectKeycloakId
string
default:"my-project"
Keycloak client/realm öneki için kebab-case kimlik. appsettings*.json ve docker-compose*.yml içindeki my-project örneklerini değiştirir. Örn. --ProjectKeycloakId mosque-findermosque-finder-website, mosque-finder-admin client’ları.
--Framework
choice
default:"net10.0"
Hedef framework. Şu an tek seçenek net10.0.
--SkipRestore
bool
default:"false"
true verilirse üretim sonrası otomatik dotnet restore atlanır.

Tam örnek

dotnet new diyanet-ca \
  -n MosqueFinder \
  --ProjectKeycloakId mosque-finder
Üretilen çözüm:
MosqueFinder/
├── MosqueFinder.slnx
├── src/
│   ├── MosqueFinder.API
│   ├── MosqueFinder.Application
│   ├── MosqueFinder.Domain
│   ├── MosqueFinder.Domain.SharedKernel
│   ├── MosqueFinder.Infrastructure.*
│   ├── MosqueFinder.Presentation.Website
│   └── MosqueFinder.Presentation.Admin
└── docker-compose*.yml   (mosque-finder-* client adlarıyla)
Şablon üretiminde .git/, .vs/, bin/, obj/, *.user ve .template.config/ dışlanır. Üretilen çözüm temiz gelir; kendi git geçmişinizi git init ile başlatın.

3. Üretilen projeyi başlat

cd MosqueFinder
git init
cp .env.example .env        # değerleri doldurun (bkz. Hızlı Başlangıç)
docker compose up -d --build
Devamı için Hızlı Başlangıç sayfasına geçin.

Şablon yerine düz klonlama

Şablon mekanizmasını kullanmadan, adları DiyanetCleanArchitecture olarak bırakıp doğrudan repoyu klonlayarak da çalışabilirsiniz:
git clone https://github.com/cihandelipinar/diyanet-clean-architecture.git
cd diyanet-clean-architecture
docker compose up -d --build
Bu durumda projeyi kendi domain’inize göre uyarlarken namespace’ler DiyanetCleanArchitecture.* kalır.