Kck.Exceptions.Abstractions 3.2.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Kck.Exceptions.Abstractions --version 3.2.0
                    
NuGet\Install-Package Kck.Exceptions.Abstractions -Version 3.2.0
                    
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="Kck.Exceptions.Abstractions" Version="3.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Kck.Exceptions.Abstractions" Version="3.2.0" />
                    
Directory.Packages.props
<PackageReference Include="Kck.Exceptions.Abstractions" />
                    
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 Kck.Exceptions.Abstractions --version 3.2.0
                    
#r "nuget: Kck.Exceptions.Abstractions, 3.2.0"
                    
#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 Kck.Exceptions.Abstractions@3.2.0
                    
#: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=Kck.Exceptions.Abstractions&version=3.2.0
                    
Install as a Cake Addin
#tool nuget:?package=Kck.Exceptions.Abstractions&version=3.2.0
                    
Install as a Cake Tool

Kck Modular Architecture Framework

Build NuGet License: MIT .NET

Modular, extensible .NET framework organized around an Abstractions → Providers → Bundles pattern. Abstractions declare contracts; providers implement them against concrete technologies; bundles compose opinionated defaults for specific hosting models (WebApi, WorkerService, etc.).

Quick Start

Web API (ASP.NET Core, full Bundle)

dotnet add package Kck.Bundle.WebApi
var builder = WebApplication.CreateBuilder(args);

builder.Services
    .AddKckWebApi()
    .AddKckCachingInMemory()
    .AddKckMessagingMailKit(opt =>
    {
        opt.Host = builder.Configuration["Mail:Host"]!;
        opt.Port = 587;
        opt.UseSsl = true;
    });

var app = builder.Build();
app.UseKckExceptionHandler();
app.MapGet("/", () => Results.Ok("Hello from Kck!"));
app.Run();

Tam ornek: samples/Kck.Sample.WebApi

Minimal API (Slim, only what you need)

dotnet add package Kck.AspNetCore
dotnet add package Kck.Caching.InMemory
dotnet add package Kck.Pipeline.Mediator
var builder = WebApplication.CreateBuilder(args);

builder.Services
    .AddKckExceptions()
    .AddKckCachingInMemory()
    .AddMediator()                          // Mediator source-gen dispatcher
    .AddKckMediatorPipeline(p => p
        .UseValidationBehavior()
        .UseLoggingBehavior());

var app = builder.Build();
app.MapPost("/users", async (CreateUserCommand cmd, IMediator mediator) =>
    Results.Ok(await mediator.Send(cmd)));
app.Run();

Tam ornek: samples/Kck.Sample.MinimalApi

Worker Service (background jobs, no HTTP)

dotnet add package Kck.BackgroundJobs.Quartz
dotnet add package Kck.Logging.Serilog
dotnet add package Kck.Observability.OpenTelemetry
var builder = Host.CreateApplicationBuilder(args);

builder.Services
    .AddKckSerilog(builder.Configuration)
    .AddKckOpenTelemetry()
    .AddKckQuartz(opt => opt.UseInMemoryStore())
    .AddKckJob<EmailDigestJob>(triggerCron: "0 0 9 * * ?");

await builder.Build().RunAsync();

Tam ornek: samples/Kck.Sample.WorkerService

Target Frameworks

Paket Sinifi TFM
Tüm paketler net10.0

Kütüphane yalnızca net10.0 ve üzerini hedefler (ADR-0019). Detay: ADR-0019.

Why Kck?

Kck, ABP'den daha hafif, FastEndpoints'ten daha kapsamli, Aspire'a uyumlu olmayi hedefler:

