A suite of 18 .NET libraries: extension methods, custom types, caching, EF Core, ASP.NET Core response filtering, source generation and .NET Aspire hosting integrations.
📖 Documentation (English) · 📖 Dokumentation (Deutsch)
Note This suite was previously published as nExt. It was renamed to Nextended and now targets .NET 8, 9 and 10. See the migration guide.
| English | Deutsch | |
|---|---|---|
| Documentation portal | fgilde.github.io/Nextended | Dokumentationsportal |
| Getting started | Installation | Installation |
| Architecture | Overview | Überblick |
| Per-package guides | Projects | Projekte |
| Examples | Common use cases | Typische Anwendungsfälle |
| Package | Description | NuGet | Docs |
|---|---|---|---|
| Nextended.Core | Foundation library — extension methods, custom types (Money, Date, BaseId, SuperType), class mapping, deep clone, encryption, hashing and the code-generation attributes. | Docs | |
| Nextended.Cache | Expression-based caching — automatic cache keys from method expressions, CacheProvider with condition-based invalidation, thread-safe AddOrGetExisting. | Docs |
| Package | Description | NuGet | Docs |
|---|---|---|---|
| Nextended.EF | Entity Framework Core extensions — graph loading (LoadGraphAsync, IncludeAll, MultiInclude), declarative include definitions, paging, dynamic sorting and bulk operations. | Docs |
| Package | Description | NuGet | Docs |
|---|---|---|---|
| Nextended.Web | ASP.NET Core utilities — zero-config OData (AddODataAuto), composable IQueryable OData appliers, strongly typed controller URLs, streaming download helpers and a background executor that can replay a captured request. | Docs | |
| Nextended.ResponseFilters | Fluent, provider-agnostic pipeline that redacts, masks, rounds, truncates, hashes, prunes and restructures response DTOs before serialization — per request, per user, per permission. | Docs | |
| Nextended.ResponseFilters.AspNetCore | ASP.NET Core adapter for Nextended.ResponseFilters — registers the pipeline as a global IAsyncResultFilter and replays structural edits against the serialized JSON tree. | Docs |
| Package | Description | NuGet | Docs |
|---|---|---|---|
| Nextended.Blazor | Blazor helpers — IBrowserFile extensions (bytes, data URLs, downloads), a hierarchical model for browsing inside uploaded zip/tar/rar archives, MIME-type detection and component-parameter reflection. | Docs | |
| Nextended.UI | WPF and Windows desktop helpers — a global input-binding manager with hold/sequence matching, DirectInput and XInput gamepad readers, key-bind capture controls, converters, behaviours, markup extensions and runtime-defined PropertyGrid types. | Docs |
| Package | Description | NuGet | Docs |
|---|---|---|---|
| Nextended.Imaging | Image processing — aspect-preserving resize, crop, colour replacement, brightness-based foreground picking, thumbnail generation, byte/data-URL conversion and MIME detection from magic bytes. | Docs | |
| Nextended.CodeGen | Roslyn source generator — DTOs and interfaces from your entities, strongly typed classes from JSON/XML, lookup tables from Excel, and documentation from source files. | Docs · Sample |
| Package | Description | NuGet | Docs |
|---|---|---|---|
| Nextended.Aspire | Conditional AppHost builder extensions — WithReferenceIf / WaitForIf / WithExplicitStartIf, strongly typed environment variables from config objects, HTTPS dev-cert wiring, Docker guards, GitHub-source resources and npm app discovery. | Docs | |
| Nextended.Aspire.Hosting.Supabase | The complete Supabase stack — Postgres, Auth (GoTrue), REST, Realtime, Storage, Studio, Kong and Edge Functions — as one composable Aspire resource. | Docs · Sample | |
| Nextended.Aspire.Hosting.N8n | The n8n workflow-automation platform as an Aspire resource, with Postgres persistence, workflow import and a typed client for triggering workflows from .NET. | Docs · Sample | |
| Nextended.Aspire.Hosting.Grafana | Grafana, Prometheus, Loki, Tempo, Promtail, cAdvisor, postgres_exporter and the OpenTelemetry Collector as composable resources with auto-provisioned datasources. | Docs · Sample | |
| Nextended.Aspire.Hosting.WebDataStudio | WebDataStudio — a browser database studio for PostgreSQL, MySQL, SQL Server, SQLite, Oracle, DuckDB, ClickHouse, MongoDB and Redis — wired to the databases of your stack, with accounts and roles, an optional SQL assistant, and an MCP endpoint for AI agents. | Docs · Sample | |
| Nextended.Aspire.Hosting.AspireUI | AspireUI — the visual AppHost builder — as a resource inside your own Aspire stack, with an optional pre-seeded admin user and a starter stack built from your project paths. | Docs · Sample | |
| Nextended.Aspire.Hosting.LocalAI | Self-hosted, OpenAI-compatible multimodal AI — image generation, text-to-speech, speech-to-text and video — with gallery model management, GPU support and Open WebUI. | Docs · Sample | |
| Nextended.Aspire.Hosting.Php | Run PHP endpoints inside your Aspire stack — a docroot folder or a single router script served by PHP's built-in web server, with php.ini settings as fluent options. | Docs · Sample |
dotnet add package Nextended.Coreusing Nextended.Core.Extensions;
using Nextended.Core.Types;
using Nextended.Core.DeepClone;
// Object mapping — no profiles, no configuration
var dto = user.MapTo<UserDto>();
var dtos = users.MapElementsTo<UserDto>();
// Deep clone with reference preservation
var copy = order.CloneDeep();
// Types that carry their meaning
var price = new Money(99.99m, Currency.USD);
var due = Date.Today.AddDays(30); // a date, without a time component
// Extension methods
"hello world".ToPascalCase(); // "HelloWorld"
"hello world".ToCamel(); // "helloWorld"
DateTime.Today.AddWeekDays(5); // skips weekendsEvery Aspire integration and the source generator ship with a sample project you can start:
| Sample | Shows |
|---|---|
| Supabase.AppHost | The full Supabase stack as one Aspire resource |
| AiStack.AppHost | LocalAI and n8n together — self-hosted multimodal AI driven by workflows |
| N8n.AppHost | n8n with Postgres persistence and workflow import |
| Grafana.AppHost | Grafana, Prometheus, Loki, Tempo with auto-provisioned datasources |
| WebDataStudio.AppHost | One browser database studio across several databases |
| AspireUI.AppHost | The visual AppHost builder as a resource |
| Php.AppHost | PHP + MySQL + phpMyAdmin + Mailpit next to a .NET web form |
| CodeGenSample | DTO, JSON, Excel and documentation generation, with the generated output checked in |
Nextended.sln
├─ Nextended.Core/ foundation: extensions, types, mapping, facets
├─ Nextended.Cache/ expression-based caching
├─ Nextended.EF/ EF Core query and graph extensions
├─ Nextended.Web/ ASP.NET Core + OData
├─ Nextended.ResponseFilters/ response shaping pipeline (provider-agnostic)
├─ Nextended.ResponseFilters.AspNetCore/ MVC adapter for the above
├─ Nextended.Blazor/ Blazor helpers
├─ Nextended.UI/ WPF / Windows desktop
├─ Nextended.Imaging/ image processing (Windows)
├─ Nextended.CodeGen/ Roslyn source generator
├─ Nextended.Aspire*/ .NET Aspire hosting integrations
├─ Tests/ unit tests and the runnable sample projects
├─ docs/ documentation site (English), docs/de (German)
│ └─ data/packages.json single source of truth for every package listing
└─ tools/Update-PackageDocs.ps1 regenerates the listings, README blocks and the docs icon
Pull requests are welcome.
Package listings, README headers/footers and the documentation-site icon are generated. Edit
docs/data/packages.json — never the generated blocks — and then run:
pwsh tools/Update-PackageDocs.ps1To verify in CI that nothing has drifted:
pwsh tools/Update-PackageDocs.ps1 -CheckThe icon is a single file, icon.png, at the repository root. Replace it and re-run the
generator: every NuGet package, every README and the documentation site pick up the new one.
GPL-3.0-or-later — see LICENSE.