Nextended.Core
10.1.31
dotnet add package Nextended.Core --version 10.1.31
NuGet\Install-Package Nextended.Core -Version 10.1.31
<PackageReference Include="Nextended.Core" Version="10.1.31" />
<PackageVersion Include="Nextended.Core" Version="10.1.31" />
<PackageReference Include="Nextended.Core" />
paket add Nextended.Core --version 10.1.31
#r "nuget: Nextended.Core, 10.1.31"
#:package Nextended.Core@10.1.31
#addin nuget:?package=Nextended.Core&version=10.1.31
#tool nuget:?package=Nextended.Core&version=10.1.31
![]()
Nextended.Core
Foundation library โ extension methods, custom types (Money, Date, BaseId, SuperType), class mapping, deep clone, encryption, hashing and the code-generation attributes.
๐ Documentation: English ยท Deutsch
Installation
dotnet add package Nextended.Core
Nextended.Core has no Nextended dependencies โ every other package in the suite builds on it.
What's inside
| Area | Highlights |
|---|---|
| Extension methods | string, DateTime/TimeSpan, IEnumerable<T>, Type, MemberInfo, object, Task, Stream, Uri, FileInfo, Assembly, HttpClient, Expression |
| Custom types | Money, Currency, Date, BaseId, SuperType, Range<T>, SimpleRange, DataUrl, Hierarchical<T>, Quote |
| Class mapping | MapTo<T>() / MapElementsTo<T>() / MapToAsync<T>() with a fluent ClassMappingSettings โ no external mapper, no profiles to register |
| Deep clone | CloneDeep<T>() with clone levels, ignore attributes and reference-preserving cloning |
| Faceted search | FacetBuilder builds facet groups (terms, ranges, dependencies) from IQueryable<T> and formats them as OData literals |
| OData | ODataQueryModel, expression visitor and operator parsing for turning OData query strings into expressions |
| Encryption & hashing | AesEncryption, RijndaelEncryption, HashHelper, StringHasher, plus Base64/Hex encoders |
| Watchers | CollectionWatcher, PropertyWatcher, ProcessWatcher |
| Reflection | ReflectionHelper, TypeExtender, PropertyPath, ExposedObject, SimpleConvert |
| Measurement | Measure.Run(...) / Measure.RunAsync(...) return the result together with its timing |
| Generation attributes | [AutoGenerateDto], [AutoGenerateCom], [IgnoreOnGeneration], [GenerationPropertySetting] โ consumed by Nextended.CodeGen |
Quick start
Class mapping
using Nextended.Core.Extensions;
// Convention-based, no configuration
var dto = user.MapTo<UserDto>();
// Whole sequences
var dtos = users.MapElementsTo<UserDto>();
// Explicit member assignment where names differ
var settings = ClassMappingSettings.Default
.AddAssignment<User, UserDto>(u => u.EmailAddress, d => d.Mail)
.IgnoreProperties<User>(u => u.Password)
.AddConverter<string, DateTime>(DateTime.Parse);
var mapped = user.MapTo<UserDto>(settings);
// Tweak any setting inline
var lenient = ClassMappingSettings.Default.Set(s => s.IgnoreExceptions = true);
There is also a chained Assign(...).To(...).And(...) form, but note it returns a
Tuple<ClassMappingSettings, โฆ> rather than the settings object โ take .Item1 before passing it to
MapTo, or use AddAssignment as above.
Deep clone
using Nextended.Core.DeepClone;
var copy = order.CloneDeep(); // full graph, references preserved
Mark members you never want copied with [ClonerIgnore].
Custom types
using Nextended.Core.Types;
var price = new Money(99.99m, Currency.USD);
var due = Date.Today.AddDays(30); // date without a time component
var span = new Range<int>(1, 10);
Money keeps decimal precision and its currency together; Date removes the "what time is midnight in which zone" class of bug from date-only values.
String and date extensions
using Nextended.Core.Extensions;
"hello world".ToPascalCase(); // "HelloWorld"
"hello world".ToCamel(); // "helloWorld"
"MyClassName".SplitByUpperCase(); // "My Class Name"
"a long sentence".ToEllipsis(8); // "a long โฆ"
"user@example.com".IsEmailAddress();
DateTime.Today.AddWeekDays(5); // skips weekends
DateTime.Today.IsWeekend();
DateTime.Today.FirstDayOfMonth();
DateTime.UtcNow.ToISOz();
Note Earlier revisions of this documentation showed
ToCamelCase(),DeepClone(),AddBusinessDays(),ToSnakeCase()andIsBusinessDay(). Those methods do not exist. The verified names areToCamel(),CloneDeep(),AddWeekDays()andIsWeekend()/IsWeekday().
Measuring a call
using Nextended.Core.Measurement;
var measured = await Measure.RunAsync(() => repository.LoadAllAsync());
Console.WriteLine($"{measured.Elapsed} for {measured.Result.Count} rows");
Faceted search
using Nextended.Core.Facets;
var facets = await new FacetBuilder()
.WithOptions(o => o.MaxOptionsPerGroup = 20)
.BuildAsync<Product>(products);
// facets -> FacetGroup list with counts, ready to render and to feed back as an OData filter
Documentation
The README is an overview. The reference documentation covers every extension group, the mapping settings, the facet model and the type system in detail:
- ๐ Nextended.Core โ English
- ๐ Nextended.Core โ Deutsch
- ๐ Class mapping reference
- ๐ Extension method reference
- ๐ Type reference
- ๐ Encryption and hashing
Migrating from nExt
Nextended.Core is the continuation of the nExt.Core package. Namespaces moved from
nExt.* to Nextended.*; the API is otherwise source-compatible. See the
migration guide.
The legacy nExt.Core package is no longer maintained.
Supported frameworks
netstandard2.0netstandard2.1net8.0net9.0net10.0
Dependencies
No Nextended dependencies โ this is the root of the dependency tree.
The Nextended family
The other 17 packages in the suite:
Core libraries
- Nextended.Core โ Foundation library โ extension methods, custom types (Money, Date, BaseId, SuperType), class mapping, deep clone, encryption, hashing and the code-generation attributes. (this package)
- Nextended.Cache โ Expression-based caching โ automatic cache keys from method expressions, CacheProvider with condition-based invalidation, thread-safe AddOrGetExisting.
Data access
- Nextended.EF โ Entity Framework Core extensions โ graph loading (LoadGraphAsync, IncludeAll, MultiInclude), declarative include definitions, paging, dynamic sorting and bulk operations.
ASP.NET Core & web
- 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.
- 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.
- 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.
UI libraries
- 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.
- 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.
Code generation & tooling
- 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.
- 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.
.NET Aspire hosting
- 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.
- Nextended.Aspire.Hosting.Supabase โ The complete Supabase stack โ Postgres, Auth (GoTrue), REST, Realtime, Storage, Studio, Kong and Edge Functions โ as one composable Aspire resource.
- 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.
- Nextended.Aspire.Hosting.Grafana โ Grafana, Prometheus, Loki, Tempo, Promtail, cAdvisor, postgres_exporter and the OpenTelemetry Collector as composable resources with auto-provisioned datasources.
- 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.
- 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.
- 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.
- 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.
Links
- ๐ฆ NuGet package
- ๐ Documentation โ English
- ๐ Dokumentation โ Deutsch
- ๐ Documentation portal
- ๐งโ๐ป Source code
- ๐ Report an issue
License
GPL-3.0-or-later โ see LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.CSharp (>= 4.7.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Newtonsoft.Json (>= 13.0.4)
- StringToExpression (>= 2.2.0)
- System.ComponentModel.Annotations (>= 5.0.0)
- System.Data.DataSetExtensions (>= 4.5.0)
- System.Linq.Dynamic.Core (>= 1.7.1)
- System.Management (>= 10.0.5)
- System.Reflection.Emit (>= 4.7.0)
- YamlDotNet (>= 16.3.0)
-
.NETStandard 2.1
- Microsoft.CSharp (>= 4.7.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Newtonsoft.Json (>= 13.0.4)
- StringToExpression (>= 2.2.0)
- System.ComponentModel.Annotations (>= 5.0.0)
- System.Data.DataSetExtensions (>= 4.5.0)
- System.Linq.Dynamic.Core (>= 1.7.1)
- System.Management (>= 10.0.5)
- YamlDotNet (>= 16.3.0)
-
net10.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.8)
- Newtonsoft.Json (>= 13.0.4)
- StringToExpression (>= 2.2.0)
- System.ComponentModel.Annotations (>= 5.0.0)
- System.Data.DataSetExtensions (>= 4.5.0)
- System.Linq.Dynamic.Core (>= 1.7.1)
- System.Management (>= 10.0.5)
- YamlDotNet (>= 16.3.0)
-
net8.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Newtonsoft.Json (>= 13.0.4)
- StringToExpression (>= 2.2.0)
- System.Linq.Dynamic.Core (>= 1.7.1)
- System.Management (>= 10.0.5)
- YamlDotNet (>= 16.3.0)
-
net9.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.10)
- Newtonsoft.Json (>= 13.0.4)
- StringToExpression (>= 2.2.0)
- System.Linq.Dynamic.Core (>= 1.7.1)
- System.Management (>= 10.0.5)
- YamlDotNet (>= 16.3.0)
NuGet packages (14)
Showing the top 5 NuGet packages that depend on Nextended.Core:
| Package | Downloads |
|---|---|
|
MudBlazor.Extensions
MudBlazor.Extensions is a small extension library for MudBlazor from https://mudblazor.com/ |
|
|
Nextended.Blazor
Provides helper and extensions for Blazor specific projects |
|
|
BlazorParameterCastingMagic
The BlazorParameterCastingMagic package provides a way to handle dynamic casting of parameters in Blazor components because Blazor does not natively support implicit conversions for parameters |
|
|
AuralizeBlazor
AuralizeBlazor is a wrapper component for audioMotion-analyzer. |
|
|
Nextended.CodeGen
Generate DTOs, interfaces and more from JSON, XML, Excel or existing classes. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Nextended.Core:
| Repository | Stars |
|---|---|
|
fgilde/MudBlazor.Extensions
MudBlazor.Extensions from https://www.mudex.org is a small extension for MudBlazor from https://mudblazor.com
|
| Version | Downloads | Last Updated |
|---|---|---|
| 10.1.31 | 0 | 8/19/2026 |
| 10.1.30 | 0 | 8/19/2026 |
| 10.1.21 | 3,594 | 7/30/2026 |
| 10.1.20 | 656 | 7/26/2026 |
| 10.1.19 | 483 | 7/23/2026 |
| 10.1.18 | 561 | 7/22/2026 |
| 10.1.17 | 412 | 7/21/2026 |
| 10.1.16 | 374 | 7/21/2026 |
| 10.1.15 | 362 | 7/21/2026 |
| 10.1.14 | 415 | 7/16/2026 |
| 10.1.13 | 408 | 7/12/2026 |
| 10.1.12 | 353 | 7/12/2026 |
| 10.1.11 | 445 | 7/6/2026 |
| 10.1.10 | 2,182 | 6/16/2026 |
| 10.1.9 | 10,458 | 5/29/2026 |
| 10.1.8 | 1,640 | 5/19/2026 |
| 10.1.7 | 469 | 5/16/2026 |
| 10.1.6 | 1,679 | 5/12/2026 |
| 10.1.5 | 379 | 5/12/2026 |
| 10.1.4 | 8,719 | 5/11/2026 |