Skip to content

BaseForge nedir? ​

BaseForge, .NET 10 mikroservisleri için opinionated, yeniden kullanılabilir bir temel kütüphane ve kod üreticidir. Her yeni backend'de aynı mimariyi sıfırdan kurmak yerine BaseForge'u extend edersin — tekrar eden kısımları da onun üreticisi yazar.

Birlikte çalışan iki parçadan oluşur:

NedirNe için kullanırsın
KütüphaneBaseForge.Core, BaseForge.Infrastructure, BaseForge.API NuGet paketleriTek bir AddBaseForge() çağrısıyla CQRS, repository, audit/soft delete, JWT, RabbitMQ, loglama ve health check
Üreticibaseforge CLI + tarayıcı tabanlı DesignerEntity'leri YAML ile (veya görsel olarak) tarif edip eksiksiz, derlenebilir, Docker'a hazır bir servis almak

Neden? ​

Her mikroservis aynı altyapıya ihtiyaç duyar: temiz bir katmanlama, CQRS pipeline'ı, repository'ler, audit alanları, soft delete, hata yönetimi, kimlik doğrulama, servisler arası çağrılar, mesajlaşma, loglama, health check, Docker dosyaları… Bunları elle yazmak yavaştır ve her servis bir öncekinden biraz farklılaşır.

BaseForge bu kararları bir kez verir, neden verildiğini mimari kararlar dokümanında açıklar ve bunları kütüphane + üretici olarak sunar:

  • Framework değil, kütüphane. Kontrol tamamen sende — her davranış override edilebilir. Sadece yazmak zorunda kalmazsın.
  • Tek satırlık entegrasyon. builder.Services.AddBaseForge(...) her şeyi bağlar.
  • Üretilen kod düz koddur. Çalışma zamanı sihri yok: üretici okuyabileceğin, debug edebileceğin ve düzenleyebileceğin sıradan controller'lar, handler'lar, DTO'lar, EF Core entity'leri ve proto dosyaları üretir.

Öne çıkanlar ​

  • MediatR üzerinde Clean Architecture + CQRS, ICommand / IQuery / handler sözleşmeleri.
  • EF Core 10 + Dapper — yazma için LINQ ve change tracking, ağır okumalar için ham SQL; aynı bağlantı ve transaction paylaşılır.
  • Merkezi Identity servisi (OpenIddict + ASP.NET Identity) — OAuth2/OIDC, sosyal girişler, roller, sahiplik kuralları, kullanıcı profil alanları.
  • Servisler arası gRPC — proto'lar, istemciler ve sunucular otomatik üretilir.
  • Transactional outbox, inbox idempotency ve dead-letter kuyruklarıyla RabbitMQ pub/sub.
  • İzlenebilirlik — Serilog + Grafana Loki, HTTP → gRPC → RabbitMQ boyunca tek correlation id, her yerde /health.
  • Görsel Designer — entity'leri, ilişkileri, erişim kurallarını ve Identity'yi tarayıcıda tasarla, canlı ER diyagramını gör, tek tıkla üret, derle ve Docker ile çalıştır.
  • Multi-tenancy, append-only entity'ler, JSONB alanlar, enum'lar, liste filtreleri, YARP gateway ve daha fazlası — hepsi spec'ten.

Teknoloji yığını ​

KatmanTeknoloji
Framework.NET 10
MimariClean Architecture + CQRS + Repository Pattern
CQRSMediatR
Servisler arası (senkron)gRPC
Servisler arası (asenkron)RabbitMQ
AuthMerkezi Identity Service + JWT / OAuth2
VeritabanıPostgreSQL (her mikroservisin kendi veritabanı)
ORM / Veri erişimiEF Core 10 (yazma + tracking) + Dapper (ham SQL okuma)
ContainerDocker + Docker Compose
DağıtımPublic NuGet (nuget.org)

Paketler ​

PaketAçıklama
BaseForge.CoreYalnızca interface ve entity base'leri — dış bağımlılık yok
BaseForge.InfrastructureEF Core repository'leri, Dapper sorgu yardımcıları, DbContext base, RabbitMQ event bus, outbox/inbox
BaseForge.APIController base, middleware, AddBaseForge() / UseBaseForge(), JWT, loglama, health check
BaseForge.ToolsGeliştirici araçları: EF Core modelinden DBML ER diyagramı
BaseForge.CodeGenbaseforge .NET tool'u: kod üretici + Designer

Durum

BaseForge beta aşamasında (güncel: 0.6.2-beta). API oturuyor, ancak minor sürümler arasında kırıcı değişiklik olabilir — bunlar her zaman sürüm notlarında listelenir.

Hazır mısın? Başlarken sayfasına geç.

MIT Lisansı ile yayınlanmıştır.