Konu Kck ABP Framework FastEndpoints Microsoft .NET Aspire
Lisans MIT LGPL (Pro: ucretli) MIT MIT
Yaklasim Modular, opt-in Tum-in-bir, opinionated Endpoint-only Orchestration
DI Konvansiyonu Microsoft.Extensions.* native ABP DI extension'lari Microsoft.Extensions.* Microsoft.Extensions.*
Source-gen / Proxy Yok (saf C#) Cok (UoW interceptor, dynamic proxy) Yok Yok
TFM Destegi net10.0 net8 + net9 net8 + net9 + net10 net8 + net9 + net10
AOT-uyumu Kismen (abstraction'lar) Hayir Evet Evet
Provider Sayisi 30+ resmi 15+ resmi (Pro) N/A N/A (orchestration)
Battery-included Opt-in modullerle Tum-in-bir Sadece HTTP Yok
Source-Link + Symbols Var Var Var Var
Ogrenme Egrisi Dusuk-Orta Yuksek Dusuk Orta

Kck'i secmen gerekiyorsa eger:

  • ASP.NET Core'a sadik kalmak istiyorsan (DI, options, hosting konvansiyonlari)
  • Modul modul ekleme/cikarma yetkisi istiyorsan (ABP'nin "her sey otomatik" yaklasimini istemeyen)
  • Source-gen veya runtime proxy magic'inden kaciniyorsan (debug edilebilirlik onemliyse)
  • Modern .NET 10 API'larını (AOT, Guid.CreateVersion7()) tam destekleyen framework istiyorsan
  • 9+ ADR + 17 provider doc + 0 warning build hijiyenine deger veriyorsan

Kck'i secmemen gerekiyorsa:

  • "Tek paket kurar tum ihtiyacim biter" istiyorsan → ABP
  • Yalniz HTTP endpoint API yaziyorsan → FastEndpoints daha hafif
  • Microservice orchestration istiyorsan → Aspire (Kck ile birlikte de calisir)

Modules

Abstractions

Package Responsibility
Kck.Core.Abstractions Core entities, paging, result types
Kck.Authorization.Abstractions Permission / policy contracts
Kck.BackgroundJobs.Abstractions Job scheduling contracts
Kck.Caching.Abstractions Distributed cache contracts
Kck.Documents.Abstractions PDF / Excel / image processing contracts
Kck.EventBus.Abstractions Pub/sub event bus contracts
Kck.Exceptions.Abstractions Domain exception types
Kck.FeatureFlags.Abstractions Feature flag contracts
Kck.FileStorage.Abstractions FTP / blob storage contracts
Kck.Http.Abstractions Resilient HTTP client contracts
Kck.Localization.Abstractions i18n / l10n contracts
Kck.Messaging.Abstractions Email / SMS contracts
Kck.Observability.Abstractions Tracing / metrics / health contracts
Kck.Persistence.Abstractions Repository, UoW, query contracts
Kck.Search.Abstractions Full-text search contracts
Kck.Security.Abstractions Hashing, JWT, TOTP, secrets contracts

Providers

Area Packages
Background Jobs Kck.BackgroundJobs.Hangfire, Kck.BackgroundJobs.Quartz
Caching Kck.Caching.InMemory, Kck.Caching.Redis, Kck.Caching.Hybrid
Documents Kck.Documents.ClosedXml, Kck.Documents.ImageSharp
Event Bus Kck.EventBus.InMemory, Kck.EventBus.RabbitMq, Kck.EventBus.AzureServiceBus
Exceptions Kck.Exceptions.AspNetCore
Feature Flags Kck.FeatureFlags.InMemory
File Storage Kck.FileStorage.FluentFtp
HTTP Kck.Http.Resilience
Hosting Kck.Hosting.Aspire
Resilience Kck.Resilience.Polly
Localization Kck.Localization, Kck.Localization.Json, Kck.Localization.Yaml
Logging Kck.Logging.Serilog
Messaging Kck.Messaging.MailKit, Kck.Messaging.SendGrid, Kck.Messaging.AmazonSes
Observability Kck.Observability.OpenTelemetry
Persistence Kck.Persistence.EntityFramework
Pipeline Kck.Pipeline.MediatR (deprecated, KCK0200), Kck.Pipeline.Mediator
Search Kck.Search.Elasticsearch
Security Kck.Security.Argon2, Kck.Security.Jwt, Kck.Security.Totp, Kck.Security.TokenBlacklist.Redis, Kck.Security.Secrets.UserSecrets, Kck.Security.Secrets.AzureKeyVault
Web Kck.AspNetCore

Background Jobs ipucu: Hangfire ve Quartz alternatiftir, beraber kullanilmasi onerilmez. Hangfire dashboard ve persistent storage ihtiyaciniz varsa onu, daha hafif cron + DI entegrasyonu istiyorsaniz Quartz'i secin. Ikisi birden bagimliliklarinizi gereksiz sisirir (~5MB+ assembly farki).

Bundles

Bundle Contents
Kck.Bundle.WebApi Opinionated ASP.NET Core stack: Mediator pipeline, exception handler, Serilog, OpenTelemetry, JWT
Kck.Bundle.MinimalApi Slim ASP.NET Core stack: exception handler, caching, JWT, Serilog, OpenTelemetry
Kck.Bundle.WorkerService Worker/daemon stack: Serilog, OpenTelemetry, EventBus, Hangfire + Quartz

Samples

Testing

# Unit testler (Docker gerektirmez, Windows + Ubuntu hepsi):
dotnet test --filter "Category!=Integration"

# Integration testler (Docker Desktop gerekir):
dotnet test --filter "Category=Integration"

Detay: docs/test-strategy.md ve docs/policies/test-coverage.md

Documentation

Development

dotnet restore
dotnet build -c Release
dotnet test -c Release --no-build

Requirements: .NET 10 SDK

Benchmarks

dotnet run -c Release --project tests/Kck.Benchmarks

BenchmarkDotNet --filter ile spesifik benchmark calistir:

dotnet run -c Release --project tests/Kck.Benchmarks -- --filter "*Paginate*"

Sadece Release konfigurasyonunda anlamli sonuc verir; Debug uyari ile kosur.

Contributing

See CONTRIBUTING.md. Issues and PRs are welcome.

License

MIT © Omerkck

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.
  • net10.0

    • No dependencies.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Kck.Exceptions.Abstractions:

Package Downloads
Kck.Exceptions.AspNetCore

ASP.NET Core global exception handler for Kck exceptions. Maps Kck exception types to RFC 7807 ProblemDetails responses with correct HTTP status codes via [HttpStatusCodeAttribute]. Registered via AddKckExceptionHandling().

Kck.Pipeline.MediatR

MediatR-backed pipeline behaviors for Kck. Provides Authorization, Caching, Logging, Transaction, and Validation behaviors. DEPRECATED — use Kck.Pipeline.Mediator instead. Will be removed in a future version (KCK0200).

Kck.Pipeline.Mediator

Mediator.Abstractions 3.x-backed pipeline behaviors for Kck. Provides Authorization, Caching, Logging, Transaction, and Validation cross-cutting behaviors. The recommended pipeline provider since Kck v2. Registered via AddKckMediator().

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.4.0 0 5/17/2026
3.3.0 0 5/17/2026
3.2.0 0 5/17/2026
3.1.0 0 5/17/2026
3.0.0 0 5/17/2026
2.0.0 137 5/7/2026