Skip to content

Latest commit

 

History

History
104 lines (76 loc) · 5.38 KB

File metadata and controls

104 lines (76 loc) · 5.38 KB
title Additions
description Focused, low-opinion helpers that each augment exactly one third-party library, with no Ignite dependency.

What are Additions

Additions are small, focused helper packages. Each one augments exactly one third-party dependency — nothing more. The package name tells you what it augments: ES.FX.Additions.FluentValidation adds helpers for FluentValidation, ES.FX.Additions.StackExchange.Redis adds helpers for StackExchange.Redis, and so on.

Additions are deliberately low-opinion. They add convenience types, extension methods, converters, and small building blocks that the upstream library leaves out. They do not take over your composition root, they do not force a configuration model on you, and they pull in no framework beyond the single dependency they extend. Reference one, use the parts you want, ignore the rest.

Every Addition follows the same shape as the rest of the framework: it targets net10.0, ships as an ES.FX.* NuGet package, and depends only on its one upstream library (plus the core ES.FX package when it needs Result/Problem). Take only the Additions you need.

When to use an Addition vs a Spark

Additions and Sparks both help you work with third-party libraries, but they sit at different layers:

  • An Addition gives you raw helpers with no Ignite dependency. You wire the library into DI yourself; the Addition just makes that library nicer to use. Reach for an Addition when you are not using Ignite, or when you want a specific helper without adopting the full integration.
  • A Spark wires the library into Ignite end to end: configuration binding, DI registration, health checks, and OpenTelemetry — all from one builder.Ignite{Service}...() call. Reach for a Spark when you are using Ignite and want the full "just add water" experience.

Tip

Several libraries have both an Addition and a Spark (Redis, FluentValidation, Entity Framework Core, Serilog, and more). If you are on Ignite, prefer the Spark — it uses the matching Addition under the hood and adds observability for free. Each Addition page links to its paired Spark where one exists.

Catalog

Every Addition, grouped by function. Each links to its dedicated page.

Validation

Addition Augments Purpose
FluentValidation FluentValidation Helpers that bridge validation results into Result/Problem.

Messaging

Addition Augments Purpose
MassTransit MassTransit (+ .MediatR, .RabbitMQ) Message-kind routing, entity/endpoint name formatters, and transport helpers.
MediatR MediatR (+ .Contracts) Helpers and shared contracts for building MediatR pipelines.

Data & EF Core

Addition Augments Purpose
Entity Framework Core Microsoft.EntityFrameworkCore (+ .SqlServer) DbContext and model-building helpers, with SqlServer-specific extras.
Microsoft.Data.SqlClient Microsoft.Data.SqlClient Helpers for working with the SQL Server client and connections.

ASP.NET Core & APIs

Addition Augments Purpose
Microsoft.AspNetCore Microsoft.AspNetCore Middleware building blocks (Server-Timing, query-string-to-header, trace-id response header).
API versioning Asp.Versioning Helpers for configuring API versioning.
NSwag.AspNetCore NSwag.AspNetCore Helpers for wiring NSwag OpenAPI generation and UI.
Health checks Microsoft.Extensions.Diagnostics.HealthChecks Helpers for defining and composing health checks.
Identity Core Microsoft.Extensions.Identity.Core Helpers for ASP.NET Core Identity primitives.

Serialization

Addition Augments Purpose
System.Text.Json System.Text.Json Extra converters (Unix-time dates, flexible booleans) and serializer helpers.
Newtonsoft.Json Newtonsoft.Json A contract resolver and helpers for Json.NET.
OneOf OneOf Ready-made discriminated-union result types and Problem interop.

Caching

Addition Augments Purpose
StackExchange.Redis StackExchange.Redis Helpers for working with the Redis multiplexer and connections.

Logging

Addition Augments Purpose
Serilog Serilog Bootstrap logging helpers, including ProgramEntryBuilder.UseSerilog().

Infrastructure

Addition Augments Purpose
KubernetesClient KubernetesClient Helpers for configuring and using the Kubernetes client.

See also