BaseForge.Core 0.4.1-beta

This is a prerelease version of BaseForge.Core.
dotnet add package BaseForge.Core --version 0.4.1-beta
                    
NuGet\Install-Package BaseForge.Core -Version 0.4.1-beta
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BaseForge.Core" Version="0.4.1-beta" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BaseForge.Core" Version="0.4.1-beta" />
                    
Directory.Packages.props
<PackageReference Include="BaseForge.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add BaseForge.Core --version 0.4.1-beta
                    
#r "nuget: BaseForge.Core, 0.4.1-beta"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package BaseForge.Core@0.4.1-beta
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=BaseForge.Core&version=0.4.1-beta&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=BaseForge.Core&version=0.4.1-beta&prerelease
                    
Install as a Cake Tool

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.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on BaseForge.Core:

Package Downloads
BaseForge.Infrastructure

BaseForge altyapı katmanı: EF Core DbContext base (audit + soft delete), GenericRepository, Dapper tabanlı ham SQL sorgu yardımcıları ve RabbitMQ event bus. Core'a bağımlıdır.

BaseForge.API

BaseForge API katmanı: BaseController, exception/auth/logging middleware ve AddBaseForge() DI extension'ları. Core ve Infrastructure'a bağımlıdır.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.4.1-beta 215 7/17/2026
0.4.0-beta 73 7/17/2026
0.3.2-beta 83 7/13/2026
0.2.3-alpha 78 7/5/2026
0.2.2-alpha 88 6/29/2026
0.2.1-alpha 104 6/26/2026
0.2.0-alpha 98 6/25/2026
0.1.0-alpha 84 6/24/2026