BaseForge.Infrastructure
0.4.1-beta
dotnet add package BaseForge.Infrastructure --version 0.4.1-beta
NuGet\Install-Package BaseForge.Infrastructure -Version 0.4.1-beta
<PackageReference Include="BaseForge.Infrastructure" Version="0.4.1-beta" />
<PackageVersion Include="BaseForge.Infrastructure" Version="0.4.1-beta" />
<PackageReference Include="BaseForge.Infrastructure" />
paket add BaseForge.Infrastructure --version 0.4.1-beta
#r "nuget: BaseForge.Infrastructure, 0.4.1-beta"
#:package BaseForge.Infrastructure@0.4.1-beta
#addin nuget:?package=BaseForge.Infrastructure&version=0.4.1-beta&prerelease
#tool nuget:?package=BaseForge.Infrastructure&version=0.4.1-beta&prerelease
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.yamlhem kod üretilir, ardından otomatikdotnet 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 | Versions 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. |
-
net10.0
- BaseForge.Core (>= 0.4.1-beta)
- Dapper (>= 2.1.79)
- Microsoft.EntityFrameworkCore (>= 10.0.9)
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.9)
- Npgsql.EntityFrameworkCore.PostgreSQL (>= 10.0.2)
- RabbitMQ.Client (>= 7.2.1)
- Serilog (>= 4.2.0)
- System.Linq.Dynamic.Core (>= 1.6.6)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on BaseForge.Infrastructure:
| Package | Downloads |
|---|---|
|
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 | 208 | 7/17/2026 |
| 0.4.0-beta | 69 | 7/17/2026 |
| 0.3.2-beta | 78 | 7/13/2026 |
| 0.2.3-alpha | 73 | 7/5/2026 |
| 0.2.2-alpha | 83 | 6/29/2026 |
| 0.2.1-alpha | 107 | 6/26/2026 |
| 0.2.0-alpha | 83 | 6/25/2026 |
| 0.1.0-alpha | 71 | 6/24/2026 |