BaseForge.CodeGen 0.4.1-beta

This is a prerelease version of BaseForge.CodeGen.
dotnet tool install --global BaseForge.CodeGen --version 0.4.1-beta
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local BaseForge.CodeGen --version 0.4.1-beta
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=BaseForge.CodeGen&version=0.4.1-beta&prerelease
                    
nuke :add-package BaseForge.CodeGen --version 0.4.1-beta
                    

BaseForge

.NET 10 tabanlı, mikroservis mimarisine uygun, yeniden kullanılabilir bir base library. Yeni backend projeleri için sıfırdan mimari kurmak yerine bu lib extend edilerek kullanılır. Public NuGet paketi olarak yayınlanacaktır.

Teknoloji Stack

Katman Teknoloji
Framework .NET 10
Mimari Clean Architecture + CQRS + Repository Pattern
CQRS MediatR
Servisler arası (sync) gRPC
Servisler arası (async) RabbitMQ
Auth Merkezi Identity Service + JWT / OAuth2
Veritabanı PostgreSQL (her mikroservis kendi DB'si)
ORM / Data Access EF Core 10 (yazma + tracking) + Dapper (ham SQL okuma)
Container Docker + Docker Compose
Paket Public NuGet (nuget.org)

NuGet Paketleri

Paket Açıklama
BaseForge.Core Sadece interface ve entity base'leri (dış bağımlılık yok)
BaseForge.Infrastructure Repository implementasyonları (EF Core), Dapper sorgu yardımcıları
BaseForge.API Controller base, middleware, DI extension'ları
BaseForge.Tools Geliştirme araçları: EF Core model'inden DBML ER diyagramı üretimi

Hızlı Başlangıç

builder.Services.AddBaseForge(options =>
{
    options.UsePostgreSQL(connectionString);
    options.EnableCQRS();
    options.EnableAuditLog();
});

Designer — Görsel Arayüz (baseforge new)

YAML elle yazmak yerine tarayıcı tabanlı bir tasarımcıyla servis üret. Tek komut:

baseforge new orders

http://localhost:3500 adresinde açılan arayüz, sol ikon rayıyla üç bölüm sunar (Servis · Identity · ER):

  • Servis — entity alanları (tip dropdown'ları), aynı servis içi ilişkiler (one-to-many / many-to-one / one-to-one) ve başka servislere dış referanslar (grpc / event).
  • JWT bağlantısı — üretilen servisi merkez Identity'ye bağla (authority, audience, [Authorize]).
  • Identity — sosyal sağlayıcı credential'ları (Google, GitHub, Microsoft, Facebook), seed admin.
  • ER diyagramı — spec'ten canlı çizilir (solid = servis içi FK, kesikli = dış referans); DBML olarak kopyalanır veya dbdiagram.io'da açılır.
  • Üret + Derle — "Generate" ile hem spec.yaml hem kod üretilir, ardından otomatik dotnet build çalışır ve sonuç (dosya listesi + derleme durumu) arayüzde gösterilir.

Üretilen spec spec.yaml olarak diske yazılır; servisi sonradan tekrar açıp düzenleyebilir, version control'e koyabilirsin (mevcut new-service / er komutlarıyla uyumlu).

Arayüz React (Vite + TS) ile yazılır ve dotnet tool'a gömülür — çalıştırmak için ek kurulum gerekmez. Kaynağı: src/BaseForge.Designer.Web/.

Yapı

src/
  BaseForge.Core/            → Entity base'leri, interface'ler, CQRS sözleşmeleri, exception'lar
  BaseForge.Infrastructure/  → GenericRepository (EF Core), Dapper sorgu yardımcıları, DI extension'ları
  BaseForge.API/             → BaseController, middleware, AddBaseForge()
  BaseForge.CodeGen/         → baseforge CLI: kod üretici + Designer web arayüzü (baseforge new)
  BaseForge.Designer.Web/    → Designer React arayüzü (Vite + TypeScript)
tests/
  BaseForge.UnitTests/
  BaseForge.IntegrationTests/
docs/
  ARCH.md                    → Detaylı mimari kararlar
  CONVENTIONS.md             → Kod standartları ve naming kuralları

ER Diyagramı (BaseForge.Tools)

EF Core model'inden DBML üretir; çıktıyı dbdiagram.io'ya yapıştırarak görselleştir:

using BaseForge.Tools;

// Bir DbContext örneğinden (DB bağlantısı gerekmez, sadece model okunur)
string dbml = DbmlGenerator.Generate(dbContext);
File.WriteAllText("docs/er.dbml", dbml);

Gerçek tablo/kolon adları, kolon tipleri (provider'a göre, örn. PostgreSQL uuid/timestamptz), birincil anahtarlar ve FK ilişkileri yansıtılır.

Geliştirme

dotnet build      # tüm solution
dotnet test       # testler

Bu proje Claude Code ile birlikte geliştirilmektedir. Mimari ve kod kuralları için bkz. CLAUDE.md, docs/ARCH.md, docs/CONVENTIONS.md.

Lisans

MIT

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.4.1-beta 83 7/17/2026
0.4.0-beta 69 7/17/2026
0.3.2-beta 69 7/13/2026
0.2.3-alpha 74 7/5/2026
0.2.2-alpha 86 6/29/2026
0.2.1-alpha 79 6/26/2026
0.2.0-alpha 90 6/25/2026